# Choose a model

> Find a model id, check its price and context, and send it to the right endpoint.

A model id has the form `author/name`, for instance `anthropic/claude-sonnet-5.5`. Send it as `model` on every endpoint.

## Browse the catalog

[Models](https://deference.si/models) lists every model with its context length, price per million tokens and capabilities. Open a model to copy its id and a request you can run.

Pick a maker in the maker bar, choose a capability in the **Capabilities** menu, or link straight to a filter:

| Capability | Link                      | Shows                                |
| ---------- | ------------------------- | ------------------------------------ |
| All        | `/models`                 | Every listed model                   |
| Reasoning  | `/models?type=reasoning`  | Models that think before they answer |
| Tools      | `/models?type=tools`      | Models that call functions           |
| Vision     | `/models?type=vision`     | Models that read images              |
| Images     | `/models?type=image`      | Models that create images            |
| Embeddings | `/models?type=embeddings` | Models that turn text into vectors   |

Add `q=` to search and `provider=` to filter by maker: `/models?type=tools&provider=anthropic`.

## Match the model to the endpoint

| Model type                     | Endpoint                                                                                                                                         |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| Text, vision, reasoning, tools | [Chat Completions](https://deference.si/docs/api-reference/chat-completions), [Messages](https://deference.si/docs/api-reference/messages) or [Responses](https://deference.si/docs/api-reference/responses) |
| Embeddings                     | [Embeddings](https://deference.si/docs/api-reference/embeddings)                                                                                                     |
| Image generation               | [Images](https://deference.si/docs/api-reference/images)                                                                                                             |

Coding tools pick the endpoint themselves: Claude Code uses Messages, Codex uses Responses, and most other tools use Chat Completions.

## Read the price

Prices are in dollars per million tokens, with separate prices for input, output and cached input. Some models also charge per request or per image. OpenRouter's price plus OpenRouter's 5% platform fee. Deference adds no markup. See [Pricing](https://deference.si/docs/concepts/pricing-and-metering).

[Models](https://deference.si/models) shows the cheapest listed prices. [Free credit](https://deference.si/docs/concepts/free-credit) checks the highest output price across endpoints and long-prompt tiers, including OpenRouter's 5% platform fee. That price must be at most $2 per million tokens. The model must be open-weight and output only text.

The request's worst-case estimate must be at most $0.05. Free credit excludes files, image or video URLs, server tools, plugins, `web_search_options`, and provider routing. It never pays for image generation. Other requests need credit.

## List models from the API

`GET /v1/models` needs no key and returns each model's id, context window, prices and supported parameters. See [Models](https://deference.si/docs/api-reference/models).

```bash
curl https://deference.si/v1/models
```

## Use aliases and suffixes

* Ids that start with `~` follow the newest model of a family.
* Ids that end in `:incognito` run on Phala's confidential-computing hardware; ids that end in `:overdrive` run on the model's one pinned provider. See [Incognito](https://deference.si/docs/incognito) and [Overdrive](https://deference.si/docs/overdrive).
* A trailing `[1m]` is accepted so Claude Code's context setting works. Deference strips it, looks the model up without it, and sends the catalog id. The provider does not see `[1m]`.

## If a model is missing

A model that is not in the catalog returns `404 model_not_found`. Providers retire models, so list models again and pick a current id.
