Models
Every AI model you can call through EZAT Router, how model ids and aliases work, model statuses, what each feature means, and how to list models from the API.
When to use this page
You need a model id for a request, want to know what a model supports, or want to list models from code. Prices are on Pricing.
Models
| Model id | Aliases | Context | Max output | Features |
|---|---|---|---|---|
Claude Fable 5.1 anthropic/claude-fable-5-1 | claude-fable-5-1, claude-fable-5.1 | 1M | 128K | Tools · Images · Thinking · Prompt caching · 1 h cache |
Claude Fable 5 anthropic/claude-fable-5 | claude-fable-5 | 1M | 128K | Tools · Images · Thinking · 1 h cache |
Claude Opus 5.5 anthropic/claude-opus-5-5 | claude-opus-5-5, claude-opus-5.5 | 1M | 128K | Tools · Images · Thinking · Prompt caching · 1 h cache |
Claude Opus 5 anthropic/claude-opus-5 | claude-opus-5 | 1M | 128K | Tools · Images · Thinking · Prompt caching · 1 h cache |
Claude Sonnet 5.5 anthropic/claude-sonnet-5-5 | claude-sonnet-5-5, claude-sonnet-5.5 | 1M | 128K | Tools · Images · Thinking · Prompt caching · 1 h cache |
Claude Sonnet 5 anthropic/claude-sonnet-5 | claude-sonnet-5 | 1M | 128K | Tools · Images · Thinking · Prompt caching · 1 h cache |
Claude Haiku 5.5 anthropic/claude-haiku-5-5 | claude-haiku-5-5, claude-haiku-5.5 | 1M | 128K | Tools · Images · Thinking · Prompt caching · 1 h cache |
Claude Opus 4.8 anthropic/claude-opus-4-8 | claude-opus-4-8, claude-opus-4.8 | 1M | 128K | Tools · Images · Thinking · Prompt caching · 1 h cache |
Claude Opus 4.7 anthropic/claude-opus-4-7 | claude-opus-4-7, claude-opus-4.7 | 1M | 128K | Tools · Images · Thinking · Prompt caching · 1 h cache |
Claude Opus 4.6 anthropic/claude-opus-4-6 | claude-opus-4-6, claude-opus-4.6 | 1M | 128K | Tools · Images · Thinking · Prompt caching · 1 h cache |
Claude Sonnet 4.6 anthropic/claude-sonnet-4-6 | claude-sonnet-4-6, claude-sonnet-4.6 | 1M | 128K | Tools · Images · Thinking · Prompt caching · 1 h cache |
The table is live from the catalog. Context is the most input tokens a request can have; max output is the highest max_tokens the model accepts.
Model ids
- The canonical id is
author/model, for exampleanthropic/claude-sonnet-5-5. The author is the company that made the model, not the one that serves it. - A model also answers to the names in the Aliases column: the provider's own name without the
author/prefix (claude-sonnet-5-5), and for most models the same name with a dot in the version (claude-sonnet-5.5). Claude Code and the Anthropic SDKs send these names, so they work unchanged. - Ids and aliases are case-insensitive. Spaces around them are ignored.
- Both APIs take the same ids:
POST /v1/messagesandPOST /openai/v1/chat/completions. - The
modelin a response is exactly the name you sent, never a provider's internal id. The model lists below always return canonical ids.
Statuses
| Status | Listed | Requests |
|---|---|---|
| Active | Yes | Served |
| Deprecated | Yes, with a Deprecated badge | Still served. Move to a newer model in the same family before it is retired. |
| Preview | Only to keys with preview access | Served only to keys with preview access. Other keys get the same 404 as an unknown model. |
| Retired | No | Rejected with 404 |
A retired, unknown or preview model (without preview access) is rejected before it reaches a model, and isn't charged:
{
"type": "error",
"error": { "type": "not_found_error", "message": "model: <the name you sent>" },
"request_id": "…"
}On the OpenAI-compatible API it is a 404 with "code": "model_not_found" and "param": "model". See Errors.
Preview access is set per API key by EZAT Router; the dashboard has no switch for it. To ask for it, email support@ezat.io.
Keys limited to some models
A key created with Only selected models can call only those models. Any other model is refused with 403 permission_error ("This API key is not allowed to use …"), and the key's model lists show only its models. See API keys.
Models without capacity
When no provider can serve a model right now, the public catalog shows it with "available": false and the dashboard's Models page shows Unavailable. Requests for it get 529 overloaded_error (503 on the OpenAI-compatible API) with a retry-after header. See Rate limits.
Features
| Feature | What it means |
|---|---|
| Tools | Tool use: tools on /v1/messages, function tools on the OpenAI-compatible API |
| Images | Image input (image blocks, or image_url parts) and PDF input (document blocks, or file parts with file_data) |
| Thinking | Extended thinking: thinking on /v1/messages, reasoning_effort on the OpenAI-compatible API |
| Prompt caching | cache_control breakpoints are honoured, and cached tokens bill at the cache read price. The OpenAI-compatible API caches automatically for these models. A model without it has its breakpoints removed and bills every token as plain input. See Prompt caching. |
| 1 h cache | Breakpoints with "ttl": "1h" work, billed at the 1-hour cache write price |
The public catalog also has a sampling capability. Models with it accept temperature, top_p and top_k. Models without it run only at their default sampling: on /v1/messages the model refuses other values with a 400, and the OpenAI-compatible API drops these fields. The OpenAI-compatible API also drops them whenever thinking is on.
Choosing a model
Start with the newest model in the family that fits the task. Older models stay in the catalog so existing code keeps working.
| Family | Use it for |
|---|---|
| Fable | The hardest, longest-running tasks |
| Opus | Complex reasoning and agentic coding |
| Sonnet | Everyday coding, agents and production workloads, balancing speed and quality |
| Haiku | High-volume and latency-sensitive tasks |
Compare costs on Pricing before you pick. Every model in the table above works with both APIs.
List models from the API
There are two kinds of list:
| Endpoint | Key | Returns |
|---|---|---|
GET https://api.router.ezat.io/v1/models | Yes | The models this key can call, in Anthropic's format |
GET https://api.router.ezat.io/openai/v1/models | Yes | The same models, in OpenAI's format |
GET https://api.router.ezat.io/api/models | No | Every active and deprecated model, with prices |
The two keyed lists include active and deprecated models, preview models only when the key has preview access, and only the key's own models when it is limited to some. They don't include prices.
curl -sS --fail-with-body https://api.router.ezat.io/v1/models \
-H "x-api-key: $EZAT_API_KEY" \
-H "anthropic-version: 2023-06-01"| Anthropic format field | OpenAI format field | Value |
|---|---|---|
id | id | Canonical author/model id |
display_name | Display name | |
created_at | created | When the model was added to the catalog (ISO 8601, or Unix seconds) |
type: "model" | object: "model" | |
owned_by | The author, for example anthropic |
The Anthropic list returns everything in one page (has_more is false).
To look up one model, use GET https://api.router.ezat.io/v1/models/{id} or GET https://api.router.ezat.io/openai/v1/models/{id}. {id} can be a canonical id or an alias, and the response has the canonical id. On /v1/models/{id}, write the / of a canonical id as %2F (anthropic%2Fclaude-sonnet-5-5); the SDKs do this for you. A model the key can't call returns 404, or 403 for a key limited to other models.
The public catalog
GET https://api.router.ezat.io/api/models needs no key. It is what this page and Pricing are built from.
curl -sS https://api.router.ezat.io/api/modelsEach entry in data has:
| Field | Value |
|---|---|
id | Canonical id |
aliases | Other names the model answers to |
displayName, description, family | Display name, one-line description, family (opus, sonnet, …) |
status | ACTIVE or DEPRECATED |
contextWindow, maxOutputTokens | Token limits |
capabilities | tools, vision, thinking, promptCaching, cacheTtl1h, and sampling where it applies |
available | false when no provider can serve the model right now |
pricing | Prices in USD per million tokens: input, output, cacheWrite5m, cacheWrite1h, cacheRead, and longContext tiers |
officialPricing | Anthropic's official list prices, in the same shape |
Prices are strings, to keep every decimal. Ignore the uuid field: it is internal.
For AI agents
- Send the canonical id (
author/model) inmodel. Aliases from the catalog also work, case-insensitively. - To see which models a user's key can call, use
GET https://api.router.ezat.io/v1/modelswith the key (x-api-keyorAuthorization: Bearer), orGET https://api.router.ezat.io/openai/v1/modelsfor OpenAI-format tools. - To see every model with prices and capabilities, use
GET https://api.router.ezat.io/api/models(no key), or readhttps://docs.router.ezat.io/models.md. - Don't hard-code a model list or prices in code or config you write for the user; read them from the endpoints above.
- A 404
not_found_error(OpenAI format:model_not_found) means the model is unknown, retired or in preview. Pick another model from the list; retrying won't help. - Prefer the newest model of a family. Don't pick a model with the Deprecated badge for new work.