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

# List public model catalog

> List public models.



## OpenAPI

````yaml /cloud/rest/openapi.json get /catalog/models
openapi: 3.1.0
info:
  title: Veryfront REST API reference
  version: 1.0.0
  description: |-
    ## Explore the API

    | Domain | Use it to |
    | --- | --- |
    | [Projects](#tag/projects) | Manage projects and files. |
    | [Agents](#tag/agents) | Manage agent primitives. |
    | [Orchestration](#tag/execution) | Manage conversations and runs. |
    | [Evaluations](#tag/evaluations) | Manage evaluations and results. |
    | [AI Gateway](#tag/ai-gateway) | Access models and inference. |
    | [MCP](#tag/mcp) | Discover tools and authorization. |
    | [Integrations](#tag/integrations) | Manage connections and integrations. |
    | [Knowledge](#tag/knowledge) | Manage documents and search. |
    | [Deployments](#tag/deployments) | Manage releases and deployments. |
    | [Runtime](#tag/runtime) | Manage environments and infrastructure. |
    | [Observability](#tag/observability) | Monitor activity and performance. |
    | [Identity & Access](#tag/identity-access) | Manage identity and access. |
    | [Billing & Usage](#tag/billing-usage) | Manage billing and usage. |
    | [Other](#tag/platform) | Inspect health and API metadata. |

    [OpenAPI specification (JSON)](/openapi.json)
  contact:
    name: Veryfront API Support
    url: https://veryfront.com/docs
    email: support@veryfront.com
  x-api-id: 5f1f0b8a-6b0e-4c1a-9b35-0f3a1e6d84c7
  x-audience: external-public
servers:
  - url: https://api.veryfront.com
security:
  - bearerAuth: []
  - apiKeyAuth: []
tags:
  - name: projects
    description: Manage projects and files.
  - name: agents
    description: Manage agent primitives.
  - name: execution
    description: Manage conversations and runs.
  - name: evaluations
    description: Manage evaluations and results.
  - name: ai-gateway
    description: Access models and inference.
  - name: mcp
    description: Discover tools and authorization.
  - name: integrations
    description: Manage connections and integrations.
  - name: knowledge
    description: Manage documents and search.
  - name: deployments
    description: Manage releases and deployments.
  - name: runtime
    description: Manage environments and infrastructure.
  - name: observability
    description: Monitor activity and performance.
  - name: identity-access
    description: Manage identity and access.
  - name: billing-usage
    description: Manage billing and usage.
  - name: platform
    description: Inspect health and API metadata.
  - name: projects/Projects
  - name: projects/Projects/Favorites
  - name: projects/Projects/Account Projects
  - name: projects/Projects/Projects
  - name: projects/Projects/Project Labels
  - name: projects/Projects/Project templates
  - name: projects/Files
  - name: projects/Files/Files
  - name: projects/Files/File Chunks
  - name: projects/Files/Branch File Versions
  - name: projects/Files/Branch Files
  - name: projects/Files/Environment Files
  - name: projects/Files/File Versions
  - name: projects/Files/Branch File Drafts
  - name: projects/Files/Release Files
  - name: projects/Files/Sandbox Files
  - name: projects/Files/File Search
  - name: projects/Branches
  - name: projects/Branches/Branches
  - name: projects/Branches/Branch Policies
  - name: projects/Branches/Branch Approvals
  - name: projects/Branches/Branch Status Checks
  - name: projects/Branches/Project Commits
  - name: projects/Branches/Branch Merges
  - name: projects/Uploads
  - name: projects/Uploads/Upload Folders
  - name: projects/Uploads/Upload Grants
  - name: projects/Uploads/Project Uploads
  - name: projects/Uploads/Upload Visibility
  - name: agents/Agents
  - name: agents/Agents/Agents
  - name: agents/Agents/Agent Labels
  - name: agents/Agents/Agent templates
  - name: agents/Agents/Agent Tool References
  - name: agents/Agents/Agent Avatars
  - name: agents/Agents/Agent Capabilities
  - name: agents/Agents/Agent Installation
  - name: agents/Prompts
  - name: agents/Prompts/Project prompts
  - name: agents/Tools
  - name: agents/Tools/Project tools
  - name: agents/Skills
  - name: agents/Skills/Project skills
  - name: agents/Resources
  - name: agents/Resources/Project resources
  - name: agents/Tasks
  - name: agents/Tasks/Tasks
  - name: agents/Workflows
  - name: agents/Workflows/Workflows
  - name: execution/Conversations
  - name: execution/Conversations/Conversations
  - name: execution/Conversations/Conversation messages
  - name: execution/Conversations/Conversation participants
  - name: execution/Conversations/Conversation read state
  - name: execution/Triggers
  - name: execution/Triggers/Project schedules
  - name: execution/Triggers/Webhooks
  - name: execution/Triggers/Webhook events
  - name: execution/Runs
  - name: execution/Runs/Run Input Requests
  - name: execution/Runs/Runs
  - name: execution/Runs/Runtime
  - name: execution/Runs/Child Runs
  - name: execution/Runs/Conversation Runs
  - name: execution/Runs/Project Runs
  - name: execution/Runs/Webhook Runs
  - name: execution/Runs/Run Events
  - name: execution/Runs/Run Actions
  - name: execution/Runs/Run Artifacts
  - name: execution/Executors
  - name: execution/Executors/Connected agents
  - name: execution/Executors/Agent workers
  - name: evaluations/Evaluations
  - name: evaluations/Evaluations/Evaluations
  - name: evaluations/Evaluations/Evaluation Runs
  - name: ai-gateway/Models
  - name: ai-gateway/Models/Model discovery
  - name: ai-gateway/Models/Inference Models
  - name: ai-gateway/Models/Project inference policy
  - name: ai-gateway/Models/Account inference policy
  - name: ai-gateway/Inference
  - name: ai-gateway/Inference/OpenAI Chat Completions
  - name: ai-gateway/Inference/Embeddings
  - name: ai-gateway/Inference/OpenAI Responses
  - name: ai-gateway/Inference/Proxy metadata
  - name: ai-gateway/Inference/Anthropic Messages
  - name: ai-gateway/Inference/Provider gateway
  - name: ai-gateway/Inference/Gemini inference
  - name: ai-gateway/Inference/Image generation
  - name: mcp/Tools
  - name: mcp/Tools/MCP discovery
  - name: mcp/Authorization
  - name: mcp/Authorization/Protected resource discovery
  - name: integrations/Integrations
  - name: integrations/Integrations/Integration tools
  - name: integrations/Integrations/Integration catalog
  - name: integrations/Integrations/Project integrations
  - name: integrations/Connections
  - name: integrations/Connections/Connections
  - name: integrations/Channels
  - name: integrations/Channels/Channels
  - name: integrations/Channels/Setup lookups
  - name: integrations/External storage
  - name: integrations/External storage/External Files
  - name: knowledge/Documents
  - name: knowledge/Documents/Project knowledge
  - name: knowledge/Documents/Retrieval documents
  - name: knowledge/Search
  - name: knowledge/Search/Search
  - name: knowledge/Embeddings
  - name: knowledge/Embeddings/Project embeddings
  - name: deployments/Releases
  - name: deployments/Releases/Releases
  - name: deployments/Releases/Release Versions
  - name: deployments/Releases/Release Source Manifests
  - name: deployments/Deployments
  - name: deployments/Deployments/Project deployments
  - name: deployments/Artifacts
  - name: deployments/Artifacts/Dependencies
  - name: deployments/Artifacts/Release Asset Manifests
  - name: deployments/Artifacts/Style artifacts
  - name: runtime/Environments
  - name: runtime/Environments/Environments
  - name: runtime/Environments/Environment Domains
  - name: runtime/Environments/Environment variables
  - name: runtime/Environments/Project Domains
  - name: runtime/Environments/Environment Variable Keys
  - name: runtime/Servers
  - name: runtime/Servers/Environment Servers
  - name: runtime/Servers/Project servers
  - name: runtime/Sandboxes
  - name: runtime/Sandboxes/Sandbox Lifecycle
  - name: runtime/Sandboxes/Sandbox Commands
  - name: runtime/Sandboxes/Sandbox Environment
  - name: runtime/Sandboxes/Sandbox Health
  - name: runtime/Sandboxes/Sandbox Terminal
  - name: runtime/Cache
  - name: runtime/Cache/Project Cache
  - name: runtime/Cache/User Cache
  - name: observability/Logs
  - name: observability/Logs/Log entries
  - name: observability/Traces
  - name: observability/Traces/Trace spans
  - name: observability/Traces/Project traces
  - name: observability/Traces/Trace Search
  - name: observability/Metrics
  - name: observability/Metrics/Metric series
  - name: observability/Alerts
  - name: observability/Alerts/Project alerts
  - name: observability/Error types
  - name: observability/Error types/Error types
  - name: identity-access/Users
  - name: identity-access/Users/Account users
  - name: identity-access/Users/Project users
  - name: identity-access/Users/Current user
  - name: identity-access/Accounts
  - name: identity-access/Accounts/Accounts
  - name: identity-access/Invitations
  - name: identity-access/Invitations/Invitations
  - name: identity-access/Permissions
  - name: identity-access/Permissions/Feature gates
  - name: identity-access/Permissions/Project Ownership
  - name: identity-access/API keys
  - name: identity-access/API keys/API keys
  - name: identity-access/Authentication
  - name: identity-access/Authentication/Sign-in
  - name: identity-access/Authentication/Tokens
  - name: identity-access/Authorization
  - name: identity-access/Authorization/Authorized apps
  - name: identity-access/Authorization/General OAuth
  - name: identity-access/Authorization/Consent
  - name: billing-usage/Subscriptions
  - name: billing-usage/Subscriptions/Subscriptions
  - name: billing-usage/Subscriptions/Seats
  - name: billing-usage/Billing
  - name: billing-usage/Billing/Invoices
  - name: billing-usage/Billing/Payments
  - name: billing-usage/Billing/Payment Methods
  - name: billing-usage/Billing/Billing Details
  - name: billing-usage/Billing/Account billing
  - name: billing-usage/Credits
  - name: billing-usage/Credits/Credits
  - name: billing-usage/Budgets
  - name: billing-usage/Budgets/Budgets
  - name: billing-usage/Usage
  - name: billing-usage/Usage/API key usage
  - name: billing-usage/Usage/Account usage
  - name: billing-usage/Usage/Project usage
  - name: billing-usage/Analytics
  - name: billing-usage/Analytics/Conversation Analytics
  - name: billing-usage/Analytics/Run Analytics
  - name: platform/Other
  - name: platform/Other/API metadata
paths:
  /catalog/models:
    get:
      tags:
        - ai-gateway/Models/Model discovery
      summary: List public model catalog
      description: List public models.
      operationId: listPublicModelCatalog
      responses:
        '200':
          description: >-
            Public platform model catalog. Requires no authentication, reads no
            caller context, and is identical for every caller, so it is
            cacheable. Provider cost is served in EUR only. Pricing source links
            are not included; the authenticated `GET /ai/models` carries them.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicModelCatalog'
        '304':
          description: The catalog has not changed since the ETag in `If-None-Match`
        '429':
          description: Rate limit exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: Server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security: []
components:
  schemas:
    PublicModelCatalog:
      type: object
      properties:
        models:
          type: array
          items:
            $ref: '#/components/schemas/PublicCatalogModel'
          description: Publicly listed AI models
        providers:
          type: array
          items:
            type: string
          description: Provider names represented in the catalog
        defaultModelId:
          type: string
          description: Default unified model ID recommended by the API
          example: mistral/mistral-small-2503
        fx:
          type: object
          properties:
            base:
              type: string
              description: The currency one unit of which `rate` prices
              example: EUR
            quote:
              type: string
              description: The currency `rate` is expressed in
              example: USD
            rate:
              type: number
              exclusiveMinimum: 0
              description: 1 `base` = `rate` `quote`
              example: 1.1403
            source:
              type: string
              description: Where the rate is published
              example: ECB euro foreign exchange reference rate
            date:
              type: string
              description: The reference date of the rate (YYYY-MM-DD)
              example: '2026-09-25'
          required:
            - base
            - quote
            - rate
            - source
            - date
          description: >-
            1 `base` = `rate` `quote`. EUR prices converted from USD are the USD
            price divided by `rate`, rounded to 6 decimal places. For a host
            that invoices in EUR the EUR prices are that host's published EUR
            list, unconverted and unrounded.
      required:
        - models
        - providers
        - defaultModelId
        - fx
      description: Public model catalog with customer pricing.
    Problem:
      type: object
      properties:
        cause:
          type: string
          enum:
            - schedule_concurrency_forbidden
            - schedule_fire_in_progress
            - schedule_run_limit_reached
          description: Schedule admission refusal.
        idempotency:
          type: object
          properties:
            state:
              type: string
              enum:
                - in_progress
                - payload_mismatch
                - outcome_unknown
            operation:
              type: string
              minLength: 1
            retryable:
              type: boolean
            retry_after_seconds:
              type:
                - integer
                - 'null'
              minimum: 0
            expires_at:
              type:
                - string
                - 'null'
            recovery:
              type: object
              properties:
                available:
                  type: boolean
                description:
                  type: string
                resource_url:
                  type: string
              required:
                - available
                - description
          required:
            - state
            - operation
            - retryable
            - retry_after_seconds
            - expires_at
          description: Replay status, retry timing, and recovery lookup.
        type:
          type: string
          description: URI reference identifying the problem type
          example: https://api.veryfront.com/errors/validation-failed
        title:
          type: string
          description: Short human-readable summary of the problem
          example: Validation Failed
        status:
          type: integer
          minimum: 100
          maximum: 599
          description: HTTP status code
          example: 400
        code:
          type: string
          description: Stable machine-readable error code
          example: RUN_INVALID_INPUT
        detail:
          type: string
          description: Human-readable explanation specific to this occurrence
          example: The 'email' field must be a valid email address
        instance:
          type: string
          description: URI reference identifying the specific occurrence
          example: /projects/my-project/members
        slug:
          type: string
          description: Stable identifier for the problem type
          example: validation-failed
        category:
          type: string
          enum:
            - AUTH
            - RESOURCE
            - VALIDATION
            - DATABASE
            - SUBSCRIPTION
            - INTEGRATION
            - INTERNAL
          description: API error category
          example: VALIDATION
        suggestion:
          type: string
          description: Suggested action to resolve the problem
          example: >-
            Check the request body and query parameters against the API
            documentation.
        errors:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
                description: Field path that caused the error
                example: email
              message:
                type: string
                description: Error message for this field
                example: Invalid email format
              code:
                type: string
                description: Error code for this field
                example: INVALID_FORMAT
            required:
              - field
              - message
          description: Detailed field-level errors for validation failures
      required:
        - type
        - title
        - status
    PublicCatalogModel:
      type: object
      properties:
        id:
          type: string
          description: Model identifier.
          example: claude-sonnet-4-6
        modelId:
          type: string
          description: Unified model ID (provider/model).
          example: anthropic/claude-sonnet-4-6
        provider:
          type: string
          description: Provider name.
          example: anthropic
        providerLabel:
          type: string
          description: Public provider display name.
          example: Anthropic
        providerLogoKey:
          type: string
          description: Public provider logo key.
          example: anthropic
        name:
          type: string
          description: Display name.
          example: Claude Sonnet
        description:
          type: string
          description: Short description.
          example: Most efficient for everyday tasks
        aliases:
          type: array
          items:
            type: string
          description: Accepted aliases for backward-compatible model selection.
          example:
            - sonnet
            - anthropic/claude-sonnet-4-6
        supportedProviderTools:
          type: array
          items:
            type: string
          description: >-
            Provider-executed agent tools supported on the deployment a request
            for this model is served from.
          example:
            - web_search
            - web_fetch
        temperature:
          type:
            - object
            - 'null'
          properties:
            min:
              type: number
              minimum: 0
              description: Minimum supported temperature.
            max:
              type: number
              minimum: 0
              description: Maximum supported temperature.
          required:
            - min
            - max
          description: >-
            Per-model temperature limits; null when the runtime fixes or omits
            temperature.
        capabilities:
          $ref: '#/components/schemas/PublicCatalogCapabilities'
        pricing:
          $ref: '#/components/schemas/PublicCatalogPricing'
        providerPricing:
          $ref: '#/components/schemas/PublicCatalogProviderPricing'
        deployments:
          type: array
          items:
            $ref: '#/components/schemas/PublicCatalogDeployment'
          description: >-
            Available deployments in routing preference order. Without a policy,
            requests use the first deployment.
      required:
        - id
        - modelId
        - provider
        - providerLabel
        - providerLogoKey
        - name
        - aliases
        - supportedProviderTools
        - temperature
        - capabilities
        - pricing
        - providerPricing
        - deployments
      description: One publicly listed model
    PublicCatalogCapabilities:
      type: object
      properties:
        webResearch:
          type: boolean
          description: Whether Studio default chat can enable live web research.
        streaming:
          type: boolean
          description: Whether streaming responses are supported.
        tools:
          type: boolean
          description: Whether tool calls are supported.
        vision:
          type: boolean
          description: Whether image inputs are supported.
        thinking:
          type: boolean
          description: Whether thinking/reasoning controls are supported.
        supported_parameters:
          type: array
          items:
            type: string
          description: >-
            Supported request parameters, using OpenRouter names. Parameters not
            listed are removed or rejected. Parameters are listed only when
            support has been verified.
          example:
            - max_tokens
            - temperature
            - top_p
            - tools
            - tool_choice
        reasoning:
          type: boolean
          description: Whether the model reasons before answering.
        tool_call:
          type: boolean
          description: Whether the model can call tools.
        temperature:
          type: boolean
          description: Whether a caller-set temperature reaches the model.
        open_weights:
          type: boolean
          description: Whether the model weights are publicly released.
        attachment:
          type: boolean
          description: >-
            Whether file input is supported. Omitted if support has not been
            verified.
        structured_output:
          type: boolean
          description: >-
            Whether schema-constrained output is supported. Omitted if support
            has not been verified.
        reasoning_mode:
          type: string
          description: >-
            Supported reasoning control. Known values are `budget` and
            `adaptive`. Omitted if the model does not reason or support has not
            been verified. Clients must accept unknown values.
          example: budget
        transport:
          type: string
          description: >-
            OpenAI wire API the client must use. Known values:
            `chat-completions`, `responses`. Absent when unconstrained. Not a
            closed enum.
          example: chat-completions
        reasoning_budget_tokens:
          type: integer
          exclusiveMinimum: 0
          description: >-
            Default thinking budget in tokens when the caller does not specify
            one. Omitted if no default is configured or the model does not
            accept a budget, including models without reasoning and models with
            adaptive thinking.
          example: 2048
        chat_completions_reasoning_with_function_tools:
          type: boolean
          description: >-
            Whether `chat-completions` supports reasoning and function tools in
            the same request. If false, choose one. Omitted if support has not
            been verified.
          example: false
        chat_completions_consecutive_system_messages:
          type: boolean
          description: >-
            Whether `chat-completions` accepts consecutive system messages. If
            true, clients can send system instructions separately. Omitted if
            support has not been verified.
          example: true
        modalities:
          type: object
          properties:
            input:
              type: array
              items:
                type: string
              description: Input modalities.
              example:
                - text
                - image
          required:
            - input
          description: >-
            Supported input modalities. Output modalities are omitted because
            they have not been verified.
        limit:
          type: object
          properties:
            context:
              type: integer
              exclusiveMinimum: 0
              description: >-
                Context window in tokens: the provider's documented limit for
                the deployment Veryfront serves. Input plus requested output
                must fit within it. Absent while unevidenced.
              example: 1000000
            output:
              type: integer
              exclusiveMinimum: 0
              description: Maximum output tokens. Absent while unevidenced.
              example: 128000
          description: >-
            Known token ceilings. Each is absent while unevidenced; `limit` is
            absent while neither is known.
      required:
        - webResearch
        - streaming
        - tools
        - vision
        - supported_parameters
        - reasoning
        - tool_call
        - temperature
        - open_weights
        - modalities
      description: Model capability flags
    PublicCatalogPricing:
      type:
        - object
        - 'null'
      properties:
        inputUsdPer1M:
          type: number
          minimum: 0
          description: >-
            Deprecated. Input-token price, USD per 1M tokens. Use
            `inputEurPer1M`.
          deprecated: true
          x-deprecation:
            register_id: CR-model-catalog-usd-pricing
            deprecated_at: '2026-09-27'
            replacement: >-
              The EUR twin on the same object (`inputEurPer1M`,
              `cacheReadInputEurPer1M`, …; `input_eur_per_1m`, … on MCP).
              Converted from USD at the `fx` rate each response states, except
              provider cost on a host that invoices in EUR, which is the
              published EUR list of that host.
            rollout_state: announced
            old_semantics: >-
              Customer price (after markup) or provider cost (before markup) in
              USD per 1M tokens, as unrounded numbers. Each is present exactly
              when the model bills that dimension separately, and keeps that
              meaning while this entry is open.
            documentation: >-
              https://github.com/veryfront/veryfront-api/blob/main/docs/reference/api-surface-inventory.md
        outputUsdPer1M:
          type: number
          minimum: 0
          description: >-
            Deprecated. Output-token price, USD per 1M tokens. Use
            `outputEurPer1M`.
          deprecated: true
          x-deprecation:
            register_id: CR-model-catalog-usd-pricing
            deprecated_at: '2026-09-27'
            replacement: >-
              The EUR twin on the same object (`inputEurPer1M`,
              `cacheReadInputEurPer1M`, …; `input_eur_per_1m`, … on MCP).
              Converted from USD at the `fx` rate each response states, except
              provider cost on a host that invoices in EUR, which is the
              published EUR list of that host.
            rollout_state: announced
            old_semantics: >-
              Customer price (after markup) or provider cost (before markup) in
              USD per 1M tokens, as unrounded numbers. Each is present exactly
              when the model bills that dimension separately, and keeps that
              meaning while this entry is open.
            documentation: >-
              https://github.com/veryfront/veryfront-api/blob/main/docs/reference/api-surface-inventory.md
        cacheCreationInputUsdPer1M:
          type: number
          minimum: 0
          description: >-
            Deprecated. Default-retention cache-write input-token price, USD per
            1M tokens. Use `cacheCreationInputEurPer1M`.
          deprecated: true
          x-deprecation:
            register_id: CR-model-catalog-usd-pricing
            deprecated_at: '2026-09-27'
            replacement: >-
              The EUR twin on the same object (`inputEurPer1M`,
              `cacheReadInputEurPer1M`, …; `input_eur_per_1m`, … on MCP).
              Converted from USD at the `fx` rate each response states, except
              provider cost on a host that invoices in EUR, which is the
              published EUR list of that host.
            rollout_state: announced
            old_semantics: >-
              Customer price (after markup) or provider cost (before markup) in
              USD per 1M tokens, as unrounded numbers. Each is present exactly
              when the model bills that dimension separately, and keeps that
              meaning while this entry is open.
            documentation: >-
              https://github.com/veryfront/veryfront-api/blob/main/docs/reference/api-surface-inventory.md
        cacheCreation1hInputUsdPer1M:
          type: number
          minimum: 0
          description: >-
            Deprecated. One-hour cache-write input-token price, USD per 1M
            tokens. Use `cacheCreation1hInputEurPer1M`.
          deprecated: true
          x-deprecation:
            register_id: CR-model-catalog-usd-pricing
            deprecated_at: '2026-09-27'
            replacement: >-
              The EUR twin on the same object (`inputEurPer1M`,
              `cacheReadInputEurPer1M`, …; `input_eur_per_1m`, … on MCP).
              Converted from USD at the `fx` rate each response states, except
              provider cost on a host that invoices in EUR, which is the
              published EUR list of that host.
            rollout_state: announced
            old_semantics: >-
              Customer price (after markup) or provider cost (before markup) in
              USD per 1M tokens, as unrounded numbers. Each is present exactly
              when the model bills that dimension separately, and keeps that
              meaning while this entry is open.
            documentation: >-
              https://github.com/veryfront/veryfront-api/blob/main/docs/reference/api-surface-inventory.md
        cacheReadInputUsdPer1M:
          type: number
          minimum: 0
          description: >-
            Deprecated. Cache-read input-token price, USD per 1M tokens. Use
            `cacheReadInputEurPer1M`.
          deprecated: true
          x-deprecation:
            register_id: CR-model-catalog-usd-pricing
            deprecated_at: '2026-09-27'
            replacement: >-
              The EUR twin on the same object (`inputEurPer1M`,
              `cacheReadInputEurPer1M`, …; `input_eur_per_1m`, … on MCP).
              Converted from USD at the `fx` rate each response states, except
              provider cost on a host that invoices in EUR, which is the
              published EUR list of that host.
            rollout_state: announced
            old_semantics: >-
              Customer price (after markup) or provider cost (before markup) in
              USD per 1M tokens, as unrounded numbers. Each is present exactly
              when the model bills that dimension separately, and keeps that
              meaning while this entry is open.
            documentation: >-
              https://github.com/veryfront/veryfront-api/blob/main/docs/reference/api-surface-inventory.md
        audioInputUsdPer1M:
          type: number
          minimum: 0
          description: >-
            Deprecated. Audio input-token price, USD per 1M tokens. Use
            `audioInputEurPer1M`.
          deprecated: true
          x-deprecation:
            register_id: CR-model-catalog-usd-pricing
            deprecated_at: '2026-09-27'
            replacement: >-
              The EUR twin on the same object (`inputEurPer1M`,
              `cacheReadInputEurPer1M`, …; `input_eur_per_1m`, … on MCP).
              Converted from USD at the `fx` rate each response states, except
              provider cost on a host that invoices in EUR, which is the
              published EUR list of that host.
            rollout_state: announced
            old_semantics: >-
              Customer price (after markup) or provider cost (before markup) in
              USD per 1M tokens, as unrounded numbers. Each is present exactly
              when the model bills that dimension separately, and keeps that
              meaning while this entry is open.
            documentation: >-
              https://github.com/veryfront/veryfront-api/blob/main/docs/reference/api-surface-inventory.md
        audioOutputUsdPer1M:
          type: number
          minimum: 0
          description: >-
            Deprecated. Audio output-token price, USD per 1M tokens. Use
            `audioOutputEurPer1M`.
          deprecated: true
          x-deprecation:
            register_id: CR-model-catalog-usd-pricing
            deprecated_at: '2026-09-27'
            replacement: >-
              The EUR twin on the same object (`inputEurPer1M`,
              `cacheReadInputEurPer1M`, …; `input_eur_per_1m`, … on MCP).
              Converted from USD at the `fx` rate each response states, except
              provider cost on a host that invoices in EUR, which is the
              published EUR list of that host.
            rollout_state: announced
            old_semantics: >-
              Customer price (after markup) or provider cost (before markup) in
              USD per 1M tokens, as unrounded numbers. Each is present exactly
              when the model bills that dimension separately, and keeps that
              meaning while this entry is open.
            documentation: >-
              https://github.com/veryfront/veryfront-api/blob/main/docs/reference/api-surface-inventory.md
        audioCacheReadInputUsdPer1M:
          type: number
          minimum: 0
          description: >-
            Deprecated. Audio cache-read token price, USD per 1M tokens. Use
            `audioCacheReadInputEurPer1M`.
          deprecated: true
          x-deprecation:
            register_id: CR-model-catalog-usd-pricing
            deprecated_at: '2026-09-27'
            replacement: >-
              The EUR twin on the same object (`inputEurPer1M`,
              `cacheReadInputEurPer1M`, …; `input_eur_per_1m`, … on MCP).
              Converted from USD at the `fx` rate each response states, except
              provider cost on a host that invoices in EUR, which is the
              published EUR list of that host.
            rollout_state: announced
            old_semantics: >-
              Customer price (after markup) or provider cost (before markup) in
              USD per 1M tokens, as unrounded numbers. Each is present exactly
              when the model bills that dimension separately, and keeps that
              meaning while this entry is open.
            documentation: >-
              https://github.com/veryfront/veryfront-api/blob/main/docs/reference/api-surface-inventory.md
        inputEurPer1M:
          type: number
          minimum: 0
          description: Input-token price. EUR per 1M tokens; see `fx`.
        outputEurPer1M:
          type: number
          minimum: 0
          description: Output-token price. EUR per 1M tokens; see `fx`.
        cacheCreationInputEurPer1M:
          type: number
          minimum: 0
          description: >-
            Default-retention cache-write input-token price, when the provider
            bills it separately. EUR per 1M tokens; see `fx`.
        cacheCreation1hInputEurPer1M:
          type: number
          minimum: 0
          description: >-
            One-hour cache-write input-token price, when the provider bills it
            apart from the default cache write. EUR per 1M tokens; see `fx`.
        cacheReadInputEurPer1M:
          type: number
          minimum: 0
          description: >-
            Cache-read input-token price, when the provider bills it separately.
            EUR per 1M tokens; see `fx`.
        audioInputEurPer1M:
          type: number
          minimum: 0
          description: >-
            Audio input-token price, when the provider bills it separately. EUR
            per 1M tokens; see `fx`.
        audioOutputEurPer1M:
          type: number
          minimum: 0
          description: >-
            Audio output-token price, when the provider bills it separately. EUR
            per 1M tokens; see `fx`.
        audioCacheReadInputEurPer1M:
          type: number
          minimum: 0
          description: >-
            Audio cache-read token price, when the provider bills it separately.
            EUR per 1M tokens; see `fx`.
      required:
        - inputUsdPer1M
        - outputUsdPer1M
        - inputEurPer1M
        - outputEurPer1M
      description: >-
        Customer price after markup. Excludes provider cost and the markup
        amount.
    PublicCatalogProviderPricing:
      type:
        - object
        - 'null'
      properties:
        inputEurPer1M:
          type: number
          minimum: 0
          description: Input-token price. EUR per 1M tokens; see `fx`.
        outputEurPer1M:
          type: number
          minimum: 0
          description: Output-token price. EUR per 1M tokens; see `fx`.
        cacheCreationInputEurPer1M:
          type: number
          minimum: 0
          description: >-
            Default-retention cache-write input-token price, when the provider
            bills it separately. EUR per 1M tokens; see `fx`.
        cacheCreation1hInputEurPer1M:
          type: number
          minimum: 0
          description: >-
            One-hour cache-write input-token price, when the provider bills it
            apart from the default cache write. EUR per 1M tokens; see `fx`.
        cacheReadInputEurPer1M:
          type: number
          minimum: 0
          description: >-
            Cache-read input-token price, when the provider bills it separately.
            EUR per 1M tokens; see `fx`.
        audioInputEurPer1M:
          type: number
          minimum: 0
          description: >-
            Audio input-token price, when the provider bills it separately. EUR
            per 1M tokens; see `fx`.
        audioOutputEurPer1M:
          type: number
          minimum: 0
          description: >-
            Audio output-token price, when the provider bills it separately. EUR
            per 1M tokens; see `fx`.
        audioCacheReadInputEurPer1M:
          type: number
          minimum: 0
          description: >-
            Audio cache-read token price, when the provider bills it separately.
            EUR per 1M tokens; see `fx`.
        tiers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Stable provider pricing tier identifier
                example: long-context
              label:
                type: string
                description: Human-readable pricing tier label
                example: Long context
              appliesTo:
                type: string
                description: Condition where this provider pricing tier applies.
                example: Prompts over 200k tokens
              inputEurPer1M:
                type: number
                minimum: 0
                description: Input-token price. EUR per 1M tokens; see `fx`.
              outputEurPer1M:
                type: number
                minimum: 0
                description: Output-token price. EUR per 1M tokens; see `fx`.
              cacheCreationInputEurPer1M:
                type: number
                minimum: 0
                description: >-
                  Default-retention cache-write input-token price, when the
                  provider bills it separately. EUR per 1M tokens; see `fx`.
              cacheCreation1hInputEurPer1M:
                type: number
                minimum: 0
                description: >-
                  One-hour cache-write input-token price, when the provider
                  bills it apart from the default cache write. EUR per 1M
                  tokens; see `fx`.
              cacheReadInputEurPer1M:
                type: number
                minimum: 0
                description: >-
                  Cache-read input-token price, when the provider bills it
                  separately. EUR per 1M tokens; see `fx`.
              audioInputEurPer1M:
                type: number
                minimum: 0
                description: >-
                  Audio input-token price, when the provider bills it
                  separately. EUR per 1M tokens; see `fx`.
              audioOutputEurPer1M:
                type: number
                minimum: 0
                description: >-
                  Audio output-token price, when the provider bills it
                  separately. EUR per 1M tokens; see `fx`.
              audioCacheReadInputEurPer1M:
                type: number
                minimum: 0
                description: >-
                  Audio cache-read token price, when the provider bills it
                  separately. EUR per 1M tokens; see `fx`.
            required:
              - id
              - label
              - appliesTo
              - inputEurPer1M
              - outputEurPer1M
          description: >-
            Provider pricing tiers that apply instead of the base prices under a
            condition
      required:
        - inputEurPer1M
        - outputEurPer1M
      description: >-
        What the provider charges Veryfront (our upstream cost), before markup,
        in EUR. For a host that invoices in EUR these are that host's published
        EUR list, unconverted and unrounded.
    PublicCatalogDeployment:
      type: object
      properties:
        tier:
          type: string
          description: >-
            Residency tier of this deployment. Known values:
            `qualified-sovereign`, `eu-owned`, `eu-resident`, `standard`.
          example: eu-resident
        jurisdiction:
          type: string
          description: >-
            Legal domicile (ISO 3166-1 alpha-2) of the company operating the
            inference, or `unknown` where unevidenced. This is the operator's
            home country, NOT where inference is processed: an EU-resident
            deployment run by a US company reads `US`. Read `processing` for the
            location.
          example: US
        region:
          type: string
          description: >-
            Where inference is PROCESSED, not where the cloud resource was
            created. `eu` is an EU boundary (the EU Data Zone or an EU
            multi-region, depending on the host), `europe-west1` /
            `europe-west4` are single EU member-state regions, `global` means
            the route is worldwide and no region may be claimed, and `unknown`
            means unevidenced.
          example: europe-west1
        processing:
          type: string
          description: >-
            Where inference is processed, normalised from `region` and `tier`.
            Known values: `eu` (inside a recorded EU boundary), `us` (in the
            United States), `worldwide` (in any region the operator runs),
            `unknown` (no processing region is recorded for this route). An open
            string: tolerate values you have not seen.
          example: eu
        processing_label:
          type: string
          description: >-
            The processing location in words, for display, e.g. `EU (EEA +
            Switzerland data zone)`, `EU (europe-west1, Belgium)`, `United
            States`, `Worldwide (any region)`, `Unknown (processing region not
            recorded)`. Display text only: branch on `processing`.
          example: EU (europe-west1, Belgium)
        operator:
          type: string
          description: >-
            Legal entity operating the inference service for this deployment,
            e.g. `Microsoft Corporation`, `Google LLC`, `OpenAI`, `Scaleway
            SAS`, or `unknown` where unrecorded.
          example: Google LLC
        quantization:
          type: string
          description: >-
            Weight precision served. Known values: `bf16`, `fp16`, `fp8`, `fp4`,
            `nvfp4`, `int4`, `unknown`.
          example: unknown
        precisionSource:
          type: string
          description: >-
            How `quantization` is evidenced. Known values: `contractual`,
            `published`, `reported`, `unknown`.
          example: unknown
        certifications:
          type: array
          items:
            type: string
          description: >-
            Certifications evidenced for this deployment. Empty when none is
            recorded.
        supportedProviderTools:
          type: array
          items:
            type: string
          description: Provider-executed agent tools this deployment supports.
          example:
            - web_search
        dataRetention:
          anyOf:
            - type: string
            - type: object
              properties:
                days:
                  type: integer
                  minimum: 0
              required:
                - days
          description: >-
            Prompt retention on this deployment. Known values: `zero`,
            `metadata-only`, `unknown`, or `{ "days": N }`.
          example: unknown
        pricing:
          $ref: '#/components/schemas/PublicCatalogPricing'
      required:
        - tier
        - jurisdiction
        - region
        - processing
        - processing_label
        - operator
        - quantization
        - precisionSource
        - certifications
        - supportedProviderTools
        - dataRetention
        - pricing
      description: A model deployment, including its location, terms, and pricing.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT or API Key
      description: >-
        Use a JWT bearer token or a Veryfront API key in the `Authorization`
        header.
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Alternative API key header for `vf_<prefix>_<secret>` tokens.

````

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