OpenRouter video statuses vs Sume: cancelled or canceled?
OpenRouter lists four video job states; Sume's /v1/videos lists five including cancelled, while /v1/jobs spells it canceled. Both status sets side by side.

Sume's /v1/videos polling adds a fifth state, cancelled, to the four OpenRouter lists, and the same job read from /v1/jobs/{id}/status uses queued, processing and the spelling canceled. Write your client to accept both vocabularies.
What states does each side list?
OpenRouter's page names four possible states. Sume's video docs list five on the polling URL and a separate five on the jobs surface. The rows pair states by meaning; the docs do not publish an explicit mapping between the two Sume lists.
| OpenRouter page | Sume /v1/videos | Sume /v1/jobs |
|---|---|---|
| pending | pending | queued |
| in_progress | in_progress | processing |
| completed | completed | completed |
| failed | failed | failed |
| not listed | cancelled | canceled |
Why two vocabularies?
Sume's /v1/videos follows the OpenRouter wire, and the docs say the same job is also visible at GET /v1/jobs/{id}/status and /result. The jobs page lists canceled with one l as terminal, next to queued and processing.
How should my client stop polling?
Treat completed, failed, cancelled and canceled all as terminal, and fetch a result only after completed. The docs say to use backoff and not to resubmit the paid request because a local process timed out.
Does Sume show a queued state on /v1/videos?
The video page lists pending for a queued job. Read Jobs and results for the queue model and the video docs for the job table.
What happens to the money when a job is cancelled?
The core workflow docs state that Sume reserves the estimated cost at submit and refunds on failure or cancellation before capture. A queued job that has not started can be canceled with POST /v1/jobs/job_123/cancel.
Once generation has started, cancel returns a 409 and the job completes or fails normally, so do not assume a cancel request always ends in canceled.
Sources
Related posts
More in Developers
- video.generation.completed on Sume? The webhook event map
OpenRouter sends video.generation.* events; Sume sends job.completed, job.failed or job.canceled with a signed body. What to change in a receiver.
- Paper edit by API: build a rough cut from transcript lines
Premiere 26.5 added Paper Edit. To do the same by API, transcribe with sentence segments, pick the lines you keep, then render those ranges as a Timeline.
- Pipedream 30-second timeout: call Sume in async mode, not sync
Pipedream HTTP workflows time out at 30 seconds by default. Sume sync waits up to 30 seconds too, so submit async and take the result by webhook or poll.
- Pipedream 512KB body limit and Sume run webhook payloads
Pipedream limits HTTP trigger bodies to 512KB by default. Sume run webhooks can carry up to 1 MiB, so plan for a slim relay or the result_url fetch.
Written by Sume