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

# Mistral

> Every Mistral model Verlon supports — Large, Medium, Small, Ministral, Codestral, Devstral, Magistral, Pixtral — with quickstart and SDK compatibility.

Mistral's full lineup — Large, Medium, Small, Ministral (edge sizes), Codestral (code), Devstral (dev tools), Magistral (reasoning), Pixtral (multimodal) — is routable through Verlon in whichever SDK you already use. No Mistral-specific SDK required.

## Chat models

| Model ID                  | Type | Context |
| ------------------------- | ---- | ------- |
| `codestral-2508`          | chat | 256K    |
| `codestral-latest`        | chat | 256K    |
| `devstral-2512`           | chat | 262K    |
| `devstral-latest`         | chat | 262K    |
| `devstral-medium-2507`    | chat | 131K    |
| `devstral-medium-latest`  | chat | 131K    |
| `devstral-small-2507`     | chat | 131K    |
| `devstral-small-latest`   | chat | —       |
| `magistral-medium-2509`   | chat | 40K     |
| `magistral-medium-latest` | chat | 40K     |
| `magistral-small-2509`    | chat | 131K    |
| `magistral-small-latest`  | chat | 131K    |
| `ministral-14b-2512`      | chat | 262K    |
| `ministral-14b-latest`    | chat | 262K    |
| `ministral-3b-2512`       | chat | 131K    |
| `ministral-3b-latest`     | chat | 131K    |
| `ministral-8b-2512`       | chat | 262K    |
| `ministral-8b-latest`     | chat | 262K    |
| `mistral-large-2411`      | chat | 128K    |
| `mistral-large-2512`      | chat | 256K    |
| `mistral-large-latest`    | chat | 256K    |
| `mistral-medium-2505`     | chat | 131K    |
| `mistral-medium-2508`     | chat | 131K    |
| `mistral-medium-2604`     | chat | 262K    |
| `mistral-medium-3-5`      | chat | 262K    |
| `mistral-medium-latest`   | chat | 131K    |
| `mistral-small-2506`      | chat | 128K    |
| `mistral-small-2603`      | chat | 262K    |
| `mistral-small-latest`    | chat | 262K    |
| `open-mistral-nemo`       | chat | 128K    |
| `pixtral-large-2411`      | chat | 131K    |
| `pixtral-large-latest`    | chat | 128K    |

