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

# Retrieve a model

> Retrieves one model by its identifier, with the same information the models list returns for it.



## OpenAPI

````yaml /api-reference/openapi.yaml get /openai/v1/models/{model}
openapi: 3.0.3
info:
  title: Reflection API
  version: 0.1.0
  description: >-
    Reflection's hosted inference API. The `/openai/v1` routes are
    OpenAI-compatible: chat completions and the models that serve them.
    Responses, except CORS preflights, include identical `x-request-id` and
    `x-server-request-id` values independent of client-supplied IDs.

    Once a request is authenticated and admitted for rate limiting, its
    response, including an error response, carries `x-ratelimit-` headers
    reporting the organization's remaining request capacity, and for chat
    completions its token capacity. Headers ending in `-day` report the UTC
    calendar day; the others report a per-minute limit. Token capacity counts
    the input estimated at admission, not the completion's final usage. Reset
    durations measure full replenishment without further traffic, not when a
    rejected request may be retried; use `Retry-After` for that. The headers are
    omitted when capacity cannot be reported.
servers:
  - url: https://api.reflection.ai
    description: The Reflection API.
security:
  - apiKey: []
  - playgroundCredential: []
tags:
  - name: Models
    description: List and retrieve the models you can use with the API.
  - name: Chat
    description: Generate a model response for a conversation.
