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

# List workspaces

> Returns a paginated list of workspaces (router-mode MCP servers) for the environment of the authenticating API key, newest first. Use `page` and `limit` for offset pagination.



## OpenAPI

````yaml /api-reference/openapi.json get /mcp/workspaces
openapi: 3.0.0
info:
  title: RouteMCP API
  description: >-
    Unified API for integrations. Connect to multiple providers through a single
    API.
  version: '1.0'
  contact: {}
servers:
  - url: https://api.routemcp.io/api/v1
    description: Production
security:
  - bearerAuth: []
tags: []
paths:
  /mcp/workspaces:
    get:
      tags:
        - MCP Workspaces
      summary: List workspaces
      description: >-
        Returns a paginated list of workspaces (router-mode MCP servers) for the
        environment of the authenticating API key, newest first. Use `page` and
        `limit` for offset pagination.
      operationId: WorkspaceController_list
      parameters:
        - name: page
          in: query
          required: false
          description: 1-indexed page number.
          schema:
            type: integer
            minimum: 1
            default: 1
        - name: limit
          in: query
          required: false
          description: Rows per page.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
      responses:
        '200':
          description: Paginated list of workspaces.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Workspace'
                  meta:
                    type: object
                    properties:
                      total:
                        type: integer
                        example: 1
                      page:
                        type: integer
                        example: 1
                      limit:
                        type: integer
                        example: 20
                      totalPages:
                        type: integer
                        example: 1
                    required:
                      - total
                      - page
                      - limit
                      - totalPages
                required:
                  - data
                  - meta
              example:
                data:
                  - id: 0191e6a2-1c4d-7a3b-9f10-2b3c4d5e6f70
                    organizationId: 0191e6a2-0000-7000-8000-000000000001
                    name: Support Bot
                    mode: router
                    environment: sandbox
                    allowedTools: null
                    toolkitFilter:
                      - github
                      - gmail
                    settings: {}
                    statelessMode: false
                    status: active
                    llm:
                      configured: true
                      model: anthropic/claude-sonnet-4-6
                      verificationStatus: verified
                      verifiedAt: '2026-05-29T10:05:00.000Z'
                      updatedAt: '2026-05-29T10:05:00.000Z'
                    createdAt: '2026-05-29T10:00:00.000Z'
                    updatedAt: '2026-05-29T10:00:00.000Z'
                meta:
                  total: 1
                  page: 1
                  limit: 20
                  totalPages: 1
        '422':
          description: Validation Errors.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    example: false
                  statusCode:
                    type: integer
                    example: 400
                    default: 400
                  message:
                    type: string
                    example: Validation Errors.
                    default: Validation Errors.
                  errors:
                    type: object
                    additionalProperties:
                      type: string
                    example:
                      email: email should not be empty
                  timestamp:
                    type: string
                    format: date-time
                    example: '2026-02-06T12:00:00.000Z'
                  path:
                    type: string
                    example: /api/v1/example
                required:
                  - success
                  - statusCode
                  - message
                  - errors
                  - timestamp
                  - path
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    example: false
                  statusCode:
                    type: integer
                    example: 429
                    default: 429
                  message:
                    type: string
                    example: Too Many Requests
                    default: Too Many Requests
                  timestamp:
                    type: string
                    format: date-time
                    example: '2026-02-06T12:00:00.000Z'
                  path:
                    type: string
                    example: /api/v1/example
                required:
                  - success
                  - statusCode
                  - message
                  - timestamp
                  - path
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    example: false
                  statusCode:
                    type: integer
                    example: 500
                    default: 500
                  message:
                    type: string
                    example: Internal server error.
                    default: Internal server error.
                  timestamp:
                    type: string
                    format: date-time
                    example: '2026-02-06T12:00:00.000Z'
                  path:
                    type: string
                    example: /api/v1/example
                required:
                  - success
                  - statusCode
                  - message
                  - timestamp
                  - path
      security:
        - bearerAuth: []
components:
  schemas:
    Workspace:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 0191e6a2-1c4d-7a3b-9f10-2b3c4d5e6f70
        organizationId:
          type: string
          format: uuid
          example: 0191e6a2-0000-7000-8000-000000000001
        name:
          type: string
          example: Support Bot
        mode:
          type: string
          enum:
            - router
          example: router
        environment:
          type: string
          enum:
            - sandbox
            - production
          example: sandbox
        allowedTools:
          type: array
          items:
            type: string
          nullable: true
          example: null
        toolkitFilter:
          type: array
          items:
            type: string
          nullable: true
          example:
            - github
            - gmail
        settings:
          type: object
          additionalProperties: true
          example: {}
        statelessMode:
          type: boolean
          description: >-
            Whether this workspace runs in stateless chat mode. When `true`,
            `POST /mcp/{workspaceId}/chat` persists nothing and callers must
            supply prior turns via `history`.
          example: false
        status:
          type: string
          enum:
            - active
            - archived
          example: active
        llm:
          type: object
          description: >-
            Bring-your-own LLM (OpenRouter) status for the workspace.
            `openRouterApiKey` is never echoed here. When no key is configured,
            the platform falls back to its default model.
          properties:
            configured:
              type: boolean
              description: Whether a per-workspace OpenRouter key is set.
              example: true
            model:
              type: string
              nullable: true
              description: >-
                The configured OpenRouter model id (`vendor/model`), or `null`
                when none is set.
              example: anthropic/claude-sonnet-4-6
            verificationStatus:
              type: string
              enum:
                - verified
                - invalid
                - unverified
              nullable: true
              description: >-
                Result of validating the configured key: `verified` (key works),
                `invalid` (key rejected), `unverified` (not yet checked), or
                `null` when no key is configured.
              example: verified
            verifiedAt:
              type: string
              format: date-time
              nullable: true
              description: When the key was last successfully verified, if ever.
              example: '2026-05-29T10:05:00.000Z'
            updatedAt:
              type: string
              format: date-time
              nullable: true
              description: When the LLM key/model was last changed.
              example: '2026-05-29T10:05:00.000Z'
          required:
            - configured
            - model
            - verificationStatus
        createdAt:
          type: string
          format: date-time
          example: '2026-05-29T10:00:00.000Z'
        updatedAt:
          type: string
          format: date-time
          example: '2026-05-29T10:00:00.000Z'
      required:
        - id
        - organizationId
        - name
        - mode
        - environment
        - settings
        - statelessMode
        - status
        - createdAt
        - updatedAt
  securitySchemes:
    bearerAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Enter your API key with the Bearer prefix — e.g. Bearer sk_live_xxx
        (production) or Bearer sk_test_xxx (sandbox)

````