model field. When omitted, runs use the default model, currently anthropic/claude-sonnet-5. The resolved model is echoed on every run object as model.
Choosing a model
model field is accepted on POST /v1/runs, POST /v1/realtime/runs, POST /v1/agents, and POST /v1/agents/{agent_id}/edits. On agent create and edit, it selects the model the builder uses.
Model selection applies to that run only. It is not stored as an agent or conversation preference, and follow-up runs in the same conversation may use a different model.
Supported models
| Model id | Name | Provider | Cost tier | Status | Access |
|---|---|---|---|---|---|
anthropic/claude-fable-5 | Claude Fable 5 | Anthropic | 6 | Current | Paid plan and gated access |
anthropic/claude-sonnet-5 | Claude Sonnet 5 | Anthropic | 3 | Current, default | Everyone |
anthropic/claude-opus-4-8 | Claude Opus 4.8 | Anthropic | 5 | Current | Paid plan |
anthropic/claude-opus-4-7 | Claude Opus 4.7 | Anthropic | 5 | Legacy | Paid plan |
anthropic/claude-opus-4-6 | Claude Opus 4.6 | Anthropic | 5 | Legacy | Paid plan |
anthropic/claude-sonnet-4-6 | Claude Sonnet 4.6 | Anthropic | 4 | Legacy | Everyone |
anthropic/claude-haiku-4-5 | Claude Haiku 4.5 | Anthropic | 2 | Current | Everyone |
google/gemini-3.1-pro-preview | Gemini 3.1 Pro | 2 | Current | Everyone | |
google/gemini-3.5-flash | Gemini 3.5 Flash | 3 | Current | Everyone | |
openai/gpt-5.6-sol | GPT-5.6 Sol | OpenAI | 5 | Current | Gated access |
openai/gpt-5.6-terra | GPT-5.6 Terra | OpenAI | 4 | Current | Gated access |
openai/gpt-5.6-luna | GPT-5.6 Luna | OpenAI | 2 | Current | Gated access |
openai/gpt-5.5 | GPT-5.5 | OpenAI | 5 | Current | Everyone |
sakana/fugu-ultra-20260615 | Fugu Ultra | Sakana | 5 | Current | Paid plan |
openrouter/z-ai/glm-5.2 | GLM 5.2 | Z.ai | 2 | Current | Everyone |
claude-sonnet-5 is rejected.
Cost tiers are relative token-pricing tiers, where 1 is cheapest and 6 is most expensive. Credits are charged from actual token usage, so model choice directly changes what a run costs. For capability guidance, see the model comparison.
Programmatic discovery
GET /v1/models returns the supported catalog with a per-account available flag:
available: false means the model exists but your account cannot run it yet because of paid-plan or gated-access requirements. Requesting it returns 403 MODEL_NOT_ALLOWED.
The GET /v1/models response is the live source of truth for supported ids and account-specific availability.
Errors
| Code | Status | Meaning | Handling |
|---|---|---|---|
MODEL_NOT_SUPPORTED | 400 | Unknown, retired, rollout-hidden, or malformed model id | Fix the id and check GET /v1/models |
MODEL_NOT_ALLOWED | 403 | Known model your plan or entitlements block | Upgrade the plan, request access, or pick a model with available: true |
Model lifecycle
Superseded models are flaggedlegacy: true but remain fully supported. Removing a model from the Developer API is announced in the changelog before removal. After removal, requests for it return MODEL_NOT_SUPPORTED. Runs recorded with a retired model keep their historical model value.