# Model Catalog

Source: https://aiand-docs-staging.pages.dev/models/catalog/

ai& currently serves the open-weight models below. The list is dynamic — each organization sees only what it has access to, so the source of truth is always `GET /v1/models`.

## Quick picks

This page computes the picks live: the lowest output price, the models that take images, video or documents, and the largest context window. `GET /v1/models` returns the data they come from.

## Available models

This page renders the table live. `GET /v1/models` returns every model with its capabilities, context window and prices.

Sorted by output price, low to high. Prices are USD per million tokens — see [Pricing](/models/pricing/) for how the formula computes a per-request cost.

To have ai& pick one of these per request instead of choosing yourself, see [Automatic Selection](/models/auto/).

## Capability values

| Capability     | Meaning                                                                                                                                                                                           |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `reasoning`    | Emits internal reasoning tokens (charged as output) and accepts `reasoning_effort`. The values it takes are listed in that model's `reasoning_efforts`, since models don't share one vocabulary. Reasoning can be turned off only if its levels include `none`. |
| `tool_calling` | Accepts `tools` / `tool_choice`. See [Tool Calling](/capabilities/tool-calling/).                                                                                                                 |
| `vision`       | Accepts image inputs (`image_url` or `file_id`). See [Vision](/capabilities/vision/).                                                                                                             |
| `video`        | Accepts video inputs by `file_id`. See [Video Understanding](/capabilities/video/).                                                                                                               |
| `document`     | Accepts PDF / document inputs.                                                                                                                                                                    |

A capability absent from the list means requests using that feature will be rejected at validation time.

## Listing your models programmatically

<Tabs>
<TabItem label="curl">

```bash
curl https://api.aiand.com/v1/models
```

</TabItem>
<TabItem label="Python">

```python
from openai import OpenAI

client = OpenAI(base_url="https://api.aiand.com/v1", api_key="sk-...")
for m in client.models.list().data:
    print(m.id, m.context_window, m.capabilities)
```

</TabItem>
<TabItem label="Node.js">

```ts
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.aiand.com/v1", apiKey: "sk-..." });
const { data } = await client.models.list();
for (const m of data) console.log(m.id, m.context_window, m.capabilities);
```

</TabItem>
<TabItem label="ai& CLI">

```bash
aiand models
aiand models --capability vision --sort output
```

Prices are per 1M tokens in your billing currency. See [ai& CLI](/cli/).

</TabItem>
</Tabs>

## Response shape (OpenAI surface)

```json
{
  "object": "list",
  "data": [
    {
      "id": "google/gemma-4-31b-it",
      "name": "google/gemma-4-31b-it",
      "object": "model",
      "created": 1775474514,
      "owned_by": "ai&",
      "provider": "google",
      "context_window": 262144,
      "max_output_tokens": 32768,
      "capabilities": [
        "reasoning",
        "tool_calling",
        "vision",
        "video",
        "document"
      ],
      "reasoning_efforts": [
        "none",
        "high"
      ],
      "reasoning_effort_default": "none",
      "description": "Largest Gemma 4 instruction model for open, self-hosted chat and reasoning",
      "currency": "usd",
      "input_per_1m": "0.200000",
      "output_per_1m": "0.500000",
      "cached_input_per_1m": "0.050000",
      "deprecation_date": null
    }
  ]
}
```

| Field                      | Type             | Meaning                                                                                                                                        |
| -------------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                       | string           | The value to pass as `"model"` in chat / responses / messages.                                                                                 |
| `provider`                 | string           | The lab that released the open weights (`openai`, `google`, `qwen`, …). All models are hosted on ai& infrastructure regardless of provider.    |
| `context_window`           | int              | Max combined input + output tokens.                                                                                                            |
| `max_output_tokens`        | int \| null      | Recorded maximum generation length. `null` when no limit is recorded for the model. The list does not fill in a guess.                        |
| `capabilities`             | string[]         | Supported features — see the table above.                                                                                                      |
| `reasoning_efforts`        | string[] \| null | The `reasoning_effort` values this model runs. Another known level runs at the next listed level up, or the highest, which can cost more than the level you sent; [`X-Reasoning-Effort`](/reference/response-headers/) reports the one applied. A model can turn reasoning off only if its levels include `none`, and a value outside the effort vocabulary is a 400. `null` only on models without the `reasoning` capability. |
| `reasoning_effort_default` | string \| null   | The level to default a UI to for this model. Not applied server-side — omitting `reasoning_effort` leaves the upstream's own default in place. |
| `currency`                 | string           | Your organization's billing currency (`usd` or `jpy`), set at org creation. `usd` when called without an API key.                              |
| `input_per_1m`             | string           | Price per **1 million** input tokens, in your billing currency. Numeric stored as a string for precision.                                      |
| `output_per_1m`            | string           | Price per **1 million** output tokens, in your billing currency.                                                                               |
| `deprecation_date`         | string \| null   | When the model stops serving requests, as an ISO 8601 timestamp. `null` when no retirement is scheduled.                                       |

## Anthropic surface

`GET /v1/models` with an `anthropic-version` header returns the Anthropic shape — `data[].display_name`, `created_at`, `has_more`, `first_id`, `last_id`. Pricing and capabilities are only on the OpenAI surface.

<Aside type="note">Need a model that isn't listed? Access is org-scoped — contact support.</Aside>
