Luma Ray 2 to Ray 3.2 migration: the field map and what changes
Luma is retiring Ray 3, Ray 2, Ray 2 Flash and more for ray-3.2 on one /v1/generations endpoint. The field map, the poll-only change, and Sume's contrast.

Luma's migration guide says Ray 3, Ray 2, Ray 2 Flash, Ray 2 Relaxed, Ray 3 Reference and Ray 3 Refiner are being retired, and that requests move to model: "ray-3.2" on one endpoint, https://agents.lumalabs.ai/v1/generations. The biggest behavior change is that results are poll-based, not callback-based. Sume's video API is one POST /v1/videos surface, and it also supports a callback_url.
Luma's side is from its migration guide and quickstart, read 2026-10-03. Sume's side is from the video generation docs.
What does Luma say is being retired?
The guide names six legacy models. It says legacy requests keep working during a notice period and tells you to start early enough to test production workflows before cutting over. It does not print dates: specific retirement dates arrive in deprecation notices sent to API customers, so check your inbox rather than this page for a deadline.
What is the field-by-field map?
Luma's guide gives a mapping from the legacy shape to the new one. The new API keys begin with luma-api- and the guide suggests storing one as LUMA_AGENTS_API_KEY.
| Legacy | Ray 3.2 |
|---|---|
| Any Ray model identifier | model: ray-3.2 |
| Route decides the operation | type: video, video_edit or video_reframe |
| Top-level resolution and duration | Nested under a video object |
| keyframes.frame0 and frame1 | video.start_frame and video.end_frame |
| Modify media.url | source object with url and media_type video/mp4 |
| Callback-based results | Poll GET /v1/generations/{id} |
What does the poll-only change cost you?
If your Luma integration today receives a webhook when a generation finishes, the migration removes that path: the guide lists the new flow as poll-based. You need a poller, or a queue that polls on your behalf.
Sume offers both. A video job accepts a callback_url that must be HTTPS, and Sume POSTs to it once the job is terminal, signing the raw JSON body with x-sume-webhook-timestamp and x-sume-webhook-signature. The jobs docs advise keeping polling as a backup to the webhook.
What would a move off the legacy shape look like on Sume?
Sume does not carry Luma models in the docs read for this post, so this is not a drop-in swap. It is a comparison of shapes: where Luma now nests resolution and duration in a video object, Sume keeps resolution, duration and aspect_ratio at the top of the request. Where Luma uses start_frame and end_frame, Sume uses a frame_images array with a frame_type of first_frame or last_frame.
Whichever way you go, record the exact model id per shot, as covered in the post on logging model ids after Runway's removals. Retirements make old ids un-reproducible, and a log is the only record of what made a clip.
What should a migration checklist include?
Luma's guide says a notice period exists, so the cutover can be staged: run both shapes side by side on a slice of traffic, compare, then flip.
- Replace each Ray model identifier with
ray-3.2and settypetovideo,video_editorvideo_reframe. - Move resolution and duration into the nested
videoobject. - Rename
frame0andframe1keyframes tovideo.start_frameandvideo.end_frame. - Replace callback handlers with a poller on
GET /v1/generations/{id}. - Swap in a
luma-api-key and rotate the old one out. - Re-run your regression prompts, since a new model changes the output, and save the model id with each clip.
Sources
Related posts
More in Developers
- MAI-Transcribe-2-Streaming Realtime API: events vs Sume job URLs
Microsoft's streaming transcriber uses a WebSocket with delta, intermediate and commit events. Sume STT takes a file URL and returns a job. A side-by-side.
- Migrate Video 1.0 to sume/auto on POST /v1/videos, field by field
Video 1.0 is retiring soon. Which fields move, which are ignored or rejected, and the request to send on POST /v1/videos with sume/auto.
- Mix Seedance, Kling and Omni clips in one video: shared aspect ratio
16:9 and 9:16 are the aspect ratios Seedance 2.5, Kling 3 and Gemini Omni Flash 1.1 all list. Set the Timeline output to match and plan before render.
- Mixed-language script: one Sume TTS request per language, then concat
A script that switches language mid-way needs one TTS request per language on Sume. Join up to 20 parts with timeline audio at $0.01.
Written by Sume