<Note>
  This table is auto-generated from the Verlon model registry on every sync — see the [live registry](/provider-compatibility/models#live-registry) for pricing, benchmarks, and deprecation dates.
</Note>

## Other modalities

* **embeddings** — 4 models
* **moderation** — 3 models
* **OCR / document processing** — 2 models
* **speech-to-text** — 7 models
* **text-to-speech** — 2 models

Non-chat Mistral models are called through the [Verlon SDK](/sdk-reference/overview) using the same model IDs — Mistral's OCR line is particularly strong for document processing (see [SDK reference → OCR](/sdk-reference/ocr)).

## Quickstart

<Note>
  First time? [Create a gate](/platform/gates) and grab an [API key](/getting-started/authentication) — the examples below need a `GATE_ID` and `VERLON_API_KEY`.
</Note>

The fastest path — Verlon SDK, one call:

```typescript theme={null}
import { Verlon } from '@verlon-ai/sdk';

const verlon = new Verlon({ apiKey: process.env.VERLON_API_KEY });

const response = await verlon.chat({
  gateId: process.env.GATE_ID,
  model: 'mistral-large-latest', // optional — overrides the gate's configured model
  data: {
    messages: [{ role: 'user', content: 'Hello!' }],
  },
});

console.log(response.content);
```

Any chat model from the table above works — swap `mistral-large-latest` for `codestral-latest`, `magistral-medium-latest`, `pixtral-large-latest`, or any other ID.

## SDK compatibility

The [Verlon SDK](/sdk-reference/overview) is the native path to every model on this page — the [quickstart above](#quickstart) is all it takes. Already on another SDK? Any SDK with a Verlon drop-in endpoint can reach these models too — today that's the [OpenAI SDK](/provider-compatibility/openai) and the [Anthropic SDK](/provider-compatibility/anthropic): point it at Verlon, reference a gate that routes here, and your code stays unchanged.

### Streaming

```typescript theme={null}
for await (const chunk of verlon.chatStream({
  gateId: process.env.GATE_ID,
  data: { messages: [{ role: 'user', content: 'Tell me a joke.' }] },
})) {
  process.stdout.write(chunk.content ?? '');
}
```

## What's supported

<AccordionGroup>
  <Accordion title="Streaming">
    Full support for `stream: true` in every supported SDK — identical semantics to the source SDK.
  </Accordion>

  <Accordion title="Tool / function calling">
    Fully supported. Verlon translates the tool-call shape between OpenAI / Anthropic / Mistral native formats.
  </Accordion>

  <Accordion title="Vision">
    Image inputs work with Pixtral models — Mistral's vision-capable line.
  </Accordion>

  <Accordion title="Code + reasoning specializations">
    Codestral, Devstral, and Magistral models are available with the same call shape — swap the model ID.
  </Accordion>

  <Accordion title="Standard parameters">
    `temperature`, `max_tokens`, `top_p`, `stop`, and the rest are passed through.
  </Accordion>

  <Accordion title="Usage + cost tracking">
    Every response includes token usage plus Verlon's `cost` field with per-call dollar amount.
  </Accordion>
</AccordionGroup>

## How it works

1. **You send** a request in your chosen SDK's format
2. **Verlon receives** — validates the gate, applies routing rules
3. **Verlon translates** to Mistral's native format and dispatches to Mistral's API
4. **Mistral responds** with its raw response
5. **Verlon normalizes** back to your SDK's expected shape
6. **You receive** a response in the format your code already handles, with an added `cost` field

Your existing code doesn't know it's talking to Mistral.

## Errors

| Status | Meaning             | What to check                                                                                        |
| ------ | ------------------- | ---------------------------------------------------------------------------------------------------- |
| `400`  | Invalid request     | Malformed body or missing `gateId`                                                                   |
| `401`  | Invalid API key     | Your `VERLON_API_KEY` value and the `Authorization: Bearer` header                                   |
| `404`  | Gate not found      | Your `GATE_ID` — the error message names the offending ID                                            |
| `429`  | Rate limit exceeded | Back off and retry; the body includes `reset_at`, and every response carries `X-RateLimit-*` headers |

The error shape always matches the SDK you're calling with. Through the Verlon SDK it surfaces as a thrown `Error`:

```typescript theme={null}
try {
  await verlon.chat({
    gateId: process.env.GATE_ID,
    data: { messages: [{ role: 'user', content: 'Hello!' }] },
  });
} catch (error) {
  // error.message carries the API's message,
  // e.g. 'Gate with ID "…" not found'
  console.error(error.message);
}
```

## Full non-chat model list

Every non-chat Mistral model Verlon routes to, grouped by modality. Chat models are in the table near the top of this page.

### Embeddings

| Model ID               |
| ---------------------- |
| `codestral-embed`      |
| `codestral-embed-2505` |
| `mistral-embed`        |
| `mistral-embed-2312`   |

### Moderation

| Model ID                    |
| --------------------------- |
| `mistral-moderation-2411`   |
| `mistral-moderation-2603`   |
| `mistral-moderation-latest` |

### OCR / document processing

| Model ID             |
| -------------------- |
| `mistral-ocr-2512`   |
| `mistral-ocr-latest` |

### Speech-to-text

| Model ID                                |
| --------------------------------------- |
| `voxtral-mini-2507`                     |
| `voxtral-mini-2602`                     |
| `voxtral-mini-realtime-2602`            |
| `voxtral-mini-realtime-latest`          |
| `voxtral-mini-transcribe-realtime-2602` |
| `voxtral-small-2507`                    |
| `voxtral-small-latest`                  |

### Text-to-speech

| Model ID                  |
| ------------------------- |
| `voxtral-mini-tts-2603`   |
| `voxtral-mini-tts-latest` |

## Related

* [OpenAI](/provider-compatibility/openai) · [Anthropic](/provider-compatibility/anthropic) · [Google](/provider-compatibility/google)
* [Verlon SDK reference](/sdk-reference/overview) — one SDK across every provider and modality
* [Gates](/platform/gates) — set up routing rules and model configuration
* [Bring your own key](/platform/byok) — use your own Mistral account for provider costs
* [Mistral's official docs ↗](https://docs.mistral.ai/)
