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

# Get Model Registry

> Returns all models and endpoints supported by the Planck AI Gateway

This endpoint returns the complete catalog of AI models and provider endpoints that the Planck AI Gateway can route to. The gateway uses this registry to determine which providers support a requested model and how to intelligently route requests for maximum reliability and cost optimization.

When you request a model through the AI Gateway (like `gpt-4o-mini`), the gateway consults this registry to find all providers offering that model, then applies routing logic to select the best provider based on your configuration, availability, and pricing.


## OpenAPI

````yaml get /v1/public/model-registry/models
openapi: 3.0.0
info:
  title: planck-api
  version: 1.0.0
  license:
    name: MIT
  contact: {}
servers:
  - url: https://api.inquantum.ai/
  - url: http://localhost:8585/
security: []
paths:
  /v1/public/model-registry/models:
    get:
      tags:
        - Model Registry
      summary: Returns chat-safe models with configurations, pricing, and capabilities
      description: Get chat-capable models from the registry
      operationId: GetModelRegistry
      parameters: []
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result_ModelRegistryResponse.string_'
              examples:
                Example 1:
                  value:
                    models:
                      - id: claude-opus-4-1
                        name: 'Anthropic: Claude Opus 4.1'
                        author: anthropic
                        contextLength: 200000
                        endpoints:
                          - provider: anthropic
                            providerSlug: anthropic
                            supportsPtb: true
                            ptbCompliance:
                              zeroDataRetention: false
                              hipaaEligible: true
                            operations:
                              - chat_completions
                              - responses
                            pricing:
                              prompt: 15
                              completion: 75
                              cacheRead: 1.5
                              cacheWrite: 18.75
                        maxOutput: 32000
                        trainingDate: '2025-08-05'
                        description: Most capable Claude model with extended context
                        inputModalities:
                          - null
                        outputModalities:
                          - null
                        operations:
                          - null
                        supportedParameters:
                          - null
                          - null
                          - null
                          - null
                          - null
                          - null
                          - null
                    total: 150
                    filters:
                      providers:
                        - name: anthropic
                          displayName: Anthropic
                        - name: openai
                          displayName: OpenAI
                        - name: google
                          displayName: Google
                      authors:
                        - anthropic
                        - openai
                        - google
                      capabilities:
                        - audio
                        - image
                        - thinking
                        - caching
                        - reasoning
                      operations:
                        - chat_completions
                        - responses
                      compliance:
                        - hipaa
      security: []
