Luma callback_url or polling: which Sume job mode matches
Luma's API docs list keyframes, loop and callback_url for ray-2. On Sume the equivalent choice is job mode: async, sync up to 30 s, subscribe or webhook.

If you used Luma's callback_url, the closest Sume setting is webhook mode on the job; if you polled Luma, use async and poll the job status. Luma's video generation docs list ray-2 and ray-flash-2, resolutions 540p, 720p, 1080p and 4K, keyframes, loop, concepts and callback_url. Sume's jobs expose four modes.
| Pattern | Luma API docs | Sume |
|---|---|---|
| Poll until done | Not covered by the page read | async mode: GET /v1/jobs/{id}/status then /result |
| Push on finish | callback_url | webhook mode |
| Wait inline | Not listed | sync mode, waits at most 30 s; subscribe is an alias of sync |
Choosing a mode
Video renders usually outlast the 30 second sync window, so sync suits short jobs and polling or webhooks suit the rest. Use webhook mode when a server can receive requests and you do not want a polling loop. Use async when the caller is a script or a laptop with no public address.
What to verify on a Sume webhook
Sume signs each delivery with HMAC SHA256 over <timestamp>.<raw_body>, sent as x-sume-webhook-signature: sume-v1=<hex>. Verify against the raw bytes, refuse to run with an empty secret, and expect redelivery: up to 10 attempts, 30 seconds apart, with a 10 second timeout on your endpoint. A redeliver endpoint exists for missed events. Details are on the webhooks page.
- Return a 2xx quickly and do the work after.
- Treat the same event arriving twice as normal.
- Keep a polling fallback for jobs with no event after your own timeout.
A caveat on the Luma side
Luma's public API docs list Ray 2, while the news page lists newer Ray3.2 and Ray3.14 releases. The docs may lag the product, so check which models your key can call before you map parameters.
Sources
Related posts
More in Developers
- Luma API callback_url vs Sume callback_url: signing and retries
Luma's video API takes a callback_url, and so does Sume's /v1/videos. What Sume's callback is signed with, how often it retries, and a Python verifier.
- MCP 2026-07-28 deprecations: SSE, sampling, roots, logging checklist
MCP 2026-07-28 deprecates Roots, Sampling and Logging and reclassifies HTTP+SSE as Deprecated, with 12 months of notice. A checklist for media servers.
- MCP OAuth without DCR: client ID metadata documents and issuer checks
MCP 2026-07-28 deprecates dynamic client registration for Client ID Metadata Documents and requires clients to validate iss. What it means for Sume.
- Python MCP SDK 2.3 subscriptions=False: a Sume wrapper that pulls
MCPServer(subscriptions=False) turns off push subscriptions in the Python SDK. A wrapper over Sume jobs can do without them by waiting in bounded slices.
Written by Sume