Skip to main content

Asynchronous Processing

For large documents or production workflows, use async processing to avoid timeouts and handle long-running operations gracefully.

How It Works

  1. Submit - Send your request with async: true
  2. Receive job ID - Get an immediate response with a job_id
  3. Poll - Check job status via GET /job/{jobId}
  4. Get results - Retrieve completed results from the poll response

Endpoints with Async Support


Using the Async Flag

Add async: true to any supported endpoint’s request body:

Async Response Format

When async: true, you receive a 202 Accepted response:

Polling for Results

Use GET /job/{jobId} to check status and retrieve results:

Poll Response

Job Status Values

Retention

Async results remain retrievable until your organization’s retention window for async jobs elapses, after which the job reads as expired. Retention applies to everything the job created: the stored result, URL-delivered (offloaded) result payloads, and any staged copy of the source document. Organizations can also opt into delete-on-first-poll, which removes a job’s stored artifacts as soon as the completed result is successfully retrieved once — download and persist the result on first read if your organization uses it. Contact support to configure retention for your organization.

Canceling Jobs

Cancel a running job with DELETE /job/{jobId}:

When to Use Async

Synchronous requests may timeout for large documents. Always use async for documents over 50 pages.
Schema extraction with many fields or nested structures benefits from async processing.
Async provides better reliability and allows you to handle failures gracefully with retries.
Submit multiple documents asynchronously and poll for results in parallel.

Sync vs Async Comparison


Webhooks Alternative

Instead of polling, you can use webhooks to receive notifications when jobs complete:
See Svix Webhooks for setup instructions.