Current catalog
Pass the model name as
model in a request. Context is the total input window, in tokens.
Rates as of 2026-11-06. The dashboard is authoritative if
this table and your account ever disagree. Live availability per model is on the
status page.
Pricing
Pricing is per token, with no minimums and no reserved capacity.
Divide the per-million figures above by 1,000,000 for the per-token rate.
Your current balance and per-request spend are on the
dashboard, or from the API below.
Feature support
Every model in the catalog is served on/v1/chat/completions, /v1/messages (Anthropic)
and /v1/responses (OpenAI Responses), reasons by default, and is listed by
GET /v1/models and GET /v1/models/{model}. ✅ means tested and supported. ⚠️ means
supported with a known limitation, listed under Known limitations
along with its workaround.
Effort levels per model are under Effort levels. This table is written by
hand and covers what an automatic check can’t: streaming, stop sequences and the partial
cases above. For what each model supports as checked against
the live model, read its capabilities (next section).
Model capabilities
After each deploy, a model’s capabilities are checked against the live model with real requests: tool calling, JSON schema output, image and audio input, reasoning, turning reasoning off, the accepted effort levels, prompt caching and the longest response. Read them inGET /v1/models, or on the model’s page in the
dashboard (Serverless, then the model).
Each one has three possible answers:
A check proves that a well-formed request works. It can’t prove every variation does, so
a partial problem can still pass it; those are listed under
Known limitations.
Every model returns text:
output_modalities is ["text"] on every model.
supported_endpoints lists the endpoints you can call. An endpoint that failed its check
is left out of it.
Reasoning
Every model in the catalog reasons before it answers, and thinking is on by default. Reasoning tokens are billed as output tokens. Use the parameter that belongs to the endpoint you call:GLM-5.3-Flash can turn thinking off on /v1/responses only. On /v1/chat/completions it
does not accept "none" (400), and on /v1/messages it ignores "disabled" (see
Known limitations).
The parameters do not carry over between endpoints. A parameter from another API is dropped
without an error: thinking or reasoning sent to /v1/chat/completions, or
reasoning_effort sent to /v1/messages, has no effect. An invalid value for the
endpoint’s own parameter returns 400.
Effort levels
Effort is two separate things, and both are inGET /v1/models:
- Accepted values (
reasoning_effort_accepted, per endpoint): the values that don’t return400. - What each value does (
reasoning_effort_effective): the values that change the answer. Every other accepted value behaves like one of these.
GET /v1/models reports them:
No model reports
reasoning_effort_effective yet, so which values change the answer is not
verified.
Sampling parameters
temperature, top_p, presence_penalty and frequency_penalty are applied as you send
them, with two exceptions. Some model makers fix these values on their own API, because the
model was trained and evaluated with them and degrades away from them. For those models we
run the maker’s values, and where the maker’s API would reject any other value with an
error, we apply the fixed value instead. You get an answer from the model as its maker
serves it, not a 400.
MiMo-V2.6. Xiaomi’s documentation: “In thinking mode, the mimo-v2.6-flash,
mimo-v2.6-pro, mimo-v2.6-pro-ultraspeed models do not support customizing the temperature
and top_p parameters. Even if these parameters are passed in, the actual effective values
will be forcibly set by the model to its recommended default values of 1.0 and 0.95.” We do
the same, on every endpoint. At low temperatures this model tends to repeat itself in its
reasoning until it runs out of tokens without answering; Xiaomi’s values avoid that. To
choose your own sampling, turn thinking off (see Reasoning).
Kimi K3.1 Pro. Moonshot fixes
temperature at 1.0, top_p at 0.95 and both penalties
at 0, and its API returns an error for any other value. Our endpoint follows Moonshot’s
Kimi Vendor Verifier, the checks
Moonshot runs on third-party Kimi deployments: it also accepts temperature 0 and 0.6, and
rejects other values the same way Moonshot does. Through OpenRouter, where a rejected
request can’t be corrected by the caller, any value is replaced with Moonshot’s: 1.0, 0.95
and 0, in every mode.
Every replaced value is logged, so we can tell you which of your requests were affected.
Known limitations
This table is updated as fixes ship.In development
OpenAI-standard features we know about and don’t support yet are listed here. There are none right now.Model metadata
GET /v1/models lists the models your key can call, with the context window, pricing and
supported endpoints most agent harnesses read automatically, and each model’s
capabilities. A capability field that is missing means “not
verified”, and clients keep their defaults. GET /v1/models/{model} returns one entry;
model ids contain a slash, which is fine.
GET /v1/model/info returns the same models
in the {"data": [{"model_name", "model_info"}]} shape some tools expect, with model_info
limited to max_input_tokens, max_tokens, the three per-token costs, mode,
supported_endpoints and the same capability fields.
Balance
GET /v1/credits returns your account’s credit cap, spend to date and remaining balance,
in USD. Figures are current to within about a minute.
balance_usd reaches zero, requests return 429 until you top up on the dashboard.