Batch Lifecycle
- Submit batch → receive batch ID
- Poll status endpoint until
processing_status: ended - Download results from
results_url - Results retained 29 days — then permanently deleted
There are no webhooks and no streaming. You must poll.
Expiration Scales with Batch Size
Expired requests are those not processed before the 24-hour deadline:
| Batch size | Expiration rate |
|---|---|
| 1,000 | 0.5% |
| 1,500 | 8.7% |
Smaller, more frequent batches reduce expiration rates. For a 30-hour SLA with 24h max batch processing, submit every 4-6 hours to leave buffer for worst-case timing plus one recovery round.
Store Results Locally
API retention (29 days) is fixed and not configurable. Delaying result retrieval past 29 days means permanent data loss. Download immediately after completion and store in your own infrastructure for any longer retention needs.
Cancellation
Running batches can be cancelled via POST to the cancel endpoint. Use this when early results reveal systematic prompt errors — cancel before the full batch completes with the same problem.
One-liner: Poll until ended, download immediately, store locally — results expire in 29 days, and larger batches have higher expiration rates, so submit smaller batches more frequently.