paths:
  /openai/v1/models/{model}:
    get:
      tags:
        - Models
      summary: Retrieve a model
      description: >-
        Retrieves one model by its identifier, with the same information the
        models list returns for it.
      operationId: retrieveModel
      parameters:
        - in: path
          name: model
          required: true
          description: >-
            The identifier of the model, as returned in the models list. An
            identifier that contains `/` may be sent as written.
          schema:
            type: string
          example: Beam-501B-A23B
      responses:
        '200':
          description: The model.
          headers:
            x-request-id:
              $ref: '#/components/headers/x-request-id'
            x-server-request-id:
              $ref: '#/components/headers/x-server-request-id'
            x-ratelimit-limit-requests:
              $ref: '#/components/headers/x-ratelimit-limit-requests'
            x-ratelimit-remaining-requests:
              $ref: '#/components/headers/x-ratelimit-remaining-requests'
            x-ratelimit-reset-requests:
              $ref: '#/components/headers/x-ratelimit-reset-requests'
            x-ratelimit-limit-requests-day:
              $ref: '#/components/headers/x-ratelimit-limit-requests-day'
            x-ratelimit-remaining-requests-day:
              $ref: '#/components/headers/x-ratelimit-remaining-requests-day'
            x-ratelimit-reset-requests-day:
              $ref: '#/components/headers/x-ratelimit-reset-requests-day'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Model'
              examples:
                Model:
                  summary: Model
                  value:
                    id: Beam-501B-A23B
                    object: model
                    created: 1791158400
                    owned_by: reflection
                    shutdown_date: null
                    context_length: 262144
                    max_output_tokens: 131072
                    reasoning:
                      supported_efforts:
                        - max
                        - xhigh
                        - high
                        - medium
                        - low
                      default_effort: medium
                      mandatory: true
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/ModelNotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  headers:
    x-request-id:
      description: >-
        A unique identifier the server assigns to this request. Include it when
        contacting support. A request ID you send is not reused.
      schema:
        type: string
        format: uuid
      example: 7c9e6679-7425-40de-944b-e07fc1f90ae7
    x-server-request-id:
      description: The same identifier as `x-request-id`.
      schema:
        type: string
        format: uuid
      example: 7c9e6679-7425-40de-944b-e07fc1f90ae7
    x-ratelimit-limit-requests:
      description: The most requests the organization may use per minute.
      schema:
        type: integer
        format: int64
        minimum: 0
      example: 600
    x-ratelimit-remaining-requests:
      description: >-
        The requests left in the per-minute capacity, rounded down. Reflects
        this request when it was admitted; a rejected request uses none.
      schema:
        type: integer
        format: int64
        minimum: 0
      example: 599
    x-ratelimit-reset-requests:
      description: >-
        The time until the per-minute capacity is fully replenished if no
        further requests are used, as seconds with up to millisecond precision
        and an `s` suffix. Not a retry delay; see `Retry-After`.
      schema:
        type: string
      example: 0.1s
    x-ratelimit-limit-requests-day:
      description: The most requests the organization may use per UTC calendar day.
      schema:
        type: integer
        format: int64
        minimum: 0
      example: 100000
    x-ratelimit-remaining-requests-day:
      description: >-
        The requests left in today's UTC calendar-day capacity, rounded down.
        Reflects this request when it was admitted; a rejected request uses
        none.
      schema:
        type: integer
        format: int64
        minimum: 0
      example: 99412
    x-ratelimit-reset-requests-day:
      description: >-
        The time until the next UTC midnight, when the daily count resets, as
        seconds with up to millisecond precision and an `s` suffix. Not a retry
        delay; see `Retry-After`.
      schema:
        type: string
      example: 43200s
  schemas:
    Model:
      type: object
      description: Describes a model offering that can be used with the API.
      required:
        - id
        - object
        - created
        - owned_by
        - shutdown_date
      properties:
        id:
          type: string
          description: The model identifier, which can be referenced in the API endpoints.
        object:
          type: string
          enum:
            - model
          description: The object type, which is always `model`.
        created:
          type: integer
          format: int64
          description: >-
            The Unix timestamp (in seconds) when the model was published, or 0
            if its publication time is not announced.
        owned_by:
          type: string
          description: The organization that owns the model.
        shutdown_date:
          type: string
          nullable: true
          description: The date when the model will shut down, or null if not announced.
        context_length:
          type: integer
          format: int64
          minimum: 1
          description: >-
            The largest request the model supports, in tokens, counting the
            prompt and the generated output together. A request longer than the
            model accepts is rejected rather than truncated. Omitted if not
            announced.
        max_output_tokens:
          type: integer
          format: int64
          minimum: 1
          description: >-
            The most tokens the model supports generating in response to one
            request. Omitted if not announced.
        reasoning:
          $ref: '#/components/schemas/ModelReasoning'
    ModelReasoning:
      type: object
      description: >-
        The model's reasoning-effort configuration. Omitted if the model does
        not announce its supported efforts.
      required:
        - supported_efforts
        - mandatory
      properties:
        supported_efforts:
          type: array
          minItems: 1
          description: >-
            The `reasoning_effort` values the model accepts, highest effort
            first. A chat completion request for this model accepts no other
            value.
          items:
            type: string
            enum:
              - max
              - xhigh
              - high
              - medium
              - low
        default_effort:
          type: string
          enum:
            - max
            - xhigh
            - high
            - medium
            - low
          description: >-
            The effort applied when a request omits `reasoning_effort`. Omitted
            if the model chooses its own.
        mandatory:
          type: boolean
          description: >-
            Whether reasoning is always on. When true, no `reasoning_effort`
            value disables reasoning.
    ErrorResponse:
      type: object
      description: The body returned with every error status.
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/Error'
    Error:
      type: object
      description: An error returned by the API.
      required:
        - message
        - type
        - param
        - code
      properties:
        message:
          type: string
          description: A human-readable description of the error.
        type:
          type: string
          description: The error category, such as `invalid_request_error`.
        param:
          type: string
          nullable: true
          description: The request parameter the error relates to, or null.
        code:
          type: string
          nullable: true
          description: A machine-readable error code, or null.
  responses:
    Unauthorized:
      description: >-
        The credential is missing, malformed, or not valid. Correct the
        credential before retrying.
      headers:
        x-request-id:
          $ref: '#/components/headers/x-request-id'
        x-server-request-id:
          $ref: '#/components/headers/x-server-request-id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Invalid API key:
              summary: Invalid API key
              value:
                error:
                  message: >-
                    Incorrect API key provided. The key may have been revoked or
                    expired.
                  type: authentication_error
                  param: null
                  code: invalid_api_key
            Missing credential:
              summary: Missing credential
              value:
                error:
                  message: >-
                    Provide an API key or Playground credential in the
                    Authorization header.
                  type: authentication_error
                  param: null
                  code: missing_credentials
    Forbidden:
      description: >-
        The credential is valid, but the caller is not an active member of the
        organization, an access restriction applies, or the organization's plan
        does not include this kind of credential. Retry only after access is
        granted, the restriction is lifted, or the plan changes.
      headers:
        x-request-id:
          $ref: '#/components/headers/x-request-id'
        x-server-request-id:
          $ref: '#/components/headers/x-server-request-id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Not an organization member:
              $ref: '#/components/examples/NotOrganizationMember'
            Credential not in plan:
              $ref: '#/components/examples/CredentialNotInPlan'
    ModelNotFound:
      description: >-
        The requested model does not exist or is not available to you. Choose a
        model from the models list before retrying.
      headers:
        x-request-id:
          $ref: '#/components/headers/x-request-id'
        x-server-request-id:
          $ref: '#/components/headers/x-server-request-id'
        x-ratelimit-limit-requests:
          $ref: '#/components/headers/x-ratelimit-limit-requests'
        x-ratelimit-remaining-requests:
          $ref: '#/components/headers/x-ratelimit-remaining-requests'
        x-ratelimit-reset-requests:
          $ref: '#/components/headers/x-ratelimit-reset-requests'
        x-ratelimit-limit-requests-day:
          $ref: '#/components/headers/x-ratelimit-limit-requests-day'
        x-ratelimit-remaining-requests-day:
          $ref: '#/components/headers/x-ratelimit-remaining-requests-day'
        x-ratelimit-reset-requests-day:
          $ref: '#/components/headers/x-ratelimit-reset-requests-day'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Unknown model:
              $ref: '#/components/examples/UnknownModel'
    TooManyRequests:
      description: >-
        The request was rejected because a rate limit was exceeded. Wait for the
        number of seconds in `Retry-After`, when present, then retry. A spent
        daily request limit also sends `x-should-retry: false`: it resets at
        00:00 UTC.
      headers:
        Retry-After:
          description: >-
            The minimum number of seconds to wait before retrying. Omitted when
            no retry delay is known.
          schema:
            type: integer
            minimum: 1
        x-should-retry:
          description: >-
            `false` when retrying cannot succeed before `Retry-After`; sent when
            the organization's daily request limit is spent. Browsers may read
            it.
          schema:
            type: string
            enum:
              - 'false'
        x-request-id:
          $ref: '#/components/headers/x-request-id'
        x-server-request-id:
          $ref: '#/components/headers/x-server-request-id'
        x-ratelimit-limit-requests:
          $ref: '#/components/headers/x-ratelimit-limit-requests'
        x-ratelimit-remaining-requests:
          $ref: '#/components/headers/x-ratelimit-remaining-requests'
        x-ratelimit-reset-requests:
          $ref: '#/components/headers/x-ratelimit-reset-requests'
        x-ratelimit-limit-requests-day:
          $ref: '#/components/headers/x-ratelimit-limit-requests-day'
        x-ratelimit-remaining-requests-day:
          $ref: '#/components/headers/x-ratelimit-remaining-requests-day'
        x-ratelimit-reset-requests-day:
          $ref: '#/components/headers/x-ratelimit-reset-requests-day'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Request rate limit:
              $ref: '#/components/examples/RequestRateLimit'
            Daily request limit:
              $ref: '#/components/examples/DailyRequestLimit'
    ServiceUnavailable:
      description: >-
        The service is temporarily unavailable. The request may be retried,
        after the number of seconds in `Retry-After` when present.
      headers:
        Retry-After:
          description: >-
            The minimum number of seconds to wait before retrying. Sent when a
            check the request depends on cannot answer.
          schema:
            type: integer
            minimum: 1
        x-request-id:
          $ref: '#/components/headers/x-request-id'
        x-server-request-id:
          $ref: '#/components/headers/x-server-request-id'
        x-ratelimit-limit-requests:
          $ref: '#/components/headers/x-ratelimit-limit-requests'
        x-ratelimit-remaining-requests:
          $ref: '#/components/headers/x-ratelimit-remaining-requests'
        x-ratelimit-reset-requests:
          $ref: '#/components/headers/x-ratelimit-reset-requests'
        x-ratelimit-limit-requests-day:
          $ref: '#/components/headers/x-ratelimit-limit-requests-day'
        x-ratelimit-remaining-requests-day:
          $ref: '#/components/headers/x-ratelimit-remaining-requests-day'
        x-ratelimit-reset-requests-day:
          $ref: '#/components/headers/x-ratelimit-reset-requests-day'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Rate limiting unavailable:
              $ref: '#/components/examples/RateLimitingUnavailable'
  examples:
    NotOrganizationMember:
      summary: Not an organization member
      value:
        error:
          message: You are not an active member of the credential's organization.
          type: permission_error
          param: null
          code: organization_membership_required
    CredentialNotInPlan:
      summary: Credential not in plan
      value:
        error:
          message: >-
            Your organization's plan does not include access with this kind of
            credential.
          type: permission_error
          param: null
          code: plan_access_denied
    UnknownModel:
      summary: Unknown model
      value:
        error:
          message: The model [reflection-large] you requested is unavailable.
          type: invalid_request_error
          param: model
          code: model_not_found
    RequestRateLimit:
      summary: Request rate limit
      value:
        error:
          message: >-
            Your organization has reached its request limit. Retry after the
            indicated delay.
          type: rate_limit_error
          param: null
          code: rate_limit_exceeded
    DailyRequestLimit:
      summary: Daily request limit
      value:
        error:
          message: >-
            Your organization has reached its daily request limit. It resets at
            00:00 UTC.
          type: rate_limit_error
          param: null
          code: rate_limit_exceeded
    RateLimitingUnavailable:
      summary: Rate limiting unavailable
      value:
        error:
          message: Rate limiting is temporarily unavailable. Retry the request.
          type: api_error
          param: null
          code: rate_limit_unavailable
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      bearerFormat: Reflection API key
      description: >-
        A Reflection API key, sent in the `Authorization` header as `Bearer <API
        key>`. Create a key for your project from the [Reflection
        platform](https://platform.reflection.ai/api-keys).
    playgroundCredential:
      type: http
      scheme: bearer
      bearerFormat: Reflection Playground credential
      description: >-
        A short-lived, project-scoped credential that the Reflection Playground
        issues to itself while you use it. It is not meant for direct use; send
        an API key instead.

````