Introduction
A multi-model OCR API for document extraction
Introduction
DocsRouter is an early-access OCR API for extracting text and tables from images and documents. It exposes OpenRouter's currently priced image-input models behind one authenticated endpoint and one response shape.
Early access
The API is under active development. Test the models you plan to use against your own documents before putting them into a production workflow.
What is available today
- Native OCR endpoint: Send a URL or base64-encoded document to
POST /v1/ocr. - Live image-model catalog: Choose any currently listed model that declares image input, text output, and valid pricing.
- Transparent routing policies: Choose
quality,accuracy,speed,cost, orbalanced. Each policy maps to a fixed model; DocsRouter does not inspect a result and retry with another model. - Multi-page processing: Supported PDFs and converted office documents return a
pagesarray plus combined text. - Usage details: Responses report the selected model, token usage, pages processed, processing time, and cost breakdown.
DocsRouter does not currently provide a result cache, confidence-based fallback, automatic provider waterfall, or published accuracy and latency guarantees.
Available models
Read GET /v1/models at runtime for the current catalog. The deterministic routing policies continue to use a small recommended subset; explicit selection can use any returned model ID. See Models for the mappings and current pricing metadata.
Pricing
Vision-model requests are billed at the provider cost plus a 5% DocsRouter platform fee. The API returns the provider cost, platform fee, and total cost for each request.
Mistral OCR's direct provider rate for its dedicated PDF parser is $2 per 1,000 pages before the DocsRouter platform fee. Per-request minimum charges and rounding can affect small jobs.
First request
curl -X POST https://api.docsrouter.com/v1/ocr \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/invoice.png",
"strategy": "balanced",
"options": {"output_format": "markdown"}
}'