Mistral OCR 3 API

mistral/mistral-ocr-3
Rather than functioning as a traditional OCR engine that simply converts images into text, the model understands how information is organized across a page.
Output
$2.6 / 1K pages

How to use Mistral OCR 3 API

Install any OpenAI-compatible SDK, point it at api.aimlapi.com/v1, and set the model to mistral/mistral-ocr-3.
import requests, time

headers = {"Authorization": "Bearer " + AIMLAPI_KEY}
job = requests.post(
    "https://api.aimlapi.com/v2/generate/audio",
    headers=headers,
    json={
      "model": "mistral/mistral-ocr-3",
      "prompt": "Upbeat lofi background music"
    },
).json()
gid = job["generation_id"]

while True:
    res = requests.get(f"https://api.aimlapi.com/v2/generate/audio?generation_id={gid}", headers=headers).json()
    if res.get("status") in ("completed", "error", "failed"):
        break
    time.sleep(3)
print(res)
const headers = {
  Authorization: `Bearer ${process.env.AIMLAPI_KEY}`,
  "Content-Type": "application/json",
};
const job = await (await fetch("https://api.aimlapi.com/v2/generate/audio", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "model": "mistral/mistral-ocr-3",
    "prompt": "Upbeat lofi background music"
  }),
})).json();

let res;
do {
  await new Promise((r) => setTimeout(r, 3000));
  res = await (await fetch(`https://api.aimlapi.com/v2/generate/audio?generation_id=${job.generation_id}`, { headers })).json();
} while (!["completed", "error", "failed"].includes(res.status));
console.log(res);
# submit the job — the response contains "generation_id"
curl -X POST https://api.aimlapi.com/v2/generate/audio \
  -H "Authorization: Bearer $AIMLAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"mistral/mistral-ocr-3","prompt":"Upbeat lofi background music"}'

# then poll for the result until it is ready
curl "https://api.aimlapi.com/v2/generate/audio?generation_id={generation_id}" -H "Authorization: Bearer $AIMLAPI_KEY"

OpenAI-compatible — swap the base URL and it works with your existing SDK.

Mistral OCR 3 API Pricing

TypePrice
Output
$2.6 / 1K pages

Mistral OCR 3 vs other models

ModelInputOutputContextBest for
Mistral OCR 3
This page
$2.6 / 1K pages
Audio generation
$5.2 / 1K pages
Audio generation
$0.013 / page
Audio generation
$0.0078 / page
Audio generation

Frequently asked questions

Mistral OCR 3 takes document, image as input and returns text.

Mistral OCR 3 is priced at $2.6 / 1K pages.

Mistral OCR 3 is billed per generation — a fixed charge per output rather than by prompt length.

Mistral OCR 3 was built by Mistral AI.

Use mistral/mistral-ocr-3 as the model id on AI/ML API.

Yes. Mistral OCR 3 is served through AI/ML API, so the same key and endpoint format used for other models applies.

The model ID is mistral/mistral-ocr-3.

It is designed for PDFs and images, extracting text and embedded images and producing markdown output with HTML-based table reconstruction.

It is fully backward compatible with Mistral OCR 2.

Start building with Mistral OCR 3

Get API Key
1000+ models, one API.