> ## Documentation Index
> Fetch the complete documentation index at: https://docs.creao.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Models

> Choose which model runs your agent, per request.

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

```bash theme={null}
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 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    | Google    | 2         | Current          | Everyone                   |
| `google/gemini-3.5-flash`       | Gemini 3.5 Flash  | Google    | 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                   |

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](/features/models).

## Programmatic discovery

`GET /v1/models` returns the supported catalog with a per-account `available` flag:

```bash theme={null}
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

| 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 flagged `legacy: true` but remain fully supported. Removing a model from the Developer API is announced in the [changelog](/community-and-updates/changelog) before removal. After removal, requests for it return `MODEL_NOT_SUPPORTED`. Runs recorded with a retired model keep their historical `model` value.
