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

# List models

> The models your key can call, in the OpenAI list shape plus the context window,
per-token pricing, supported endpoints and each model's checked
[capabilities](/inference/models#model-capabilities). A capability field that is
absent means "not verified", not "no". Still answered when your balance is zero.




## OpenAPI

````yaml /api-reference/inference/openapi.yaml get /models
openapi: 3.1.0
info:
  title: PrimaLabs Inference API
  version: 1.0.0
  description: >
    Serverless LLM inference on PrimaLabs. The API is OpenAI-compatible: point
    any

    OpenAI SDK at the base URL below and pass a PrimaLabs API key as the bearer

    token. Anthropic (`/messages`) and OpenAI Responses (`/responses`) formats
    are

    also accepted as passthroughs.


    This is a **curated** spec covering the endpoints we serve; it is maintained
    by

    hand. The current model list is published at

    https://docs.primalabs.ai/inference/models.
servers:
  - url: https://api.primalabs.ai/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Chat
    description: OpenAI-compatible chat completions — the primary endpoint.
  - name: Completions
    description: Legacy text completions.
  - name: Models
    description: The models your key can call, with context, pricing and capabilities.
  - name: Account
    description: Your account's balance.
  - name: Passthrough
    description: Anthropic and OpenAI Responses formats, forwarded as-is.
paths:
  /models:
    get:
      tags:
        - Models
      summary: List models
      description: >
        The models your key can call, in the OpenAI list shape plus the context
        window,

        per-token pricing, supported endpoints and each model's checked

        [capabilities](/inference/models#model-capabilities). A capability field
        that is

        absent means "not verified", not "no". Still answered when your balance
        is zero.
      operationId: listModels
      responses:
        '200':
          description: The models your key can call.
          content:
            application/json:
              schema:
                type: object
                properties:
                  object:
                    type: string
                    example: list
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Model'
              example:
                object: list
                data:
                  - id: primalabs-ai/DeepSeek-V4.1-Flash-1017
                    object: model
                    created: 1677610602
                    owned_by: primalabs-ai
                    context_length: 1048576
                    pricing:
                      prompt: '0.000001'
                      completion: '0.000002'
                      input_cache_read: '0.0000001'
                    mode: null
                    supported_endpoints:
                      - /v1/chat/completions
                      - /v1/messages
                      - /v1/responses
                    supports_function_calling: true
                    supports_reasoning: true
                    supports_vision: true
                    supports_prompt_caching: true
                    supports_response_schema: true
                    max_output_tokens: 1048576
                    input_modalities:
                      - text
                      - image
                    reasoning_toggle:
                      /v1/messages: true
                      /v1/responses: true
                      /v1/chat/completions: true
                    reasoning_effort_accepted:
                      /v1/responses:
                        - none
                        - low
                        - high
                        - xhigh
                        - max
                      /v1/chat/completions:
                        - none
                        - low
                        - high
                        - xhigh
                        - max
                    output_modalities:
                      - text
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    Model:
      type: object
      description: >
        A model your key can call. The capability fields (`supports_*`,
        `input_modalities`,

        `reasoning_*`, `max_output_tokens`) are present only once they have been
        checked

        against the live model; see [Model
        capabilities](/inference/models#model-capabilities).
      properties:
        id:
          type: string
          example: primalabs-ai/DeepSeek-V4.1-Flash-1017
        object:
          type: string
          example: model
        created:
          type: integer
        owned_by:
          type: string
          example: primalabs-ai
        context_length:
          type:
            - integer
            - 'null'
          description: The context window in tokens, or `null` when it is not known.
          example: 1048576
        pricing:
          type: object
          description: >
            USD per token, as decimal strings. A price that is not set is
            `null`. The

            example values are placeholders, not current rates.
          properties:
            prompt:
              type:
                - string
                - 'null'
              example: '0.000001'
            completion:
              type:
                - string
                - 'null'
              example: '0.000002'
            input_cache_read:
              type:
                - string
                - 'null'
              example: '0.0000001'
        mode:
          type:
            - string
            - 'null'
          description: >-
            The model's mode, when one is set. `null` for the chat models in the
            catalog.
        supported_endpoints:
          type:
            - array
            - 'null'
          description: >-
            The endpoints you can call this model on. One that failed its check
            is left out. `null` when the model has no endpoint list.
          items:
            type: string
          example:
            - /v1/chat/completions
            - /v1/messages
            - /v1/responses
        supports_function_calling:
          type: boolean
        supports_response_schema:
          type: boolean
        supports_vision:
          type: boolean
        supports_reasoning:
          type: boolean
        supports_prompt_caching:
          type: boolean
        input_modalities:
          type: array
          items:
            type: string
            enum:
              - text
              - image
              - audio
              - video
          example:
            - text
            - image
        output_modalities:
          type: array
          items:
            type: string
          example:
            - text
        reasoning_toggle:
          type: object
          description: Per endpoint, whether that endpoint's switch turns thinking off.
          additionalProperties:
            type: boolean
          example:
            /v1/chat/completions: true
            /v1/messages: true
            /v1/responses: true
        reasoning_effort_accepted:
          type: object
          description: >-
            Per endpoint, the effort values that endpoint's own parameter
            accepts without a `400` (`reasoning_effort` on chat completions,
            `reasoning.effort` on responses).
          additionalProperties:
            type: array
            items:
              type: string
          example:
            /v1/chat/completions:
              - none
              - low
              - high
              - xhigh
              - max
            /v1/responses:
              - none
              - low
              - high
              - xhigh
              - max
        reasoning_effort_effective:
          type: array
          description: >
            The `reasoning_effort` values that change the answer; every other
            accepted value

            behaves like one of these. See [Effort
            levels](/inference/models#effort-levels).
          items:
            type: string
        max_output_tokens:
          type: integer
          example: 1048576
      additionalProperties: true
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
            type:
              type: string
            param:
              type:
                - string
                - 'null'
            code:
              type: string
  responses:
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              message: Authentication Error, Invalid proxy server token passed.
              type: token_not_found_in_db
              param: key
              code: '401'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Your PrimaLabs API key, sent as `Authorization: Bearer <key>`.'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.