> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xenia.team/llms.txt
> Use this file to discover all available pages before exploring further.

# List Projects

> Returns all projects in the workspace that the API key's user can access — filtered by each project's access list, matched on user id, team ids or role id; a project with no access list is visible to everyone. Each project carries an `analytics` array with its schedule-status counts.



## OpenAPI

````yaml GET /api/v1/ops/workspaces/{workspaceId}/projects
openapi: 3.1.0
info:
  title: Xenia Team API - List Projects
  version: 1.0.0
  description: >-
    Lists every project in the workspace the API key's user can access, each
    with its schedule-status breakdown. Responds through
    `handleListMessageResponse`, so the envelope is `{data, extra_meta}` and
    there is no pagination metadata — this endpoint is not paginated and returns
    the full set.
servers:
  - url: https://api.xenia.team
security: []
paths:
  /api/v1/ops/workspaces/{workspaceId}/projects:
    get:
      tags:
        - Projects
      summary: List Projects
      description: >-
        Returns all projects in the workspace that the API key's user can access
        — filtered by each project's access list, matched on user id, team ids
        or role id; a project with no access list is visible to everyone. Each
        project carries an `analytics` array with its schedule-status counts.
      parameters:
        - name: workspaceId
          in: path
          required: true
          description: UUID of the workspace. Must be the workspace the API key belongs to.
          schema:
            type: string
            format: uuid
            example: cb363f7e-c52a-4478-911d-f6a6f791090e
        - name: detailed
          in: query
          required: false
          description: >-
            Pass `true` to include each project's schedules. Any other value is
            treated as false.
          schema:
            type: string
            enum:
              - 'true'
              - 'false'
            example: 'false'
      responses:
        '200':
          description: Projects retrieved successfully.
          content:
            application/json:
              example:
                data:
                  - id: c7966d63-52ce-4967-b30a-16aaa9e806b5
                    title: Monthly Safety Walk
                    isPaused: false
                    type: role
                    state: ready
                    entityIds:
                      - 7481ca15-cdb1-4e0f-a936-f8f88a56e989
                    isLocationAutoTag: true
                    isSchedulesProject: true
                    assigneesRoles:
                      creationType: role
                      roles:
                        - 7481ca15-cdb1-4e0f-a936-f8f88a56e989
                      locations: []
                      locationGroups: []
                    metadata: {}
                    createdAt: '2026-07-30T18:47:09.085Z'
                    updatedAt: '2026-07-30T18:47:09.085Z'
                    analytics:
                      - status: Completed
                        data: 42
                        percentage: 70
                      - status: In Progress
                        data: 6
                        percentage: 10
                      - status: Missed
                        data: 12
                        percentage: 20
                extra_meta: {}
        '401':
          description: >-
            Unauthorized - Invalid client credentials, or the key does not
            belong to this workspace.
        '403':
          description: >-
            Forbidden - API key not authorized for this route, the role lacks
            the required permission, the workspace does not have the Projects
            feature, or the project id is unknown to the caller. Note an unknown
            or deleted projectId also returns 403, not 404: the project access
            check runs before the handler and denies when it cannot load the
            project.
        '500':
          description: Internal Server Error.
      security:
        - clientKey: []
          clientSecret: []
components:
  securitySchemes:
    clientKey:
      type: apiKey
      in: header
      name: x-client-key
    clientSecret:
      type: apiKey
      in: header
      name: x-client-secret

````