model, with no per-vendor URLs or keys. This page lists every model ID, what it supports and how it is billed, grouped by vendor.
Entry points
Chat Completions
POST /v1/chat/completions. The default entry; every model on this page is called here, except the Responses-only models.Responses
POST /v1/responses. Every text model except deepseek-v3.1-terminus can be called here, which is what clients such as Codex use; GPT Pro / Codex / o3-pro models accept only this entry.Claude Messages
POST /v1/messages. Native envelope kept for apps already built on the Anthropic SDK; every text model except the GPT-5.6 / GPT-6 / GPT-6.1 series and the Responses-only models can be called here.Gemini native
POST /v1beta/models/{model}:generateContent. Native envelope kept for existing Gemini clients.Authorization: Bearer, Messages via x-api-key or Authorization: Bearer, Gemini native via x-goog-api-key, Authorization: Bearer or the key query parameter); an ecosystem login token is not a model key — see Authentication.
Billing rules
Per-model rates are inprice_config on GET /v1/models and in the console’s Model Market. What a specific call cost is the usage.cost field on the response.
These rules apply to every text model. Model-specific differences are in the vendor tables and the model notes below them.
- Where rates come from: 10% off the official list price or equal to it, never above; Batch, Flex and Priority prices are not used. For the actual numbers, read
price_configfromGET /v1/models. - Total input includes cache:
prompt_tokensis total input; reported cache-hit / cache-write tokens are billed at their cache rates, the rest at the ordinary input rate. Cache tokens are part of the total, never an amount added on top. - Reasoning is inside output:
completion_tokensalready includescompletion_tokens_details.reasoning_tokens; reasoning is billed once at the output rate. - Two-rate models: models billed as input + output have no cache rate; any cache statistics in the response are charged at the ordinary input rate, and explicit
cache_controlis ignored, with all input billed at the input rate. - Long-context tiers: a tiered model picks its tier from total input (cache included); once the threshold is reached the whole request — input, cache and output — moves to the higher rate, not just the excess. Thresholds and how the exact boundary value is treated are stated per vendor.
- Time-of-day pricing: DeepSeek V4 is priced by the UTC slot at request start; see the DeepSeek section.
- Web search: billed per search actually run, at
price_config.web_search_per_1k(USD per 1,000 searches), added to the token cost before the quota conversion. On/v1/responsesonly search actions (action.type: "search") count; opening a page and finding in page do not. On/v1/messagesthe count isusage.server_tool_use.web_search_requests. Entries and models are in the table below. - Quota conversion: the line items are summed and converted to an integer quota at 500,000 quota = 1 USD; a request with positive usage that rounds below 1 quota is charged 1, then the account group multiplier is applied and the result truncated.
usage.costin the response is that integer quota, not dollars.
On
/v1/responses, a web search tool sent to a model not in the table is ignored: no search runs and no search fee is charged (gpt-5-pro, gpt-5.2-pro, gpt-5.4-pro, gpt-5.3-codex and o3-pro do not support tool calling and return 400). A tool_choice that forces web search returns 400. On /v1/messages, a web search tool sent to a model not in the table returns 400. The Chat endpoint offers no web search.
All rates are in USD per 1 million tokens:
Caching
Caching is graded per model by which cache rates that model has configured. Cache reads and writes replace the matching ordinary input charge at their own rate; they are not added on top.Automatic vs explicit caching
Automatic caching is decided upstream and needs no parameters from you: hit tokens appear inusage.prompt_tokens_details.cached_tokens and bill at that model’s cache-read rate. Hits are never guaranteed, so cost estimates should not assume one.
Explicit caching marks a reusable prefix with cache_control. It is allowed per model:
Unsupported requests return
400 and are not billed.
On first integration, send a small request and check that the cache line items in your console usage record look as expected before scaling up.
Writing a Claude explicit cache request
On the OpenAI-compatible endpoint,content must be an array of content blocks. A string
content cannot carry cache_control; the marker is ignored and the whole prefix bills as ordinary input.
system array. ttl defaults to 5 minutes; for the 1-hour tier send
"cache_control": {"type": "ephemeral", "ttl": "1h"} together with the
anthropic-beta: extended-cache-ttl-2025-04-11 header — the gateway forwards that header upstream as-is.
Hit conditions and reading usage
- Prefix length — usually at least ~1,024 tokens; shorter prefixes create no cache.
- Byte-identical prefix — any difference in text, spaces, newlines or content-block order misses.
- Reuse within the TTL — 5 minutes or 1 hour, counted from the most recent hit.
usage.prompt_tokens_details.cached_tokens. Native Messages reports
cache_read_input_tokens and cache_creation_input_tokens instead, and its input_tokens excludes
both — total input is the sum of the three (whereas Chat’s prompt_tokens already includes them).
Written tokens bill at the cache-write rate, which is higher than ordinary input, so explicit caching suits prefixes that are stable and reused within the TTL.
Not supported
The following return400 and are not billed:
- Vendor built-in tools — any entry in
toolswhose type is notfunctionorcustom(hosted execution, file search, and similar). Client-executed function tools are not in this group and work normally; for web search see Billing rules. web_search_options.service_tierset to anything other thanstandard/default.cachedContent(Gemini native) — see the allow-list above.
tools, tool_choice or response_format to a model that does not support them, also returns 400. Which models each entry serves is under Entry points; what each model supports is in the catalog below.
Model catalog
How to read the tables: every model supports non-streaming and streaming text output, so those are not given a column. In the JSON / Tools column the left mark is JSON Schema structured output and the right one is function calling — the platform returns the function name and arguments; your application runs the tool.
✓ means supported, — means not supported. The Billing column names which dimensions a model is billed on; for rates see Catalog API. A model with a long-context tier picks its tier from total input (cache included) and switches the whole request once the threshold is reached; the thresholds are in the model notes under each table. Model notes also carry each model’s input and output limits and any model-specific restrictions; a limit is the maximum the endpoint accepts, and input and output cannot both be maxed out at once.OpenAI
Model notes
gpt-6.1-sol— 272K long-context tier; has a separate cache-write rate; max input 922K, max output 128K; function calling works only through/v1/responses, and sendingtoolson Chat returns 400;reasoning_effortaccepts"low","medium","high"and"xhigh", not"none"or"minimal"gpt-6-sol— 272K long-context tier; has a separate cache-write rate; max input 922K, max output 128K; function calling requiresreasoning_effort: "none"; whenreasoning_effortis notnone,temperature,top_pandlogprobsare not supportedgpt-6-luna— 272K long-context tier; has a separate cache-write rate; max input 922K, max output 128K; function calling requiresreasoning_effort: "none"; whenreasoning_effortis notnone,temperature,top_pandlogprobsare not supportedgpt-6-astra— 272K long-context tier; has a separate cache-write rate; max input 922K, max output 12.8K; function calling works only through/v1/responses; usereasoning_effort: "low";"none"is unsupported, andtemperature,top_pandlogprobsare not supportedgpt-5.6-luna— 272K long-context tier; has a separate cache-write rate; max input 922K, max output 128K; supports automatic cache hitsgpt-5.6-terra— 272K long-context tier; has a separate cache-write rate; max input 922K, max output 12.8Kgpt-5.6-sol— 272K long-context tier; has a separate cache-write rate; max input 922K, max output 12.8Kgpt-5.5— 272K long-context tier; max input 1M, max output 12.8K; no separate cache-write rategpt-5.4— 272K long-context tier; max input 1M, max output 12.8K; no separate cache-write rategpt-5.4-pro— 272K long-context tier;/v1/responsesonlygpt-5.4-mini— supports automatic cache hitsgpt-5.4-nano— supports automatic cache hitsgpt-5.3-codex—/v1/responsesonlygpt-5.2— supports automatic cache hitsgpt-5.2-pro—/v1/responsesonlygpt-5.1— supports automatic cache hitsgpt-5— supports automatic cache hitsgpt-5-mini— supports automatic cache hitsgpt-5-nano— supports automatic cache hitsgpt-5-pro—/v1/responsesonlygpt-4.1— supports automatic cache hitsgpt-4.1-mini— supports automatic cache hitsgpt-4.1-nano— supports automatic cache hitso3-pro—/v1/responsesonlyo4-mini— supports automatic cache hitso3-mini— supports automatic cache hitso1— supports automatic cache hits
max_completion_tokens to cap output and reasoning_effort to pick a reasoning tier (GPT-6 Astra supports "low" only). max_tokens is rejected. gpt-5-pro, gpt-5.2-pro, gpt-5.4-pro, gpt-5.3-codex and o3-pro are served only on the Responses API and return 400 on Chat. The 272K tier is judged on total input: exactly 272,000 stays on the base rate, anything above moves the whole request (cache and output included) to the long-context rate. GPT-5.6 cache writes cost 1.25× the tier’s input rate and replace the ordinary input charge rather than adding to it; GPT-5.4 / 5.5 have no separate cache-write rate.
Anthropic
Model notes
claude-fable-5-1— cache writes are priced at two TTLs, 5-minute and 1-hour; max input 1M, max output 128K; JSON Schema structured output is not supported;tool_choiceaccepts only"auto";"required"and named functions return 400claude-fable-5— cache writes are priced at two TTLs, 5-minute and 1-hour; max input 1M, max output 128K; JSON Schema structured output is not supported;tool_choiceaccepts only"auto"claude-opus-5-5— cache writes are priced at two TTLs, 5-minute and 1-hour; JSON Schema andjson_objectare not supported; usetool_choice: "auto";anyandtoolare not supported; thinking is always on and cannot be disabledclaude-sonnet-5-5— cache writes are priced at two TTLs, 5-minute and 1-hour; max input 1M, max output 128K; JSON Schema andjson_objectare not supported; usetool_choice: "auto";anyandtoolare not supported;temperature,top_pandtop_kaccept only their defaults, and other values return 400; adaptive thinking is on by defaultclaude-haiku-5-5— 100K long-context tier; cache writes are priced at two TTLs, 5-minute and 1-hour; max input 1M, max output 128K; JSON Schema andjson_objectare not supported; web search is not supported;temperature,top_pandtop_kaccept only their defaults, and other values return 400; adaptive thinking is on by defaultclaude-opus-5— cache writes are priced at two TTLs, 5-minute and 1-hour; max input 128K, max output 16K; JSON Schema andjson_objectare not supportedclaude-sonnet-5— cache writes are priced at two TTLs, 5-minute and 1-hour; max input 1M, max output 128K; JSON Schema andjson_objectare not supportedclaude-opus-4-8— cache writes are priced at two TTLs, 5-minute and 1-hourclaude-opus-4-7— cache writes are priced at two TTLs, 5-minute and 1-hourclaude-opus-4-6— cache writes are priced at two TTLs, 5-minute and 1-hourclaude-sonnet-4-6— cache writes are priced at two TTLs, 5-minute and 1-hourclaude-sonnet-4-5— cache writes are priced at two TTLs, 5-minute and 1-hourclaude-haiku-4-5— cache writes are priced at two TTLs, 5-minute and 1-hour
max_tokens on the Chat endpoint to cap output; the GPT-only reasoning_effort and max_completion_tokens do not apply to Claude models. Every Claude model except claude-opus-4-5 carries three cache rates (read / 5-minute write / 1-hour write) and allows explicit cache_control — see Caching for the request shape. The seven Claude 5 / Claude 5.5 / Fable models do not support structured output: response_format with json_schema or json_object returns 400. claude-haiku-5-5 has a 100K long-context tier: once total input (cache reads and writes included) exceeds 100,000, input, cache and output for the whole request are billed at the higher rates. On the Fable models, claude-opus-5-5 and claude-sonnet-5-5, tool_choice accepts only "auto"; "required" or a named function returns 400. claude-opus-4-5 bills input and output only; it ignores cache_control and bills all input at the input rate. Apps built on the Anthropic SDK can use the native Messages endpoint with every Claude model.
Google Gemini
Model notes
gemini-4-argon— max input 1M, max output 65K; the Gemini native endpoint is available; JSON Schema structured output is not supported; requests withtoolsmust stream (stream: true); non-streaming requests return an errorgemini-3.8-flash— max input 1M, max output 65K; the Gemini native endpoint is availablegemini-3.7-flash— max input 1M, max output 65K; the Gemini native endpoint is availablegemini-3.6-flash— max input 1M, max output 65K; the Gemini native endpoint is availablegemini-3.5-flash— the Gemini native endpoint is availablegemini-3.1-pro-preview— 200K long-context tier; the Gemini native endpoint is availablegemini-3-flash-preview— the Gemini native endpoint is availablegemini-2.5-pro— 200K long-context tier; the Gemini native endpoint is availablegemini-2.5-flash-lite— the Gemini native endpoint is available
gemini-2.5-flash-lite, gemini-2.5-pro, gemini-3-flash-preview, gemini-3.1-pro-preview, gemini-3.5-flash, gemini-3.6-flash, gemini-3.7-flash, gemini-3.8-flash, gemini-4-argon (gemini-3.5-flash-lite is not available on the native endpoint). The native entry is POST /v1beta/models/{model}:generateContent (streaming: :streamGenerateContent?alt=sse), see Gemini native API. Native responses report usage in usageMetadata without usage.cost; candidatesTokenCount and thoughtsTokenCount are reported separately and billed output is their sum. The Pro models (gemini-2.5-pro / gemini-3.1-pro-preview) have a 200K long-context tier that switches the whole request above 200,000 total input. 3.6 / 3.7 / 3.8 Flash and gemini-4-argon have an implicit cache-read rate whose hits are decided upstream; the other models bill two rates. The whole Gemini line supports automatic caching only: cache_control has no effect, and cachedContent on the native endpoint returns 400, as do built-in tools, web_search_options and any service_tier other than standard / default.
DeepSeek
Model notes
deepseek-v4.1-flash— max input 1M, max output 384K; supports automatic cache hits; time-of-day pricing, see the table at the end of this sectiondeepseek-v4-pro— max input 1M, max output 393K; supports automatic cache hits; time-of-day pricing, see the table at the end of this sectiondeepseek-v4-flash— max input 128K, max output 16K; supports automatic cache hits; time-of-day pricing, see the table at the end of this sectiondeepseek-v3.2-exp— no strict JSON Schema; separate model fromdeepseek-v3.2(2025-09-29 experimental build)deepseek-v3.1-terminus— no strict JSON Schema; no longer listed on DeepSeek’s main API
thinking: {"type": "disabled"} to turn thinking off. V4 cache-hit rates replace the matching input charge; there is no separate cache write. V3.x / R1 bill two rates; deepseek-v3.2-exp and deepseek-v3.1-terminus offer no strict JSON Schema — use deepseek-v3.2 or deepseek-r1-0528 when you need schema guarantees.
Beijing time is UTC+8. The per-slot input / output / cache-read rates for each model are in
price_config.text_schedule on GET /v1/models — that is the complete table and the basis for settlement.
Qwen (Alibaba Cloud)
Model notes
qwen3.8-max— has a separate cache-write rate; max input 983K, max output 131K; supports automatic cache hits; usetool_choice: "auto"qwen3.8-max-0902— has a separate cache-write rate; max input 983K, max output 131K; supports automatic cache hits; usetool_choice: "auto"qwen3.8-2.4t-a95b— has a separate cache-write rate; supports automatic cache hits; usetool_choice: "auto"qwen3.8-27b— has a separate cache-write rate; supports automatic cache hits; usetool_choice: "auto"qwen3.8-flash— has a separate cache-write rate; supports automatic cache hits; usetool_choice: "auto"qwen3.7-plus— 256K long-context tierqwen3.7-flash— 32K long-context tier; has a separate cache-write rate; supports automatic cache hitsqwen3.6-plus— 256K long-context tierqwen3.6-flash— 256K long-context tier
cache_control, writes are billed at the cache-write rate and hits at the cache-read rate. Plus / Flash have a 256K tier (32K for qwen3.7-flash) switched on total input for the whole request. Reasoning tokens come out of the output budget and cannot be turned off.
Kimi (Moonshot)
Model notes
kimi-k3— max input 1M, max output 105K; supports automatic cache hits; usetool_choice: "auto"; give function calls an output budget of 512 or more
tool_choice: "auto", and give function calls enough output budget — 512 or more. K2.x bill input and output only.
Grok (xAI)
Model notes
grok-4.7— 200K long-context tier; supports automatic cache hitsgrok-4.6— 200K long-context tier; max input 500K, max output 12.8K; supports automatic cache hits; function calling works only through/v1/responses;max_tokensis not a hard cap; reasoning can push completion_tokens past itgrok-4.5— 200K long-context tier; tool calling is not supportedgrok-4.3— 200K long-context tiergrok-4.20-0309-reasoning— 200K long-context tiergrok-4.20-0309-non-reasoning— 200K long-context tiergrok-build-0.1— 200K long-context tier
tools returns 400. max_tokens is not a hard cap on reasoning models: completion_tokens includes reasoning tokens and can exceed it, so budget with key quotas.
GLM (Z.ai)
Model notes
glm-5.3— supports automatic cache hits
cache_control and bill all input at the input rate.
MiniMax
Input and output are the only two rates;
cache_control is ignored and all input is billed at the input rate.
Others
Model notes
mimo-v2.5-pro— Xiaomi MiMostep-3.7-flash— StepFun Step
cache_control is ignored and all input is billed at the input rate.
Catalog API
Live availability, price configuration and capability flags come from the catalog API:GET /v1/models/{model}. The price_config it returns is where this page’s tables come from: input / output are the base rates, cache_read / cache_write / cache_write_1h show how far caching is opened up for that model, input_tier_threshold with the *_above_price fields is the long-context tier, and cache_billing: "input_output" means input and output are the only two rates.
The catalog returns every text model currently live. A model that does not appear in the response cannot be called.