{
"type": "object",
"properties": {
"fx": {
"type": "object",
"properties": {
"base": {
"type": "string",
"description": "The currency one unit of which `rate` prices"
},
"quote": {
"type": "string",
"description": "The currency `rate` is expressed in"
},
"rate": {
"type": "number",
"exclusiveMinimum": 0,
"description": "1 `base` = `rate` `quote`"
},
"source": {
"type": "string",
"description": "Where the rate is published"
},
"date": {
"type": "string",
"description": "The reference date of the rate (YYYY-MM-DD)"
}
},
"required": [
"base",
"quote",
"rate",
"source",
"date"
],
"additionalProperties": false,
"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`."
},
"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."
},
"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)."
},
"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`."
}
},
"required": [
"tool",
"data_sent",
"recipient_class",
"boundary_covered",
"available"
],
"additionalProperties": false,
"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."
},
"deployments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"model": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unified model ID, e.g. `anthropic/claude-opus-4-8`."
},
"aliases": {
"type": "array",
"items": {
"type": "string"
},
"description": "Other IDs that select this model. The first is the short ID."
},
"name": {
"type": "string",
"description": "Display name."
},
"description": {
"type": "string",
"description": "Catalog description of the model."
},
"capabilities": {
"type": "object",
"properties": {
"streaming": {
"type": "boolean",
"description": "Whether streaming is supported."
},
"tools": {
"type": "boolean",
"description": "Whether tool calls are supported."
},
"vision": {
"type": "boolean",
"description": "Whether image inputs are supported."
},
"open_weights": {
"type": "boolean",
"description": "Whether model weights are publicly released."
},
"attachment": {
"type": "boolean",
"description": "Whether file input is supported. Omitted while unverified."
},
"structured_output": {
"type": "boolean",
"description": "Whether schema-constrained output is supported. Omitted while unverified."
},
"supported_parameters": {
"type": "array",
"items": {
"type": "string"
},
"description": "Verified supported request parameters. Unknown names remain valid strings."
},
"modalities": {
"type": "object",
"properties": {
"input": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of input associated with this tool result."
}
},
"required": [
"input"
],
"additionalProperties": false,
"description": "Recorded input modalities. Output modalities are omitted while unverified."
},
"limit": {
"type": "object",
"properties": {
"context": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Recorded context window in tokens; input and requested output must fit within it."
},
"output": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Recorded maximum output tokens."
}
},
"additionalProperties": false,
"description": "Known served token ceilings; omitted when neither is recorded. Missing does not mean unlimited."
},
"reasoning": {
"type": "boolean",
"description": "Whether the model takes thinking controls."
},
"web_research": {
"type": "boolean",
"description": "Whether chat can enable live web research with this model."
},
"temperature": {
"anyOf": [
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0
},
"max": {
"type": "number",
"minimum": 0
}
},
"required": [
"min",
"max"
],
"additionalProperties": false,
"description": "Structured temperature details associated with this tool result."
},
{
"type": "null",
"description": "The temperature returned by the tool."
}
],
"description": "The temperature range a caller may set; null when the model fixes it."
}
},
"required": [
"reasoning",
"web_research",
"temperature"
],
"additionalProperties": false,
"description": "Recorded model capabilities. Optional facts stay absent while unverified."
}
},
"required": [
"id",
"aliases",
"name",
"capabilities"
],
"additionalProperties": false,
"description": "What the model is."
},
"model_provider": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Stable identifier."
},
"name": {
"type": "string",
"description": "Display name."
},
"icon_url": {
"type": "string",
"format": "uri",
"description": "URL of the model provider SVG icon, served without authentication."
}
},
"required": [
"id",
"name",
"icon_url"
],
"additionalProperties": false,
"description": "Who made the model."
},
"inference_provider": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Stable identifier."
},
"name": {
"type": "string",
"description": "Display name."
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"description": "Who runs the model."
},
"region": {
"type": "string",
"description": "Where inference runs. Known values: `eu`, `us`, `worldwide`, `unknown`. Tolerate values you have not seen."
},
"pricing": {
"anyOf": [
{
"type": "object",
"properties": {
"provider_cost": {
"type": "object",
"properties": {
"input": {
"type": "number",
"minimum": 0,
"description": "Input tokens, EUR per 1M."
},
"output": {
"type": "number",
"minimum": 0,
"description": "Output tokens, EUR per 1M."
},
"cache_read": {
"type": "number",
"minimum": 0,
"description": "Cache-read input tokens, EUR per 1M. Absent when not billed separately."
},
"cache_write": {
"type": "number",
"minimum": 0,
"description": "Cache-write input tokens, EUR per 1M. Absent when not billed separately."
},
"cache_write_1h": {
"type": "number",
"minimum": 0,
"description": "One-hour cache-write input tokens, EUR per 1M. Omitted when no separate rate is recorded."
},
"audio_input": {
"type": "number",
"minimum": 0,
"description": "Audio input tokens, EUR per 1M."
},
"audio_output": {
"type": "number",
"minimum": 0,
"description": "Audio output tokens, EUR per 1M."
},
"audio_cache_read": {
"type": "number",
"minimum": 0,
"description": "Cached audio input tokens, EUR per 1M."
},
"cache_writes_by_default": {
"type": "boolean",
"description": "Whether uncached prompt tokens may incur a cache-write charge by default."
},
"tiers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"input": {
"$ref": "#/properties/deployments/items/properties/pricing/anyOf/0/properties/provider_cost/properties/input",
"description": "The input returned by the tool."
},
"output": {
"$ref": "#/properties/deployments/items/properties/pricing/anyOf/0/properties/provider_cost/properties/output",
"description": "The output returned by the tool."
},
"cache_read": {
"$ref": "#/properties/deployments/items/properties/pricing/anyOf/0/properties/provider_cost/properties/cache_read",
"description": "The cache read returned by the tool."
},
"cache_write": {
"$ref": "#/properties/deployments/items/properties/pricing/anyOf/0/properties/provider_cost/properties/cache_write",
"description": "The cache write returned by the tool."
},
"cache_write_1h": {
"$ref": "#/properties/deployments/items/properties/pricing/anyOf/0/properties/provider_cost/properties/cache_write_1h",
"description": "The cache write 1h returned by the tool."
},
"audio_input": {
"$ref": "#/properties/deployments/items/properties/pricing/anyOf/0/properties/provider_cost/properties/audio_input",
"description": "The audio input returned by the tool."
},
"audio_output": {
"$ref": "#/properties/deployments/items/properties/pricing/anyOf/0/properties/provider_cost/properties/audio_output",
"description": "The audio output returned by the tool."
},
"audio_cache_read": {
"$ref": "#/properties/deployments/items/properties/pricing/anyOf/0/properties/provider_cost/properties/audio_cache_read",
"description": "The audio cache read returned by the tool."
},
"id": {
"type": "string",
"description": "Stable pricing-tier identifier."
},
"label": {
"type": "string",
"description": "Display label; not a machine-readable condition."
},
"applies_to": {
"type": "string",
"description": "Recorded condition in words; do not infer thresholds from this text."
},
"input_tokens_above": {
"type": "integer",
"minimum": 0,
"description": "The tier applies when normalized input tokens strictly exceed this threshold. Omitted when no numeric condition is recorded."
}
},
"required": [
"input",
"output",
"id",
"label",
"applies_to"
],
"additionalProperties": false
},
"description": "Conditional provider tariffs, in declaration order. These are provider costs, not customer prices."
}
},
"required": [
"input",
"output"
],
"additionalProperties": false,
"description": "What the inference provider charges Veryfront."
},
"total_cost": {
"type": "object",
"properties": {
"input": {
"$ref": "#/properties/deployments/items/properties/pricing/anyOf/0/properties/provider_cost/properties/input",
"description": "The input returned by the tool."
},
"output": {
"$ref": "#/properties/deployments/items/properties/pricing/anyOf/0/properties/provider_cost/properties/output",
"description": "The output returned by the tool."
},
"cache_read": {
"$ref": "#/properties/deployments/items/properties/pricing/anyOf/0/properties/provider_cost/properties/cache_read",
"description": "The cache read returned by the tool."
},
"cache_write": {
"$ref": "#/properties/deployments/items/properties/pricing/anyOf/0/properties/provider_cost/properties/cache_write",
"description": "The cache write returned by the tool."
},
"cache_write_1h": {
"$ref": "#/properties/deployments/items/properties/pricing/anyOf/0/properties/provider_cost/properties/cache_write_1h",
"description": "The cache write 1h returned by the tool."
},
"audio_input": {
"$ref": "#/properties/deployments/items/properties/pricing/anyOf/0/properties/provider_cost/properties/audio_input",
"description": "The audio input returned by the tool."
},
"audio_output": {
"$ref": "#/properties/deployments/items/properties/pricing/anyOf/0/properties/provider_cost/properties/audio_output",
"description": "The audio output returned by the tool."
},
"audio_cache_read": {
"$ref": "#/properties/deployments/items/properties/pricing/anyOf/0/properties/provider_cost/properties/audio_cache_read",
"description": "The audio cache read returned by the tool."
}
},
"required": [
"input",
"output"
],
"additionalProperties": false,
"description": "What the customer pays."
}
},
"required": [
"provider_cost",
"total_cost"
],
"additionalProperties": false,
"description": "Structured pricing details associated with this tool result."
},
{
"type": "null",
"description": "The pricing returned by the tool."
}
],
"description": "What this deployment costs, in EUR per 1M tokens; null unless both the customer price and the provider cost are recorded."
},
"routing": {
"type": "object",
"properties": {
"surface": {
"type": "string",
"enum": [
"openai",
"anthropic",
"google"
],
"description": "Wire protocol to call the model on."
},
"operations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Operations of `surface` the model is served on, e.g. `messages`."
},
"transport": {
"type": "string",
"description": "OpenAI wire API the model must use; absent when unconstrained."
},
"provider_tools": {
"type": "array",
"items": {
"type": "string"
},
"description": "Provider-executed tools this deployment allows."
},
"reasoning": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "Reasoning control, e.g. `budget` or `adaptive`. Tolerate values you have not seen."
},
"budget_tokens": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Thinking budget sent when the caller sets none."
}
},
"required": [
"mode"
],
"additionalProperties": false,
"description": "How to control reasoning; absent when the model has no controllable reasoning."
},
"chat_completions": {
"type": "object",
"properties": {
"reasoning_with_function_tools": {
"type": "boolean",
"description": "Whether reasoning and function tools work in one request. Missing means true."
},
"consecutive_system_messages": {
"type": "boolean",
"description": "Whether consecutive system messages are accepted. Missing means false."
}
},
"additionalProperties": false,
"description": "Chat Completions constraints; absent when none is recorded."
}
},
"required": [
"surface",
"operations",
"provider_tools"
],
"additionalProperties": false,
"description": "How to call the model."
},
"is_default": {
"type": "boolean",
"description": "True on the first enabled deployment of the model a client preselects, and on no other. That model is Claude Sonnet 4.6 when the policy in force serves it, otherwise the managed-execution default (`defaultModelId`): the first EU-preferred model served, else the first served model. No deployment is marked when nothing is served."
},
"enabled": {
"type": "boolean",
"description": "Whether the policy in force allows this deployment."
},
"disabled_by": {
"type": "string",
"enum": [
"account",
"project",
"api_key"
],
"description": "The level whose policy refuses this deployment. Present exactly when `enabled` is false."
}
},
"required": [
"model",
"model_provider",
"inference_provider",
"region",
"pricing",
"routing",
"is_default",
"enabled"
],
"additionalProperties": false,
"description": "One place a model runs."
},
"description": "One entry per place a model runs, in routing order, including the ones the policy in force refuses. A model's first enabled deployment is the one requests route to."
}
},
"required": [
"fx",
"web_tools",
"deployments"
],
"additionalProperties": false,
"description": "Structured result returned by the list_models tool.",
"$schema": "http://json-schema.org/draft-07/schema#"
}