Skip to main content
Every run-creating endpoint accepts an optional 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

curl -X POST https://developer.creao.ai/v1/runs \
  -H "Authorization: Bearer $CREAO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "00000000-0000-4000-8000-000000000000",
    "input": { "company": "Apple" },
    "model": "anthropic/claude-haiku-4-5"
  }'
The 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 idNameProviderCost tierStatusAccess
anthropic/claude-fable-5Claude Fable 5Anthropic6CurrentPaid plan and gated access
anthropic/claude-sonnet-5Claude Sonnet 5Anthropic3Current, defaultEveryone
anthropic/claude-opus-4-8Claude Opus 4.8Anthropic5CurrentPaid plan
anthropic/claude-opus-4-7Claude Opus 4.7Anthropic5LegacyPaid plan
anthropic/claude-opus-4-6Claude Opus 4.6Anthropic5LegacyPaid plan
anthropic/claude-sonnet-4-6Claude Sonnet 4.6Anthropic4LegacyEveryone
anthropic/claude-haiku-4-5Claude Haiku 4.5Anthropic2CurrentEveryone
google/gemini-3.1-pro-previewGemini 3.1 ProGoogle2CurrentEveryone
google/gemini-3.5-flashGemini 3.5 FlashGoogle3CurrentEveryone
openai/gpt-5.6-solGPT-5.6 SolOpenAI5CurrentGated access
openai/gpt-5.6-terraGPT-5.6 TerraOpenAI4CurrentGated access
openai/gpt-5.6-lunaGPT-5.6 LunaOpenAI2CurrentGated access
openai/gpt-5.5GPT-5.5OpenAI5CurrentEveryone
sakana/fugu-ultra-20260615Fugu UltraSakana5CurrentPaid plan
openrouter/z-ai/glm-5.2GLM 5.2Z.ai2CurrentEveryone
Model ids are exact and case-sensitive. Always send the provider-qualified form shown above. For example, 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:
curl https://developer.creao.ai/v1/models \
  -H "Authorization: Bearer $CREAO_API_KEY"
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

CodeStatusMeaningHandling
MODEL_NOT_SUPPORTED400Unknown, retired, rollout-hidden, or malformed model idFix the id and check GET /v1/models
MODEL_NOT_ALLOWED403Known model your plan or entitlements blockUpgrade the plan, request access, or pick a model with available: true

Model lifecycle

Superseded models are flagged legacy: 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.