API / Errors & limits
Errors & limits
What the service accepts, how long it takes, and how failures are reported.
Error codes
Every error is { "detail": "message" } with an HTTP status.
| Code | Meaning | What to do |
|---|---|---|
400 | Bad request (unreachable source_url / callback_url) | Fix the input. |
401 | Missing or invalid API key | Check your key. |
413 | Too large or too many pages | Shrink, or use /v1/jobs. |
415 | Unsupported format | Send a supported format. |
422 | Could not read the document | Re-export as PDF. |
429 | Sending too fast | Back off; batch via /v1/jobs. |
5xx | Transient processing error | Retry with backoff — accepted jobs are never lost. |
Limits
| Value | |
|---|---|
| Max file size | 20 MB |
Max pages — /v1/parse | 10 |
Max pages — /v1/jobs | 60 |
| Formats | PDF, DOCX, DOC, RTF, ODT, PNG, JPG, WEBP, TXT, TEX |
Each page is rendered and read individually, so a page cap keeps the synchronous call responsive — 10 pages covers essentially every CV. For longer documents, use the asynchronous /v1/jobs endpoint (up to 60 pages). Oversized pages are downscaled automatically rather than rejected.
Timing
| Call | Warm | First call after idle |
|---|---|---|
| Instant contact fields | <0.5 s | <0.5 s |
/v1/parse | ~5 s | +~30 s warm-up |
/v1/extract | ~30–40 s | +~30 s warm-up |
To hide the warm-up, call POST /v1/warmup the moment a user
starts (for example, when they pick a file).
Data handling
/v1/parseand/v1/extractstore nothing — they process in memory and return.- For
/v1/jobs, the uploaded document is kept 24 hours and the result 7 days, then deleted. - Logs are retained 30 days with emails and phone numbers redacted.