luma-ray-3-2defaultLuma Ray 3.2 API — how to connect and pay
Luma Ray 3.2 — the new Luma Ray generation (successor of Ray 2): cinematic silent video from text or from a first and last frame, seamless loop. 540p, 720p or 1080p; 5 seconds, and 10 seconds from text. 6 aspect ratios. Priced per clip by resolution and length.
Channel comparison
last 7 days
| Channel | Price |
|---|---|
Canvas luma-ray-3-2default | from $0.20 per clip |
Build the result you need
luma-ray-3-2What is Luma Ray 3.2
Luma Ray 3.2 — the new Luma Ray generation (successor of Ray 2): cinematic silent video from text or from a first and last frame, seamless loop. 540p, 720p or 1080p; 5 seconds, and 10 seconds from text. 6 aspect ratios. Priced per clip by resolution and length.
Contract at a glance
- Input
- text, image
- Output
- video
- Mode
- async (job + polling)
- Status polling
- every 3 s · up to 600 s
Strengths
- Pricing: per clip
- Inputs: text, image
- 3 configurable options
- One API key for media generation
Where it is used
- Social media clips
- Promos and title sequences
- Still-image animation
- Storyboards and animatics
API contract
Generation runs asynchronously: create a job, then poll its status until completion.
- Create job
- POST /api/media/generate
- Check status
- GET /api/media/jobs/{jobId}
- Input
- text, image
- Output
- video
- Polling
- every 3 s · up to 600 s
- Authentication
- Authorization: Bearer sk-pv-…
Example request
Pass your key in the Bearer header. The API returns jobId for polling the status.
curl -sS https://getvibeapi.com/api/media/generate \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
--data-binary '{"model":"luma-ray-3-2","prompt":"a beautiful landscape","opts":{"resolution":"720p","duration":"5","aspect_ratio":"16:9","loop":false}}'JavaScript
const response = await fetch('https://getvibeapi.com/api/media/generate', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.GETVIBE_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"model": "luma-ray-3-2",
"prompt": "a beautiful landscape",
"opts": {
"resolution": "720p",
"duration": "5",
"aspect_ratio": "16:9",
"loop": false
}
}),
});
if (!response.ok) throw new Error(`GetVibe API: ${response.status}`);
const { jobId } = await response.json();
console.log(jobId);API request parameters
Parameters for requests to Luma Ray 3.2 via the GetVibe API.
promptreq.image_urlresolutiondurationaspect_ratioend_image_urlloopimage_file_idimage_base64| Parameter | Type | Values | Default | Price |
|---|---|---|---|---|
promptreq. | text | text description | required | — |
image_url | URL | Public image URL | — | — |
resolution | option selection | 540p · 720p (default) · 1080p | 720p | 540p: $0.20, 720p: $0.40, 1080p: $1.60 |
duration | option selection | 5 (default) · 10 | 5 | 5: $0.40, 10: $1.20 |
aspect_ratio | option selection | 16:9 (default) · 9:16 · 4:3 · 3:4 · 1:1 · 21:9 | 16:9 | Included in the base price |
end_image_url | text / number | any value | — | Included in the base price |
loop | yes/no | Yes · No (default) | No | Included in the base price |
image_file_id | text | Alternative to image_url: the id of your own file from POST /v1/files (file-pv-…) | — | Included in the base price |
image_base64 | text | Alternative to image_url: the file inline, as base64 or a data: URI | — | Included in the base price |
Request: POST https://getvibeapi.com/api/media/generate. Prices in USD.
Price of Luma Ray 3.2
The cost of Luma Ray 3.2: from $0.20 per clip. The price is calculated dynamically at the current exchange rate, and the final charge is shown in the API response (priceRub). Payment in USD, no subscriptions.
What a default request costs
With no parameters sent, the request uses these values: Duration — 5, Resolution — 720p, Frame format — 16:9, Seamless loop — No. That request costs $0.40.
“from $0.20” is the cheapest parameter set, not the price of a default request.
Channels and prices for every parameter combination
For every channel, the price of every parameter combination. It is exactly the amount a successful generation is charged, and the same figure as in the machine-readable table linked below.
Canvasluma-ray-3-2from $0.20exact prices
| Resolution \ Duration, sec | 5 s | 10 s |
|---|---|---|
| 540p | $0.20 | $0.60 |
| 720p | $0.40 | $1.20 |
| 1080p | $1.60 | $4.80 |
Every combination as JSON: /api/media/price-table?model=luma-ray-3-2
README
The machine-readable contract for Luma Ray 3.2 contains the request schema, operations, limits, polling and response examples.
# Luma Ray 3.2
Public model: luma-ray-3-2
Create job: POST /api/media/generate
Check status: GET /api/media/jobs/{jobId}
## Input parameters
- `prompt` (text): text description; default: required
- `image_url` (URL): Public image URL; default: —
- `resolution` (option selection): 540p · 720p (default) · 1080p; default: 720p
- `duration` (option selection): 5 (default) · 10; default: 5
- `aspect_ratio` (option selection): 16:9 (default) · 9:16 · 4:3 · 3:4 · 1:1 · 21:9; default: 16:9
- `end_image_url` (text / number): any value; default: —
- `loop` (yes/no): Yes · No (default); default: No
- `image_file_id` (text): Alternative to image_url: the id of your own file from POST /v1/files (file-pv-…); default: —
- `image_base64` (text): Alternative to image_url: the file inline, as base64 or a data: URI; default: —
## Public variants
- `luma-ray-3-2`: CanvasFAQ about the Luma Ray 3.2 API
How much does Luma Ray 3.2 cost?
The price of Luma Ray 3.2: from $0.20 per clip. The price is calculated dynamically at the current exchange rate.
Is it compatible with the OpenAI SDK?
Yes, the API is fully OpenAI-compatible. Just change base_url to https://getvibeapi.com/v1 and set your key — the rest of the code stays the same.