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

# List client models

> List the client models registered in your organisation.



## OpenAPI

````yaml api-reference/agents/client-models.oas.yaml GET /v1/agents/client-models
openapi: 3.1.0
info:
  title: SLNG Agent Resources — Client models
  version: 1.0.0
  description: >-
    Public API for organisation tools, MCP servers, Vault entries, and BYOK
    client models.
  contact:
    name: SLNG Support
    email: support@slng.ai
servers:
  - url: https://api.agents.slng.ai
    description: Production
security:
  - bearerAuth: []
paths:
  /v1/agents/client-models:
    get:
      summary: List Client Models
      description: >-
        Return a paginated list of the client models owned by your organisation,
        each with its configured fallback cascade. Credential values are never
        returned; every model reports `has_api_key`, `has_vertex_credentials`,
        and `has_aws_credentials` instead.
      operationId: listClientModels
      parameters:
        - name: page
          in: query
          required: false
          description: Page number to return, starting at 1. Defaults to 1.
          example: 1
          schema:
            anyOf:
              - type: integer
                minimum: 1
              - type: 'null'
            default: 1
            title: Page
        - name: page_size
          in: query
          required: false
          description: Number of client models per page (minimum 1). Defaults to 20.
          example: 20
          schema:
            anyOf:
              - type: integer
                minimum: 1
              - type: 'null'
            title: Page Size
      responses:
        '200':
          description: A page of client models owned by your organisation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_ClientModelOut_'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '422':
          $ref: '#/components/responses/ValidationError'
        '429':
          $ref: '#/components/responses/RateLimitError'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    PaginatedResponse_ClientModelOut_:
      properties:
        items:
          items:
            $ref: '#/components/schemas/ClientModelOut'
          type: array
          title: Items
        meta:
          $ref: '#/components/schemas/PaginationMeta'
      type: object
      required:
        - items
        - meta
      title: PaginatedResponse[ClientModelOut]
      description: >-
        A page of client models: `items` holds the models for the requested page
        and `meta` carries the pagination counters.
      example:
        items: []
        meta:
          page: 1
          page_size: 20
          total: 0
          pages: 0
    ClientModelOut:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        org_id:
          type: string
          format: uuid
          title: Org Id
        api_key_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          description: >-
            Speech BYOK only: the API key id this credential is scoped to, or
            null for the organisation default. Non-secret.
          title: Api Key Id
        service_type:
          type: string
          enum:
            - llm
            - stt
            - tts
          description: 'The kind of model: `llm`, `stt`, or `tts`.'
          title: Service Type
        provider:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The configured provider. May be a legacy free-form label on records
            created before the current provider set.
          title: Provider
        model_lab:
          anyOf:
            - type: string
            - type: 'null'
          title: Model Lab
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: Url
        has_api_key:
          type: boolean
          description: >-
            Whether an upstream API key is stored. The key value is write-only
            and never returned.
          title: Has Api Key
        auth_header:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The custom credential header name, or null for the default
            Authorization Bearer scheme. The credential value itself is never
            returned.
          title: Auth Header
        model_name:
          type: string
          description: The configured alias for the model.
          title: Model Name
        model_id:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The upstream provider-facing model id, or null when `model_name` is
            sent as-is.
          title: Model Id
        fallbacks:
          anyOf:
            - items:
                $ref: '#/components/schemas/LlmRouterConfigEntry'
              type: array
            - type: 'null'
          title: Fallbacks
        azure_deployment:
          anyOf:
            - type: string
            - type: 'null'
          description: The configured Azure OpenAI deployment name (Azure only).
          title: Azure Deployment
        api_version:
          anyOf:
            - type: string
            - type: 'null'
          description: The configured Azure OpenAI API version (Azure only).
          title: Api Version
        has_vertex_credentials:
          type: boolean
          description: >-
            Whether Vertex service-account credentials are stored. The value is
            write-only and never returned.
          title: Has Vertex Credentials
        has_aws_credentials:
          type: boolean
          description: >-
            Whether AWS SigV4 credentials are stored. The value is write-only
            and never returned.
          title: Has Aws Credentials
        vertex_location:
          anyOf:
            - type: string
            - type: 'null'
          title: Vertex Location
        vertex_project:
          anyOf:
            - type: string
            - type: 'null'
          title: Vertex Project
        languages:
          items:
            type: string
          type: array
          title: Languages
        regions:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Regions
        enabled:
          type: boolean
          title: Enabled
        kwargs:
          anyOf:
            - type: object
              additionalProperties: true
            - type: 'null'
          title: Kwargs
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
        - id
        - org_id
        - service_type
        - provider
        - model_lab
        - url
        - has_api_key
        - auth_header
        - model_name
        - model_id
        - azure_deployment
        - api_version
        - has_vertex_credentials
        - has_aws_credentials
        - vertex_location
        - vertex_project
        - languages
        - regions
        - enabled
        - kwargs
        - created_at
        - updated_at
      title: ClientModelOut
      description: >-
        A client model as returned by the API. Credential values are never
        included; `has_api_key`, `has_vertex_credentials`, and
        `has_aws_credentials` report whether each secret is stored, and
        `fallbacks` lists the configured fallback cascade.
      example:
        id: 6a3f5b2c-1d4e-4f8a-9b0c-2e3d4f5a6b7c
        org_id: 1b2c3d4e-5f6a-7b8c-9d0e-1f2a3b4c5d6e
        api_key_id: null
        service_type: llm
        provider: openai-compat
        model_lab: null
        url: https://api.openai.com/v1
        has_api_key: true
        auth_header: null
        model_name: gpt-4o-mini
        model_id: null
        fallbacks: []
        azure_deployment: null
        api_version: null
        has_vertex_credentials: false
        has_aws_credentials: false
        vertex_location: null
        vertex_project: null
        languages: []
        regions: null
        enabled: true
        kwargs: null
        created_at: '2026-01-15T09:30:00Z'
        updated_at: '2026-01-15T09:30:00Z'
    PaginationMeta:
      properties:
        page:
          type: integer
          minimum: 1
          title: Page
        page_size:
          type: integer
          minimum: 1
          title: Page Size
        total:
          type: integer
          minimum: 0
          title: Total
        pages:
          type: integer
          minimum: 0
          title: Pages
      type: object
      required:
        - page
        - page_size
        - total
        - pages
      title: PaginationMeta
      description: >-
        Pagination counters for a list response: the current `page`, the
        `page_size`, the `total` item count, and the number of `pages`.
      example:
        page: 1
        page_size: 20
        total: 42
        pages: 3
    ApiErrorResponse:
      type: object
      description: >-
        Error envelope returned by failed requests. `detail` is a short message
        and `error` carries the structured code and metadata.
      required:
        - detail
        - error
      properties:
        detail:
          type: string
        error:
          $ref: '#/components/schemas/ApiErrorDetail'
      example:
        detail: client model not found
        error:
          code: NOT_FOUND
          message: client model not found
          request_id: req_01H8XYZ
          retryable: false
    LlmRouterConfigEntry:
      properties:
        client_model_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          description: >-
            Bring-your-own model reference: the id of one of your client models.
            Mutually exclusive with `catalog_model_code` (set at most one).
          title: Client Model Id
        catalog_model_code:
          anyOf:
            - type: string
              maxLength: 255
              minLength: 1
            - type: 'null'
          description: >-
            SLNG-managed model reference: a catalog model code. Mutually
            exclusive with `client_model_id`.
          title: Catalog Model Code
      type: object
      title: LlmRouterConfigEntry
      description: >-
        One slot in a config's ordered fallback cascade (``entries``).


        Exactly one of ``client_model_id`` (BYOK) or ``catalog_model_code``

        (Slng-managed) — the same XOR as the row-level model reference. Org

        ownership / catalog entitlement are checked in the service layer (needs
        the

        DB session); position in the list is the tier the sync derives
        (1-based).
      example:
        client_model_id: 6a3f5b2c-1d4e-4f8a-9b0c-2e3d4f5a6b7c
        catalog_model_code: null
    ApiErrorDetail:
      type: object
      description: >-
        Structured error body: a stable machine-readable `code`, a
        human-readable `message`, and optional `request_id`, `retryable`, and
        per-field validation details.
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: Stable machine-readable error code.
          example: NOT_FOUND
        message:
          type: string
          example: client model not found
        request_id:
          type:
            - string
            - 'null'
          example: req_01H8XYZ
        retryable:
          type: boolean
          example: false
        fields:
          type: array
          items:
            type: object
            additionalProperties: true
          example: []
      example:
        code: NOT_FOUND
        message: client model not found
        request_id: req_01H8XYZ
        retryable: false
  responses:
    UnauthorizedError:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorResponse'
    ForbiddenError:
      description: >-
        The caller cannot perform this operation, or public resource access is
        disabled for the organisation. Disabled access returns code
        PUBLIC_SHARED_RESOURCES_DISABLED with retryable set to false.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorResponse'
    ValidationError:
      description: Request validation failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorResponse'
    RateLimitError:
      description: The organisation's request limit was exceeded.
      headers:
        Retry-After:
          schema:
            type: integer
        X-RateLimit-Limit:
          schema:
            type: integer
        X-RateLimit-Remaining:
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorResponse'
    InternalServerError:
      description: The operation failed. The response does not expose secret values.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: SLNG API key
      description: Your SLNG consumer API key.

````