Luma API X-Request-Id vs Sume x-sume-request-id
Luma's X-Request-Id echoes your header or is generated. Sume sends x-sume-request-id on every response; quote it, plus error.code, when you contact support.

On Luma's Agents API, X-Request-Id is on every response and echoes the X-Request-Id you sent, or a server-generated UUID if you sent none. On Sume the header is x-sume-request-id, and the docs say every response carries it. Quote that value, with the error.code, when you ask for help.
Luma's details are from its rate-limits guide; Sume's from Errors and Generation admission, read 2026-10-01. The Sume docs I read do not say whether Sume echoes a caller-supplied request id, so do not rely on that.
What do Luma's two response headers mean?
Luma's guide lists X-Request-Id as a unique request identifier that echoes your header if provided, and X-API-Version as the API version that processed the request, for example 2026-04-01. Both appear on success and error. The X-RateLimit-* headers appear on successful POST /v1/generations responses, and a 429 adds Retry-After.
What is the Sume equivalent?
| Question | Luma Agents API | Sume |
|---|---|---|
| Header on every response | X-Request-Id | x-sume-request-id |
| Echoes a caller value | Yes, if you send X-Request-Id | Not stated in the docs |
| Rate-limited response | 429 with Retry-After | 429 rate_limited; back off using retry-after |
| Safe retry of a create | Not covered in the guide | Idempotency-Key; replay returns the original job |
What should I send to support?
Sume's errors doc says every response carries x-sume-request-id and every receipt carries request_id; quote them, the run id and the error.code. It also says not to send API keys, signing secrets or raw media URLs. See request id, job id and run id for which id is which.
Does a 429 or a failure cost money?
The generation-admission doc describes rate_limited as API request volume exceeding an abuse-protection limit, with a retry-after to follow when present. It also says failed jobs and failed queue admission release or refund the reservation where applicable. So log the request id on every failure, then retry with the same Idempotency-Key for create calls.
Sources
Related posts
More in Developers
- Luma Ray 3.2 extend with a generation id vs Sume per-clip jobs
Luma extends video from one prior generation id as start or end frame. Sume docs describe frame_images with first_frame or last_frame, a new job per clip.
- Ray 3.2 API for render farms: the Sume callback_url pattern
Luma pitches the Ray3.2 API for pipelines and render farms. On Sume, wire an async video job with callback_url, Idempotency-Key and a request id to log.
- Luma Ray 3.2 video edit ignores aspect_ratio: Sume video_url edit
On Luma Ray 3.2 a video edit takes its aspect ratio from the source and ignores the field; reframing needs a target. Sume edits through video_url.
- Make a voice louder than the music: gain_db and duck_db ranges
In Timeline 1.0, raise the voice with audio.gain_db (-60 to 12) and lower the music bed with soundtrack.duck_db (0 to 20). Ranges and refusal codes.
Written by Sume