components:
  schemas:
    Result_ModelRegistryResponse.string_:
      anyOf:
        - $ref: '#/components/schemas/ResultSuccess_ModelRegistryResponse_'
        - $ref: '#/components/schemas/ResultError_string_'
    ResultSuccess_ModelRegistryResponse_:
      properties:
        data:
          $ref: '#/components/schemas/ModelRegistryResponse'
        error:
          type: number
          enum:
            - null
          nullable: true
      required:
        - data
        - error
      type: object
      additionalProperties: false
    ResultError_string_:
      properties:
        data:
          type: number
          enum:
            - null
          nullable: true
        error:
          type: string
      required:
        - data
        - error
      type: object
      additionalProperties: false
    ModelRegistryResponse:
      properties:
        models:
          items:
            $ref: '#/components/schemas/ModelRegistryItem'
          type: array
        total:
          type: number
          format: double
        filters:
          properties:
            compliance:
              items:
                $ref: '#/components/schemas/ModelComplianceFilter'
              type: array
            operations:
              items:
                $ref: '#/components/schemas/ModelOperation'
              type: array
            capabilities:
              items:
                $ref: '#/components/schemas/ModelCapability'
              type: array
            authors:
              items:
                type: string
              type: array
            providers:
              items:
                properties:
                  displayName:
                    type: string
                  name:
                    type: string
                required:
                  - displayName
                  - name
                type: object
              type: array
          required:
            - compliance
            - operations
            - capabilities
            - authors
            - providers
          type: object
      required:
        - models
        - total
        - filters
      type: object
      additionalProperties: false
    ModelRegistryItem:
      properties:
        id:
          type: string
        name:
          type: string
        author:
          type: string
        contextLength:
          type: number
          format: double
        endpoints:
          items:
            $ref: '#/components/schemas/ModelEndpoint'
          type: array
        maxOutput:
          type: number
          format: double
        trainingDate:
          type: string
        description:
          type: string
        inputModalities:
          items:
            $ref: '#/components/schemas/InputModality'
          type: array
        outputModalities:
          items:
            $ref: '#/components/schemas/OutputModality'
          type: array
        operations:
          items:
            $ref: '#/components/schemas/ModelOperation'
          type: array
        supportedParameters:
          items:
            $ref: '#/components/schemas/StandardParameter'
          type: array
        pinnedVersionOfModel:
          type: string
      required:
        - id
        - name
        - author
        - contextLength
        - endpoints
        - inputModalities
        - outputModalities
        - operations
        - supportedParameters
      type: object
      additionalProperties: false
    ModelComplianceFilter:
      type: string
      enum:
        - zdr
        - hipaa
    ModelOperation:
      type: string
      enum:
        - chat_completions
        - responses
        - embeddings
        - image_generations
        - audio_transcriptions
        - audio_translations
        - audio_speech
        - rerank
        - video_generations
    ModelCapability:
      type: string
      enum:
        - audio
        - video
        - image
        - thinking
        - web_search
        - caching
        - reasoning
    ModelEndpoint:
      properties:
        provider:
          type: string
        providerSlug:
          type: string
        endpoint:
          $ref: '#/components/schemas/Endpoint'
        supportsPtb:
          type: boolean
        ptbCompliance:
          $ref: '#/components/schemas/PtbComplianceFlags'
        operations:
          items:
            $ref: '#/components/schemas/ModelOperation'
          type: array
        pricing:
          $ref: '#/components/schemas/SimplifiedPricing'
        pricingTiers:
          items:
            $ref: '#/components/schemas/SimplifiedPricing'
          type: array
      required:
        - provider
        - providerSlug
        - ptbCompliance
        - operations
        - pricing
      type: object
      additionalProperties: false
    InputModality:
      type: string
      enum:
        - text
        - image
        - audio
        - video
        - file
    OutputModality:
      type: string
      enum:
        - text
        - image
        - audio
        - video
        - embeddings
        - rerank
        - speech
        - transcription
    StandardParameter:
      type: string
      enum:
        - max_tokens
        - max_completion_tokens
        - temperature
        - top_p
        - top_k
        - stop
        - stream
        - frequency_penalty
        - presence_penalty
        - repetition_penalty
        - seed
        - tools
        - tool_choice
        - functions
        - function_call
        - reasoning
        - include_reasoning
        - thinking
        - response_format
        - json_mode
        - truncate
        - min_p
        - logit_bias
        - logprobs
        - top_logprobs
        - structured_outputs
        - verbosity
        - 'n'
    Endpoint:
      properties:
        pricing:
          items:
            $ref: '#/components/schemas/ModelPricing'
          type: array
        contextLength:
          type: number
          format: double
        maxCompletionTokens:
          type: number
          format: double
        ptbEnabled:
          type: boolean
        supportedOperations:
          items:
            $ref: '#/components/schemas/ModelOperation'
          type: array
        version:
          type: string
        unsupportedParameters:
          items:
            $ref: '#/components/schemas/StandardParameter'
          type: array
        lifecycle:
          $ref: '#/components/schemas/ModelLifecycle'
        modelConfig:
          $ref: '#/components/schemas/ModelProviderConfig'
        userConfig:
          $ref: '#/components/schemas/UserEndpointConfig'
        provider:
          $ref: '#/components/schemas/ModelProviderName'
        author:
          $ref: '#/components/schemas/AuthorName'
        providerModelId:
          type: string
        supportedParameters:
          items:
            $ref: '#/components/schemas/StandardParameter'
          type: array
        priority:
          type: number
          format: double
        ptbCompliance:
          $ref: '#/components/schemas/Partial_ProviderPtbCompliance_'
      required:
        - pricing
        - contextLength
        - maxCompletionTokens
        - ptbEnabled
        - modelConfig
        - userConfig
        - provider
        - author
        - providerModelId
        - supportedParameters
        - supportedOperations
      type: object
      additionalProperties: false
    PtbComplianceFlags:
      properties:
        zeroDataRetention:
          type: boolean
        hipaaEligible:
          type: boolean
      required:
        - zeroDataRetention
        - hipaaEligible
      type: object
      additionalProperties: false
    SimplifiedPricing:
      properties:
        prompt:
          type: number
          format: double
        completion:
          type: number
          format: double
        audio:
          type: number
          format: double
        audioInput:
          type: number
          format: double
        audioOutput:
          type: number
          format: double
        audioMinute:
          type: number
          format: double
        character:
          type: number
          format: double
        thinking:
          type: number
          format: double
        web_search:
          type: number
          format: double
        image:
          type: number
          format: double
        imageInput:
          type: number
          format: double
        imageOutput:
          type: number
          format: double
        video:
          type: number
          format: double
        videoInput:
          type: number
          format: double
        videoOutput:
          type: number
          format: double
        cacheRead:
          type: number
          format: double
        cacheWrite:
          type: number
          format: double
        threshold:
          type: number
          format: double
      required:
        - prompt
        - completion
      type: object
      additionalProperties: false
    ModelPricing:
      properties:
        threshold:
          type: number
          format: double
        input:
          type: number
          format: double
        output:
          type: number
          format: double
        cacheMultipliers:
          properties:
            write1h:
              type: number
              format: double
            write5m:
              type: number
              format: double
            cachedInput:
              type: number
              format: double
          required:
            - cachedInput
          type: object
        cacheStoragePerHour:
          type: number
          format: double
        thinking:
          type: number
          format: double
        request:
          type: number
          format: double
        audioMinute:
          type: number
          format: double
        character:
          type: number
          format: double
        imageGeneration:
          $ref: '#/components/schemas/Record_string.number_'
          description: Per-generated-image USD rate keyed by `quality:size`.
        meterRates:
          items:
            $ref: '#/components/schemas/PricingMeterRate'
          type: array
          description: >-
            Canonical USD-per-unit rates. Export fills these from legacy fields
            when

            omitted; providers may declare non-token units such as
            megapixels/frames.
        image:
          $ref: '#/components/schemas/ModalityPricing'
        audio:
          $ref: '#/components/schemas/ModalityPricing'
        video:
          $ref: '#/components/schemas/ModalityPricing'
        file:
          $ref: '#/components/schemas/ModalityPricing'
        web_search:
          type: number
          format: double
      required:
        - threshold
        - input
        - output
      type: object
      additionalProperties: false
    ModelLifecycle:
      type: string
      enum:
        - active
        - legacy
        - deprecated
        - retired
    ModelProviderConfig:
      properties:
        pricing:
          items:
            $ref: '#/components/schemas/ModelPricing'
          type: array
        contextLength:
          type: number
          format: double
        maxCompletionTokens:
          type: number
          format: double
        ptbEnabled:
          type: boolean
        supportedOperations:
          items:
            $ref: '#/components/schemas/ModelOperation'
          type: array
        version:
          type: string
        unsupportedParameters:
          items:
            $ref: '#/components/schemas/StandardParameter'
          type: array
        lifecycle:
          $ref: '#/components/schemas/ModelLifecycle'
        providerModelId:
          type: string
        provider:
          $ref: '#/components/schemas/ModelProviderName'
        author:
          $ref: '#/components/schemas/AuthorName'
        supportedParameters:
          items:
            $ref: '#/components/schemas/StandardParameter'
          type: array
        supportedPlugins:
          items:
            $ref: '#/components/schemas/PluginId'
          type: array
        rateLimits:
          $ref: '#/components/schemas/RateLimits'
        endpointConfigs:
          $ref: '#/components/schemas/Record_string.EndpointConfig_'
        crossRegion:
          type: boolean
        priority:
          type: number
          format: double
        quantization:
          type: string
          enum:
            - fp4
            - fp8
            - fp16
            - bf16
            - int4
        responseFormat:
          $ref: '#/components/schemas/ResponseFormat'
        requireExplicitRouting:
          type: boolean
        providerModelIdAliases:
          items:
            type: string
          type: array
        chatParameterOverrides:
          $ref: '#/components/schemas/ChatParameterContractOverrides'
        videoGenerationConstraints:
          $ref: '#/components/schemas/VideoGenerationConstraints'
        ptbCompliance:
          $ref: '#/components/schemas/Partial_ProviderPtbCompliance_'
          description: Optional override of the provider PTB compliance default.
      required:
        - pricing
        - contextLength
        - maxCompletionTokens
        - ptbEnabled
        - providerModelId
        - provider
        - author
        - supportedParameters
        - endpointConfigs
      type: object
      additionalProperties: false
    UserEndpointConfig:
      properties:
        region:
          type: string
        location:
          type: string
        projectId:
          type: string
        baseUri:
          type: string
        deploymentName:
          type: string
        resourceName:
          type: string
        apiVersion:
          type: string
        crossRegion:
          type: boolean
        gatewayMapping:
          $ref: '#/components/schemas/BodyMappingType'
        modelName:
          type: string
        planckModelId:
          type: string
        bifrostModelId:
          type: string
          deprecated: true
      type: object
      additionalProperties: false
    ModelProviderName:
      type: string
      enum:
        - baseten
        - anthropic
        - azure
        - bedrock
        - cerebras
        - chutes
        - deepinfra
        - deepseek
        - fireworks
        - google-ai-studio
        - groq
        - planck
        - bifrost
        - mistral
        - nebius
        - novita
        - openai
        - openrouter
        - perplexity
        - vertex
        - xai
      nullable: false
    AuthorName:
      type: string
      enum:
        - anthropic
        - deepseek
        - mistral
        - openai
        - perplexity
        - xai
        - google
        - meta-llama
        - amazon
        - microsoft
        - black-forest-labs
        - bytedance-seed
        - recraft
        - sourceful
        - nvidia
        - minimaxai
        - qwen
        - moonshotai
        - alibaba
        - zai
        - baidu
        - passthrough
    Partial_ProviderPtbCompliance_:
      properties:
        zeroDataRetention:
          type: boolean
        hipaaEligible:
          type: boolean
      type: object
      description: Make all properties in T optional
    Record_string.number_:
      properties: {}
      additionalProperties:
        type: number
        format: double
      type: object
      description: Construct a type with a set of properties K of type T
    PricingMeterRate:
      description: Explicit unit-aware price. `rate` is USD per declared unit.
      properties:
        dimension:
          type: string
        unit:
          $ref: '#/components/schemas/MeterUnit'
        rate:
          type: number
          format: double
        variants:
          $ref: '#/components/schemas/Record_string.string_'
      required:
        - dimension
        - unit
        - rate
      type: object
      additionalProperties: false
    ModalityPricing:
      description: |-
        Per-modality pricing configuration.
        Supports input, cached input (as multiplier), and output rates.
      properties:
        input:
          type: number
          format: double
        cachedInputMultiplier:
          type: number
          format: double
        output:
          type: number
          format: double
      type: object
      additionalProperties: false
    PluginId:
      type: string
      enum:
        - web
      nullable: false
    RateLimits:
      properties:
        rpm:
          type: number
          format: double
        tpm:
          type: number
          format: double
        tpd:
          type: number
          format: double
      type: object
      additionalProperties: false
    Record_string.EndpointConfig_:
      properties: {}
      additionalProperties:
        $ref: '#/components/schemas/EndpointConfig'
      type: object
      description: Construct a type with a set of properties K of type T
    ResponseFormat:
      type: string
      enum:
        - ANTHROPIC
        - OPENAI
        - GOOGLE
    ChatParameterContractOverrides:
      properties:
        temperature:
          anyOf:
            - $ref: '#/components/schemas/Partial_ChatNumericParameterControl_'
            - type: boolean
              enum:
                - false
        maxOutputTokens:
          anyOf:
            - $ref: '#/components/schemas/Partial_ChatMaxOutputTokensControl_'
            - type: boolean
              enum:
                - false
        topP:
          anyOf:
            - $ref: '#/components/schemas/Partial_ChatNumericParameterControl_'
            - type: boolean
              enum:
                - false
        frequencyPenalty:
          anyOf:
            - $ref: '#/components/schemas/Partial_ChatNumericParameterControl_'
            - type: boolean
              enum:
                - false
        presencePenalty:
          anyOf:
            - $ref: '#/components/schemas/Partial_ChatNumericParameterControl_'
            - type: boolean
              enum:
                - false
        stopSequences:
          anyOf:
            - $ref: >-
                #/components/schemas/Partial_NonNullable_ChatParameterContract-at-stopSequences__
            - type: boolean
              enum:
                - false
        reasoning:
          anyOf:
            - properties:
                effortValues:
                  anyOf:
                    - items:
                        $ref: '#/components/schemas/ChatReasoningEffort'
                      type: array
                    - type: boolean
                      enum:
                        - false
                includeReasoning:
                  type: boolean
                output:
                  type: boolean
              type: object
            - type: boolean
              enum:
                - false
        imageOutput:
          anyOf:
            - $ref: '#/components/schemas/Partial_ChatImageOutputContract_'
            - type: boolean
              enum:
                - false
      type: object
      additionalProperties: false
    VideoGenerationConstraints:
      description: >-
        Provider-model contract for Planck's canonical `POST /v1/videos`
        request.


        An omitted field means that parameter is not supported by this endpoint.

        Provider adapters may translate these canonical values after validation.
      properties:
        requestParameters:
          items:
            type: string
          type: array
          description: >-
            Complete set of accepted top-level fields for this provider-model
            route.
        resolutions:
          items:
            type: string
          type: array
        aspectRatios:
          items:
            type: string
          type: array
        sizes:
          items:
            type: string
          type: array
        duration:
          $ref: '#/components/schemas/NumericParameterConstraint'
        frameImages:
          items:
            type: string
          type: array
        generateAudio:
          items:
            type: boolean
          type: array
          description: Accepted values for the canonical `generate_audio` request field.
        passthroughParameters:
          items:
            type: string
          type: array
          description: >-
            Provider-specific fields the upstream explicitly allows to pass
            through.
      required:
        - requestParameters
      type: object
      additionalProperties: false
    BodyMappingType:
      type: string
      enum:
        - OPENAI
        - NO_MAPPING
        - RESPONSES
    MeterUnit:
      type: string
      enum:
        - token
        - token_hour
        - image
        - megapixel
        - second
        - millisecond
        - minute
        - frame
        - page
        - character
        - request
        - tool_call
        - search_unit
        - vector
        - byte
        - byte_hour
    Record_string.string_:
      properties: {}
      additionalProperties:
        type: string
      type: object
      description: Construct a type with a set of properties K of type T
    EndpointConfig:
      properties:
        region:
          type: string
        location:
          type: string
        projectId:
          type: string
        baseUri:
          type: string
        deploymentName:
          type: string
        resourceName:
          type: string
        apiVersion:
          type: string
        crossRegion:
          type: boolean
        gatewayMapping:
          $ref: '#/components/schemas/BodyMappingType'
        modelName:
          type: string
        planckModelId:
          type: string
        bifrostModelId:
          type: string
          deprecated: true
        providerModelId:
          type: string
        pricing:
          items:
            $ref: '#/components/schemas/ModelPricing'
          type: array
        contextLength:
          type: number
          format: double
        maxCompletionTokens:
          type: number
          format: double
        ptbEnabled:
          type: boolean
        supportedOperations:
          items:
            $ref: '#/components/schemas/ModelOperation'
          type: array
        version:
          type: string
        rateLimits:
          $ref: '#/components/schemas/RateLimits'
        priority:
          type: number
          format: double
        lifecycle:
          $ref: '#/components/schemas/ModelLifecycle'
        ptbCompliance:
          $ref: '#/components/schemas/Partial_ProviderPtbCompliance_'
      type: object
      additionalProperties: false
    Partial_ChatNumericParameterControl_:
      properties:
        kind:
          type: string
          enum:
            - number
          nullable: false
        initialValue:
          type: number
          format: double
        min:
          type: number
          format: double
        max:
          type: number
          format: double
        step:
          type: number
          format: double
        integer:
          type: boolean
      type: object
      description: Make all properties in T optional
    Partial_ChatMaxOutputTokensControl_:
      properties:
        parameter:
          type: string
          enum:
            - max_tokens
            - max_completion_tokens
        kind:
          type: string
          enum:
            - number
          nullable: false
        initialValue:
          type: number
          format: double
        min:
          type: number
          format: double
        max:
          type: number
          format: double
        step:
          type: number
          format: double
        integer:
          type: boolean
      type: object
      description: Make all properties in T optional
    Partial_NonNullable_ChatParameterContract-at-stopSequences__:
      properties:
        kind:
          type: string
          enum:
            - string-list
          nullable: false
        maxItems:
          type: number
          format: double
        maxItemLength:
          type: number
          format: double
      type: object
      description: Make all properties in T optional
    ChatReasoningEffort:
      type: string
      enum:
        - minimal
        - low
        - medium
        - high
    Partial_ChatImageOutputContract_:
      properties:
        aspectRatios:
          items:
            type: string
          type: array
        sizes:
          items:
            type: string
          type: array
        defaultAspectRatio:
          type: string
        defaultSize:
          type: string
      type: object
      description: Make all properties in T optional
    NumericParameterConstraint:
      properties:
        values:
          items:
            type: number
            format: double
          type: array
          description: Exact accepted values when the provider publishes a discrete set.
        minimum:
          type: number
          format: double
        maximum:
          type: number
          format: double
        integer:
          type: boolean
      type: object
      additionalProperties: false

````