Skip to main content
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 IDTypeContext
codestral-2508chat256K
codestral-latestchat256K
devstral-2512chat262K
devstral-latestchat262K
devstral-medium-2507chat131K
devstral-medium-latestchat131K
devstral-small-2507chat131K
devstral-small-latestchat
magistral-medium-2509chat40K
magistral-medium-latestchat40K
magistral-small-2509chat131K
magistral-small-latestchat131K
ministral-14b-2512chat262K
ministral-14b-latestchat262K
ministral-3b-2512chat131K
ministral-3b-latestchat131K
ministral-8b-2512chat262K
ministral-8b-latestchat262K
mistral-large-2411chat128K
mistral-large-2512chat256K
mistral-large-latestchat256K
mistral-medium-2505chat131K
mistral-medium-2508chat131K
mistral-medium-2604chat262K
mistral-medium-3-5chat262K
mistral-medium-latestchat131K
mistral-small-2506chat128K
mistral-small-2603chat262K
mistral-small-latestchat262K
open-mistral-nemochat128K
pixtral-large-2411chat131K
pixtral-large-latestchat128K
This table is auto-generated from the Verlon model registry on every sync — see the live registry for pricing, benchmarks, and deprecation dates.

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 using the same model IDs — Mistral’s OCR line is particularly strong for document processing (see SDK reference → OCR).

Quickstart

First time? Create a gate and grab an API key — the examples below need a GATE_ID and VERLON_API_KEY.
The fastest path — Verlon SDK, one call:
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 is the native path to every model on this page — the quickstart above 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 and the Anthropic SDK: point it at Verlon, reference a gate that routes here, and your code stays unchanged.

Streaming

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

Full support for stream: true in every supported SDK — identical semantics to the source SDK.
Fully supported. Verlon translates the tool-call shape between OpenAI / Anthropic / Mistral native formats.
Image inputs work with Pixtral models — Mistral’s vision-capable line.
Codestral, Devstral, and Magistral models are available with the same call shape — swap the model ID.
temperature, max_tokens, top_p, stop, and the rest are passed through.
Every response includes token usage plus Verlon’s cost field with per-call dollar amount.

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

StatusMeaningWhat to check
400Invalid requestMalformed body or missing gateId
401Invalid API keyYour VERLON_API_KEY value and the Authorization: Bearer header
404Gate not foundYour GATE_ID — the error message names the offending ID
429Rate limit exceededBack 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:
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