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's June 9, 2026 post says Ray3.2 is available as an API for the first time, built to fit existing tech stacks and render farms. If your farm drives video jobs on Sume instead, the equivalent wiring is three fields: callback_url for the finish notification, Idempotency-Key for safe retries, and x-sume-request-id for your logs.
Luma's wording is from its launch post; Sume's from Video generation and Errors, read 2026-10-01. Luma's post does not describe its webhook or retry behavior, so none is compared here.
What does Luma say about pipelines?
The post says there is "no middleware to glue together" and that the API is "built for pipelines, not just previews". It lists up to 16 keyframes in a clip and clips up to 20 seconds at 1080p. Those are Luma's figures; Sume's catalog limits are separate, and you read them per model.
How do I get a finish notification on Sume?
Pass callback_url in the request body. It must be HTTPS, and Sume POSTs to it when the job completes. The payload is signed: Sume signs the raw JSON body and sends x-sume-webhook-timestamp and x-sume-webhook-signature headers, so verify before trusting it (see signed webhooks for video runs). Once the job is completed, the unsigned_urls array lists the files to download.
What does each field give a render farm?
| Field | Purpose |
|---|---|
callback_url | HTTPS webhook when the job completes |
Idempotency-Key | Makes retries safe; a replay returns the original job |
unsigned_urls | Output URLs on a completed job |
x-sume-request-id | Carried on every response; quote it when you write in |
What should a worker store per job?
Store the job id, your idempotency key and the x-sume-request-id from the submit response. If a worker crashes after submitting, resend the same key and you get the original job back rather than a second paid one. The errors doc asks you to quote the request id and the error.code, and not to send API keys, signing secrets or raw media URLs. For how the ids differ, see request id, job id and run id.
Sources
Related posts
- Luma Ray 3.2 API: 16 keyframes, and Sume's two-frame route
- Idempotency keys for AI video APIs: retry without paying twice
- Signed webhooks for Sume video runs: events, retries, verification
- Sume webhook retry schedule: 10 attempts, then what?
- Sume request_id vs job_id vs run_id: which ID to store and quote
More in Developers
- 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.
- Mastra MCP 2.0 is 2026-07-28 only: which line for Sume?
@mastra/mcp 2.0.0 drops the legacy handshake and speaks MCP 2026-07-28 only. The Sume server defaults to 2025-11-25, so pin the version you test.
- Nano Banana batch API: Gemini's 24 h batch vs Sume async jobs
Gemini's Batch API trades up to 24 hours of turnaround for higher rate limits. Sume has no batch tier for images: send async or webhook jobs per request.
Written by Sume