> ## 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 models

> List models.



## OpenAPI

````yaml /cloud/rest/openapi.json get /ai/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:
  /ai/models:
    get:
      tags:
        - ai-gateway/Models/Model discovery
      summary: List models
      description: List models.
      operationId: listModels
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 255
            description: Project UUID or slug used to attribute billing finalization.
          required: false
          name: x-veryfront-project-reference
          in: header
        - schema:
            type: string
            minLength: 1
            maxLength: 255
            description: Project ID used to attribute billing finalization.
          required: false
          name: x-veryfront-project-id
          in: header
        - schema:
            type: string
            minLength: 1
            maxLength: 255
            description: Project slug used to attribute billing finalization.
          required: false
          name: x-veryfront-project-slug
          in: header
      responses:
        '200':
          description: >-
            Available AI models and providers. A project-scoped credential, or a
            selector header naming a project the caller can see, narrows the
            list to what that project's inference policy permits.
          content:
            application/json:
              schema:
                type: object
                properties:
                  models:
                    type: array
                    items:
                      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
                        surface:
                          type: string
                          description: >-
                            Gateway protocol for the model’s provider under
                            `/ai/gateway/{provider}`. Known values are `openai`,
                            `anthropic`, and `google`; clients must accept
                            unknown values. Omitted if no gateway protocol is
                            configured, in which case the gateway accepts no
                            paths for the provider.
                          example: anthropic
                        operations:
                          type: array
                          items:
                            type: string
                          description: >-
                            Operations of `surface` this model is served on,
                            each at its canonical path (for Google, the
                            `models/<id>:<operation>` form). Known values:
                            `chat-completions`, `responses`, `embeddings` on
                            `openai`; `messages` on `anthropic`;
                            `generate-content`, `stream-generate-content`,
                            `embed-content`, `batch-embed-contents`, `predict`,
                            `openai-responses`, `openai-chat-completions`,
                            `openai-embeddings` on `google`. Not a closed enum,
                            tolerate values you have not seen. Present exactly
                            when `surface` is.
                          example:
                            - messages
                        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
                        capabilities:
                          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.
                            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.
                            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
                          required:
                            - webResearch
                            - streaming
                            - tools
                            - vision
                            - supported_parameters
                            - reasoning
                            - tool_call
                            - temperature
                            - open_weights
                            - modalities
                          description: >-
                            Model capability flags. The camelCase keys are the
                            original Veryfront flags; the snake_case keys are
                            the de facto names clients already parse
                            (OpenRouter, models.dev) and are derived from the
                            capability records.
                        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.
                        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
                        pricing:
                          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: >-
                            Public Veryfront customer pricing after markup, used
                            for client-side customer cost estimates. Null for
                            externally managed local inference with no evidenced
                            tariff.
                        providerPricing:
                          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`.
                            tiers:
                              type: array
                              items:
                                type: object
                                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`.
                                  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
                                required:
                                  - inputUsdPer1M
                                  - outputUsdPer1M
                                  - inputEurPer1M
                                  - outputEurPer1M
                                  - id
                                  - label
                                  - appliesTo
                                description: >-
                                  Raw provider pricing tier that is not the
                                  default catalog billing rate.
                              description: >-
                                Additional raw provider pricing tiers not
                                currently represented by the default public
                                price.
                          required:
                            - inputUsdPer1M
                            - outputUsdPer1M
                            - inputEurPer1M
                            - outputEurPer1M
                          description: >-
                            What the provider charges Veryfront (our upstream
                            cost), before markup. For a host that invoices in
                            EUR the EUR prices are that host's published EUR
                            list, unconverted and unrounded.
                        pricingSources:
                          type:
                            - object
                            - 'null'
                          properties:
                            directProvider:
                              type: string
                              format: uri
                              description: Official provider pricing source URL.
                            azure:
                              type: string
                              format: uri
                              description: Official Azure-hosted model pricing source URL.
                          required:
                            - directProvider
                          description: Official pricing source links for this model.
                        deployments:
                          type: array
                          items:
                            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.
                              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
                              supportedProviderTools:
                                type: array
                                items:
                                  type: string
                                description: >-
                                  Provider-executed agent tools this deployment
                                  supports.
                                example:
                                  - web_search
                              pricing:
                                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 for this deployment after
                                  markup, or null when no price is recorded.
                                  Excludes provider cost and the markup amount.
                            required:
                              - tier
                              - jurisdiction
                              - region
                              - processing
                              - processing_label
                              - operator
                              - quantization
                              - precisionSource
                              - certifications
                              - dataRetention
                              - supportedProviderTools
                              - pricing
                            description: >-
                              A model deployment, including its location, terms,
                              and pricing.
                          description: >-
                            Available deployments in routing preference order.
                            Without a policy, requests use the first deployment.
                            Only eligible hosts are listed. If a production
                            deployment is eligible, only production deployments
                            appear. Otherwise, an eligible rollout fallback
                            appears with its own tier, region, and retention
                            settings.
                      required:
                        - id
                        - modelId
                        - provider
                        - providerLabel
                        - providerLogoKey
                        - name
                        - aliases
                        - capabilities
                        - temperature
                        - supportedProviderTools
                        - pricing
                        - providerPricing
                        - pricingSources
                        - deployments
                    description: Available AI models.
                  providers:
                    type: array
                    items:
                      type: string
                    description: Available provider names.
                  defaultModelId:
                    type: string
                    description: Default unified model ID for managed execution.
                    example: mistral/mistral-small-2503
                  studioDefaultModelId:
                    type: string
                    description: >-
                      Default unified model ID for Studio model selection,
                      subject to the served catalog.
                    example: anthropic/claude-sonnet-4-6
                  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.
                  web_tools:
                    type: array
                    items:
                      type: object
                      properties:
                        tool:
                          type: string
                          description: >-
                            The platform agent tool: `web_search` or
                            `web_fetch`.
                          example: web_search
                        data_sent:
                          type: string
                          description: >-
                            What the tool sends out. Known values:
                            `query_and_search_options` (the search query, plus
                            any domain filters and approximate user location the
                            call states), `url_and_fetched_content` (the URL is
                            requested and the page is returned into the run). An
                            open string: tolerate values you have not seen.
                          example: query_and_search_options
                        recipient_class:
                          type: string
                          description: >-
                            Who receives it. Known values:
                            `third_party_search_provider` (the search backend of
                            the selected deployment), `fetch_target` (the site
                            the URL names).
                          example: third_party_search_provider
                        boundary_covered:
                          type: boolean
                          description: >-
                            Whether this flow is covered by the accepted
                            processing boundary. False unless a deployment
                            carries evidence for it; never inferred from where
                            inference runs.
                        available:
                          type: boolean
                          description: >-
                            Whether agent runs are offered the tool in this
                            environment, under this project's policy.
                        unavailable_reason:
                          type: string
                          description: >-
                            Why the tool is not offered. Known values:
                            `no_search_deployment`, `boundary_not_covered`,
                            `policy_denied`.
                          example: boundary_not_covered
                      required:
                        - tool
                        - data_sent
                        - recipient_class
                        - boundary_covered
                        - available
                      description: >-
                        What a platform web tool sends, to whom, and whether it
                        is offered.
                    description: >-
                      The platform web tools' data flows. Facts about the tool,
                      not about the model: inference residency says nothing
                      about where a search query or fetched URL goes.
                required:
                  - models
                  - providers
                  - defaultModelId
                  - studioDefaultModelId
                  - fx
                  - web_tools
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '503':
          description: This project's inference policy could not be read
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AiGatewayError'
components:
  schemas:
    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
    AiGatewayError:
      type: object
      properties:
        error:
          type: string
          description: Error message.
        code:
          type: string
          description: Stable machine-readable error code.
        model:
          type: string
          maxLength: 256
          description: Requested model ID, on model-specific refusals.
        successor:
          type: string
          description: The model that replaces a retired one, on `model_retired` refusals.
        retired_on:
          type: string
          description: >-
            UTC date (YYYY-MM-DD) the model was retired, on `model_retired`
            refusals.
        allowed_models:
          type: array
          items:
            type: string
          description: >-
            The models the calling API key may use, on `key-model-denied`
            refusals.
      required:
        - error
  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.