When to use the batch queue
| Approach | Best for |
|---|---|
| Batch queue (this page) | Bulk uploads, backfills, overnight runs — anything where minutes-to-hours latency is acceptable |
| Async parse | Standard async — immediate processing, normal pricing |
| Sync parse | Small documents, interactive flows — get the result back in one request |
/job/{id} — you get the result pushed to you as soon as it’s ready instead of paying for the round-trips.
How to opt in
The batch queue currently works with/parse_async only. Set queue_priority: "batch" on a /parse_async request to use it. No other endpoint supports the batch queue today — queue_priority has no effect on synchronous /parse or on the other async endpoints (/extract_async, /split_async, /edit_async).
/parse_async submission — you get back a job_id and poll /job/{id} for the result.
SLA
Batch jobs are guaranteed to complete within 12 hours of submission. The 12-hour window is the firm commitment.Pricing
Batch jobs receive a 20% credit discount on parsing. The credit usage returned in/job/{id} reflects the discounted amount directly — no separate invoicing step.
The discount applies on top of any existing per-organisation credit rate, so customers on legacy or volume pricing keep their existing rate and additionally get the 20% off when they use the batch queue.
Back-off and capacity limits
If the batch queue is saturated,/parse_async returns HTTP 503 with a Retry-After: 300 header. Well-behaved clients will pause for the suggested interval before retrying; SDKs handle this automatically. The cap is a safety valve — under normal operation you should never see it.
Out of scope today
- The batch queue is supported on
/parse_asynconly. It is not available on synchronous/parseor on the other async endpoints (/extract_async,/split_async,/edit_async) — these do not honourqueue_priorityand run at standard priority and pricing. - Per-customer batch-discount tiers are not available; the 20% is global.