# LightOnOCR-2-1B
URL: https://docs.munito.ai/models/lightonai-lightonocr-2-1b

Munito AI serves the LightOnOCR-2-1B OCR model in the EU and US. It reads PDFs and images into Markdown.

Use this model ID in the `model` field of a request:

```text
lightonai/lightonocr-2-1b
```

| | |
| --- | --- |
| Model ID | `lightonai/lightonocr-2-1b` |
| Type | OCR |
| Input | PDF, image |
| Context | 16K tokens (16,384) |
| Regions | EU, US |

## APIs [#apis]

- [OCR](https://docs.munito.ai/api/createOcr): `POST /ocr`

## Prices [#prices]

Prices are in USD for each 1,000 pages, in the standard tier. The global host bills the global price. A regional host or a regional model ID bills the price of its region.

| Region | Per 1,000 pages |
| --- | --- |
| Global | $4.00 |
| EU | $4.40 |
| US | $4.40 |

See [Models and pricing](https://docs.munito.ai/models#lightonai-lightonocr-2-1b) for the priority and flex tiers, and for [how a request is billed](https://docs.munito.ai/models#how-a-request-is-billed).

## Rate limits [#rate-limits]

Base limits per organization.

| Usage tier | Pages per minute |
| --- | --- |
| Free | 20 |
| Tier 1 | 40 |
| Tier 2 | 80 |
| Tier 3 | 160 |
| Tier 4 | 320 |
| Custom | On request |

See [Rate limits](https://docs.munito.ai/rate-limits) for dynamic limits, headers and retries.

Request custom limits through Support in the [console](https://console.munito.ai).

## Regions [#regions]

Munito AI serves this model in the EU and US. The global host, `api.munito.ai`, sends each request to a region that serves it.
To keep the processing in one region, use the host of that region:

| Region | Host |
| --- | --- |
| EU | `api.eu.munito.ai` |
| US | `api.us.munito.ai` |

See [Regions](https://docs.munito.ai/regions) for the base URLs and the rules for stored data.

## Example [#example]

Send a document by URL. The response has the Markdown of each page.

```bash
export MUNITO_API_KEY="munitoai_..."
curl https://api.munito.ai/inference/v1/ocr \
  -H "Authorization: Bearer $MUNITO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "lightonai/lightonocr-2-1b",
    "document": {"type": "url", "url": "https://example.com/invoice.pdf"}
  }'
```

```python
# pip install requests
import os
import requests

response = requests.post(
    "https://api.munito.ai/inference/v1/ocr",
    headers={"Authorization": f"Bearer {os.environ['MUNITO_API_KEY']}"},
    json={
        "model": "lightonai/lightonocr-2-1b",
        "document": {"type": "url", "url": "https://example.com/invoice.pdf"},
    },
    timeout=600,
)
response.raise_for_status()
for page in response.json()["pages"]:
    print(page["markdown"])
```

A long document can return `202` with a `location` to poll. See [Run OCR](https://docs.munito.ai/api/createOcr).
