Developers

Handle durable jobs and bounded retries

Create operations report stable errors, and extraction status remains the source of truth after transient delivery failures.

Rate limits

Successful responses may include X-RateLimit-Limit and X-RateLimit-Remaining. A 429 includes Retry-After seconds. Wait at least that interval and use exponential backoff with jitter.

Retry rules

  • Retry POST /extractions only with the same idempotency key and identical payload.
  • After uncertain delivery, query the known extraction ID.
  • Do not retry a 400, 401, 402, 409, or 422 unchanged.
  • Use the returned request ID with support.

Retention

Uploads and results follow the retention policy recorded for an accepted job. Retrieve the canonical result while retained, then persist only what your own data policy permits. Deleting an unconsumed upload does not delete an accepted extraction.

Terminal results

Poll GET /extractions/{id} until its status is terminal. Fetch /result for a succeeded or partially_succeeded extraction. A partial result contains successful pages; failed pages are not charged. Stop polling failed, cancelled, or expired jobs. A polling timeout does not cancel durable work. Active work can be cancelled with DELETE /extractions/{id}.

GuidesPlan your integrationAPI referenceExplore the contractStatusCheck service updates