Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.reducto.ai/llms.txt

Use this file to discover all available pages before exploring further.

The batch queue is an opt-in lane for async jobs that don’t need immediate turnaround. Jobs run when there’s spare capacity and are guaranteed to complete within a published SLA — in return, you get a discount on the credits they consume.

When to use the batch queue

ApproachBest for
Batch queue (this page)Bulk uploads, backfills, overnight runs — anything where minutes-to-hours latency is acceptable
Async parseStandard async — immediate processing, normal pricing
Sync parseSmall documents, interactive flows — get the result back in one request
Pick the batch queue when you can trade latency for cost. Webhooks work with both async lanes (standard and batch), and we generally recommend them over polling /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

Set queue_priority: "batch" on any /parse_async request. The flag is honoured on /parse_async only — synchronous /parse and the other async endpoints (/extract_async, /split_async, /edit_async) ignore it today.
from reducto import AsyncReducto

client = AsyncReducto()

response = await client.parse.run_job(
    input="https://example.com/large-doc.pdf",
    options={"queue_priority": "batch"},
)
curl -X POST https://platform.reducto.ai/parse_async \
  -H "Authorization: Bearer $REDUCTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "document_url": "https://example.com/large-doc.pdf",
    "queue_priority": "batch"
  }'
The response shape is identical to a regular /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

  • queue_priority: "batch" is honoured on /parse_async only. The other async endpoints accept the field but currently do not apply the discount or the queue routing.
  • Per-customer batch-discount tiers are not available; the 20% is global.