# Models

Every Claudech model is reached through the same endpoint; switching models is a one-word change. This page lists the current catalogue. Prices and limits below are read live from the published catalogue and match what `GET /v1/models` returns.

## Catalogue

| Model | Context | Max output | Input / 1M | Output / 1M | Cached input / 1M | Plans |
| --- | --- | --- | --- | --- | --- | --- |
| `claude-opus-5-5` | 1M | 66K | $0.50 | $1.90 | $0.010 | All plans |
| `claude-fable-5-1` | 1M | 131K | $0.50 | $1.90 | $0.010 | All plans |
| `claude-opus-5` | 1M | 131K | $0.50 | $1.90 | $0.010 | All plans |
| `claude-sonnet-5-5` | 1M | 33K | $0.50 | $1.90 | $0.010 | All plans |

Prices are per one million tokens in USD and are converted to Claudech tokens at the account rate; see [Tokens & billing](https://claudech.com/docs/billing). *Cached input* is the discounted rate for prompt tokens served from the prompt cache.

## Choosing a model

- **`claude-opus-5-5`**: the default. Strong reasoning with quick responses. Start here for chat, coding assistants, analysis and agents.
- **`claude-fable-5-1`**: our most capable model for complex, multi-step work where quality matters most: long documents, architecture decisions, difficult synthesis.
- **`claude-opus-5`**: extended thinking for hard problems in mathematics, research and intricate debugging. Slower and produces more reasoning tokens; best when correctness beats latency.
- **`claude-opus-5-5`**: lowest latency for high-volume tasks: classification, extraction, summarisation, routing and simple chat. Thinking is off, so answers start immediately.

Every model is available on every plan and is billed at the per-token rates in the catalogue above.

## Capabilities

| Model | Streaming | Reasoning | Tool calling | JSON mode | Vision |
| --- | --- | --- | --- | --- | --- |
| `claude-opus-5-5` | Yes | Yes | Yes | Yes | Yes |
| `claude-fable-5-1` | Yes | Yes | Yes | Yes | Yes |
| `claude-opus-5` | Yes | Yes | Yes | Yes | Yes |
| `claude-sonnet-5-5` | Yes | — | Yes | Yes | Yes |

- **Reasoning** models think before answering. Their thinking is returned in `reasoning_content` when present and counted in `completion_tokens_details.reasoning_tokens`. Control effort with `reasoning_effort`; see [Tool calling & JSON](https://claudech.com/docs/tools#reasoning-controls).
- **Tool calling** lets the model request calls to functions you define.
- **JSON mode** (`response_format: {"type": "json_object"}`) guarantees syntactically valid JSON output.
- **Vision** models accept `image_url` content parts (data URLs or public URLs).

## Context windows and output limits

The **context window** is the total of prompt and completion tokens a model can handle in one request. Every Claudech model accepts 1 million tokens of context on every plan. Requests above that limit fail before billing with `context_length_exceeded`.

**Max output** is the ceiling for `max_tokens`. If you omit `max_tokens`, Claudech applies a sensible per-model default (8K for `claude-opus-5-5`, 16K for `claude-fable-5-1` and `claude-opus-5`, 4K for `claude-opus-5-5`) and never exceeds what fits in the remaining context.

## Fallbacks

For resilience, some models define a fallback of equal or greater capability. If the primary route is unavailable, rate-limited upstream, or times out before producing output, Claudech transparently retries on the fallback. When this happens:

- `model` in the response still shows the model you asked for;
- streaming responses include `"fallback_used": true` in the final `claud` billing event;
- you are billed at the price of the model you requested, never more.

## Deprecations

When a model is scheduled for retirement it is marked `deprecated: true` in `GET /v1/models` and on this page, and continues to work until the announced date. We announce deprecations by email to all account owners at least 30 days in advance.

## Listing models programmatically

**curl**

```bash
curl https://api.claudech.com/v1/models \
  -H "Authorization: Bearer $CLAUDECH_API_KEY"
```

**JavaScript**

```javascript
const models = await client.models.list();
for (const m of models.data) console.log(m.id, m.context_window, m.available_on_plan);
```

**Python**

```python
for m in client.models.list().data:
    extra = m.model_extra or {}
    print(m.id, extra.get("context_window"), extra.get("available_on_plan"))
```

See the [Models reference](https://claudech.com/docs/api/models) for the full response shape.

---

Source: https://claudech.com/docs/models
