/v1/videos id and generation_id are one Sume job id: store one

On Sume the id and generation_id in a /v1/videos poll are the same job id, unlike OpenRouter's two ids. Store one and reuse it on /v1/jobs routes.

4 min readSume
All posts

In a Sume /v1/videos poll response, id and generation_id carry the same value: the Sume job id. OpenRouter has two different ids. Sume has one, so you only need to store one string per generation.

The poll response

A completed poll response in the Sume docs looks like this.

{
  "id": "job_01HXYZ",
  "generation_id": "job_01HXYZ",
  "polling_url": "https://api.sume.com/v1/videos/job_01HXYZ",
  "status": "completed",
  "model": "seedance-2",
  "unsigned_urls": ["https://api.sume.com/v1/videos/job_01HXYZ/content?index=0"],
  "usage": { "cost": 0.25, "is_byok": false }
}

Where the same id works

The same id works on other Sume routes. The table shows where to read the same job.

Routes that read one Sume video job, read 2026-10-05
RouteShapeUse it for
GET /v1/videos/{id}Bare OpenRouter-shaped objectStatus, unsigned_urls, usage.cost
GET /v1/videos/{id}/content?index=0Redirect to the artifact URLDownload the video
GET /v1/jobs/{id}/statusNormal Sume { data } envelopeStatus in the Sume job format
GET /v1/jobs/{id}/resultNormal Sume { data } envelopeResult in the Sume job format

What to store

Pick a single column in your database. Store the id from the 202 submit response, which is the same string you get back as generation_id later. If your code was written against OpenRouter and keeps two columns, it still works: both columns will hold the same value.

The submit response (202) carries id, polling_url, status and model. When the job was submitted with sume/auto, model echoes sume/auto.

Retries

POST /v1/videos also accepts an Idempotency-Key header. Send the same key and body on a retry after a network error so that it does not queue a second generation. Reusing a key with a different body returns a 409 conflict.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume