OpenRouter batch 24h window and expired vs Sume queued jobs
OpenRouter batches use a 24-hour completion window and can end as expired. Sume jobs have no queue expiry option today: a queued job waits, or you cancel it.

OpenRouter's Batch API runs on a 24-hour completion window, and a batch that does not finish in time can end as expired. Sume has no equivalent: queue expiration is not a public API option today. A Sume job that is queued stays a normal accepted job until it runs, and the way to drop one you no longer need is to cancel it.
OpenRouter facts are from its Batch API quickstart, read 2026-10-01. Sume facts are from Generation admission.
What does the OpenRouter window say?
The quickstart describes a 24-hour completion window, and its example batch shows completion_window: "24h". Possible statuses beyond completed include failed, expired, cancelling and cancelled; the terminal ones are completed, failed, expired and cancelled. You poll until the batch is terminal.
How do the two models compare?
| Question | OpenRouter Batch API | Sume generation jobs |
|---|---|---|
| Deadline | 24-hour completion window | No queue expiration option |
| Timed-out outcome | expired terminal status | Job stays queued until processed |
| Drop work | Batch cancelling / cancelled | Cancel the queued job |
Is queued a problem on Sume?
No. For paid generation, queued is a normal accepted state; workspace concurrency limits apply when workers move jobs into processing, not when the API accepts a valid job. The job statuses are queued, processing, completed, failed and canceled. Sume exposes queue counts and remaining capacity, not a per-job position or ETA.
How do I enforce my own deadline?
Keep the clock in your code. sync and subscribe modes wait at most 30 seconds; after that, keep polling the job id. If your deadline passes, cancel queued jobs before they start processing. Once generation has started, cancel returns 409 job_generation_already_started and the job completes or fails normally. The docs treat queue expiration as a possible future addition, so check the live OpenAPI schema before relying on it. For the full-queue case see queue_full vs concurrency full.
Sources
Related posts
More in Developers
- OpenRouter batch DELETE 409 vs Sume cancel 409 after start
OpenRouter returns 409 when you DELETE an in-flight batch. Sume returns 409 job_generation_already_started on cancel once generation starts. Handle both.
- OpenRouter batch has no results download; Sume has a URL per job
OpenRouter batch results come inline on GET /batches/:id with no download endpoint. Sume returns a result_url per job and a batch result read over MCP.
- OpenRouter batch results kept 30 days; Sume media URLs don't expire
OpenRouter deletes batch inputs and results 30 days after creation, then returns 410 Gone. Sume job results use durable media.sume.com URLs that do not expire.
- OpenRouter batch statuses vs Sume job statuses mapped
OpenRouter batches go validating, in_progress, finalizing, completed. Sume jobs go queued, processing, then completed, failed or canceled (one L). Table.
Written by Sume