Models

Every run executes on a model. Set model on an agent (the default for all its runs) or on a single run. Omit it for the platform default: gpt-5.6-sol at high reasoning effort.

List models

client.models.list() returns every selectable model with USD prices per million tokens. It is the live source of truth: an id outside the list returns a 422 naming the valid choices, and new models become selectable with no SDK change (model is a plain string).

Python

Each entry:

FieldMeaning
idPass as model on an agent or run
providerAuthor slug (anthropic, openai, ...)
defaulttrue on the model used when model is omitted. Per viewer: accounts whose runs cannot route the gateway default (own Claude subscription, gateway off) see the Claude fallback flagged instead
max_effortHighest effort tier the model accepts. See Reasoning effort
pricingUSD per million tokens: input_per_mtok, output_per_mtok, plus prompt-cache read and write rates
zdr_supportedtrue if at least one provider supports zero data retention. See ZDR
zdr_providersProvider slugs with ZDR support. Empty when zdr_supported is false
retention_noteHuman-readable retention guidance
Advanced: filters, aliases, and SDK field coverage

GET /api/v2/models accepts query filters:

  • ?zdr=true filters by zdr_supported
  • ?author=openai filters by provider slug
  • ?curated=true returns the short Platform list instead of the full catalog (100+ models)

zdr in the response is a deprecated alias of zdr_supported (same value). The Python SDK's Model object exposes id, name, description, provider, default, max_effort, and pricing; read the ZDR fields from the raw API response.

Set the model

A per-run choice wins for that run only:

Python

Resolution precedence: per-run model, then the agent's model, then the platform default.

Common choices (the full catalog is larger):

ModelProviderNotes
gpt-5.6-solOpenAIGPT-5.6 Sol flagship. Platform default
gpt-5.6-terraOpenAIAbout half Sol's cost
gpt-5.6-lunaOpenAIFast, lowest-cost OpenAI tier
opusAnthropicClaude Opus 5. The Claude fallback for own-subscription runs
fableAnthropicClaude Fable 5. About 2x Opus cost
sonnetAnthropicClaude Sonnet 5. Fast, low cost
glm-5.2z.aiOpen source, 1M-token context
deepseek-v3-2DeepSeekOpen source, lowest cost
kimi-k3Moonshot AI1M-token context. Served by several hosts with different retention terms

Reasoning effort

effort controls how hard the model reasons before acting: low | medium | high | xhigh | max. Higher effort means deeper reasoning and more tokens per run; lower is faster and cheaper. Omit it for the platform default: max on Claude models, high on all others.

Same shape as model: set it on the agent, override it per run, explicit null resets.

Python

Precedence mirrors model: per-run effort, then the agent's effort, then the platform default. Resumes and replies inherit the run's effort, so a conversation keeps the depth it started with.

Ceilings, not errors. xhigh and max are Claude-only tiers. Other models clamp a higher request down to high, never reject it, so an agent set to max stays valid when a run overrides the model. Each model's ceiling is max_effort in the catalog. An invalid tier returns a 422 naming the valid choices.

Advanced: where effort takes effect

Effort changes reasoning depth on Claude models and the GPT-5.6 family (gpt-5.6-sol / terra / luna). Other models (glm-5.2, deepseek-v3-2, gpt-5.5, kimi-k3) accept the field but run at their native depth; kimi-k3 always reasons at its maximum internally.

Zero data retention (ZDR)

zdr_supported=true means at least one provider for that model supports zero data retention. It does not mean every route is ZDR, and it does not mean ZDR is enabled for your account. Retention protection applies only when routing lands on a ZDR-capable host and ZDR is enabled on the key. zdr_providers names the capable hosts.

zdr_supported=false means we have no confirmed zero-data-retention host for that model — either none exists, or the model is not in the synced provider catalog. Either way treat it as may-retain: those models stay selectable on the API, so check the flag before sending customer data, or filter with GET /api/v2/models?zdr=true.

See Data Retention for the account-level picture.

Next: Agents · Data Retention

Was this page helpful?