Limits & Quotas
Request size limits, rate limits, and processing constraints enforced by the API.
Request size limits
| Endpoint | Limit | Error |
|---|---|---|
| v3/text, v3/latex, v3/batch | 5 MB JSON body | sys_request_too_large |
| v3/strokes | 512 KB JSON body | sys_request_too_large |
| v3/pdf | 1 GB file upload | sys_request_too_large |
| All image endpoints | 2 MB base64-encoded image in request body | sys_request_too_large |
| All image endpoints | 10 MB image download from URL (15 second timeout) | image_download_error |
When sending an image file via multipart form-data, the body limit applies to the entire multipart payload including the file.
Rate limits
Monthly quotas
Each app has configurable monthly limits on image and PDF page processing:
image_monthly_limit— maximum image OCR requests per monthpage_monthly_limit— maximum PDF pages processed per month
To request a limit increase, go to console.mathpix.com.
When a quota is exceeded, the API returns HTTP 429 with error ID http_max_requests:
{
"error": "Too many requests",
"error_info": {
"id": "http_max_requests",
"message": "Too many requests",
"limit_name": "page_monthly_limit",
"limit_value": 5000,
"count": 5001
}
}
Per-minute rate limits
The API also enforces per-minute request limits:
- Per-app limit — maximum requests per minute for a single app key
- Per-IP limit — maximum requests per minute from a single IP address
These limits vary by plan. When exceeded, the API returns the same http_max_requests error.
Fair-share queue priority
During high load, heavy users may experience slightly higher latency as the API automatically balances processing capacity across all customers. Fair-share does not reject requests. Affected requests are deprioritized, not dropped.