Skip to main content
Use Extract Jobs v2 to extract structured data asynchronously. Instead of waiting for a single request to finish, you create a job, receive a job_id immediately, and retrieve the result when the job completes. Use Extract Jobs for long-running extractions, such as extracting from long documents or with large, complex schemas.

Endpoints

The request fields are the same as the synchronous Extract API. See Extract Input Parameters. Extract Jobs uses these endpoints:

Workflow

  1. Build your extraction schema. See Extraction Schema (JSON).
  2. Submit the Markdown and schema to POST /v2/extract/jobs.
  3. Get the job_id from the response.
  4. Poll GET /v2/extract/jobs/{job_id} until status is completed.
  5. Read the extracted fields from the job’s result, or from output_url if you saved the output to a URL. See Extract API Response.

Create a Job

Send the same fields you would send to the synchronous endpoint. Replace YOUR_API_KEY with your API key and parse-output.md with the path to your Markdown file.
The request returns a 202 response with the job_id and the initial status:

Choose a Service Tier

Set the optional service_tier form field to control the job’s turnaround time and credit consumption. If you omit service_tier, the job runs on the standard tier. For how the tiers compare, see Sync vs Async Processing. For credit consumption by tier, see Credit Consumption. Set the tier. Include the service_tier field in your create-job request:

Get a Job

Poll the job with its job_id:
The response includes the job status and, once the job finishes, the result:

Job Statuses

Save Extraction Output to a URL

To write the extraction result to your own storage instead of retrieving it inline, pass the optional output_save_url parameter when you create the job. The result (the same shape as a synchronous response, including metadata with billing) is delivered to that URL, and the poll response reports output_url instead of result. The completed poll response also carries the job’s metadata, so billing information is available without fetching the file. The output_save_url parameter is accepted only on job creation; the synchronous /v2/extract endpoint rejects it with a 422 error. The URL must be a presigned URL that grants time-limited write access to a single object, with the same requirements as Parse Jobs; see URL Requirements.

Zero Data Retention (ZDR)

If Zero Data Retention (ZDR) is enabled for your organization, it applies to all Extract Jobs calls. No special parameters are required. Under ZDR, results are deleted as soon as you retrieve them. See Result Retention.

Rate Limits

Extract Jobs submissions are always accepted (HTTP 202) and never return a rate-limit error; jobs are paced internally instead. There is no input size cap. See Rate Limits.