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 /extractionsonly 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}.