Grok Imagine Video 1.5 API
Generate Grok Imagine Video 1.5 clips from your own code. One endpoint per mode (text-to-video, image-to-video and reference-to-video), any whole-second duration from 1 to 15 seconds, up to 1080p. Several providers resell this model at very different prices; every request is priced across them and runs on the cheapest one that supports your settings, with no provider parameter to manage.
84% less than the priciest provider (6 compared). Same model, same output.
Quickstart
Async by design: submit a generation, get a run id back instantly, poll until it completes (or pass a callbackUrl). Each mode is its own endpoint.
Grok Imagine Video 1.5 Text to Video API
1 — Start a generation
curl -X POST https://app.scenetra.com/api/v1/generate/grok-imagine-video-1.5-t2v \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"Concert poster comes alive: neon letters flicker on, a synth player silhouetted in magenta haze, slow push-in, retro synthwave score","resolution":"720p","duration":"6"}'Response (202)
{
"runId": "run_abc123",
"status": "PENDING",
"model": "grok-imagine-video-1.5-t2v",
"estimatedCredits": 135,
"statusUrl": "/api/v1/runs/run_abc123"
}2 — Poll until COMPLETED (every 2-5 seconds)
curl https://app.scenetra.com/api/v1/runs/run_abc123 \
-H "Authorization: Bearer YOUR_API_KEY"Response
{
"runId": "run_abc123",
"status": "COMPLETED",
"progress": { "completed": 1, "total": 1 },
"outputs": [
{ "type": "video", "url": "https://images.scenetra.com/..." }
],
"error": null,
"estimatedCredits": 135
}Request fields
| Field | Type | Description | Default |
|---|---|---|---|
| prompt* | string | Describe the video: subject, motion, camera work, and audio direction. Native synchronized audio is generated in the same pass. | — |
| resolution | string | Output resolution. 480p is the budget rung; 1080p is the premium rung.480p · 720p · 1080p | 720p |
| aspect_ratio | string | Aspect ratio of the generated video. 'auto' lets the model choose from your prompt.auto · 16:9 · 4:3 · 3:2 · 1:1 · 2:3 · 3:4 · 9:16 | auto |
| duration | string | Length of the generated video in seconds (1-15). Billed per second.1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 · 10 · 11 · 12 · 13 · 14 · 15 | 6 |
| callbackUrl | string (https URL) | Optional. When the run finishes (completed or failed), we POST the final run status to this URL — same shape as the poll response, plus model, params, and chargedCredits. Best-effort; polling remains the source of truth. | |
Unknown fields are rejected with a helpful 400. Media fields take https URLs. There is no provider parameter — every run is routed to the cheapest capable provider automatically.
Grok Imagine Video 1.5 Image to Video API
1 — Start a generation
curl -X POST https://app.scenetra.com/api/v1/generate/grok-imagine-video-1.5-i2v \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"Slow push-in, the subject turns to camera and smiles, soft wind in the hair, gentle ambient sound","image_url":"https://example.com/start-frame.jpg","resolution":"720p","duration":"6"}'Response (202)
{
"runId": "run_abc123",
"status": "PENDING",
"model": "grok-imagine-video-1.5-i2v",
"estimatedCredits": 135,
"statusUrl": "/api/v1/runs/run_abc123"
}2 — Poll until COMPLETED (every 2-5 seconds)
curl https://app.scenetra.com/api/v1/runs/run_abc123 \
-H "Authorization: Bearer YOUR_API_KEY"Response
{
"runId": "run_abc123",
"status": "COMPLETED",
"progress": { "completed": 1, "total": 1 },
"outputs": [
{ "type": "video", "url": "https://images.scenetra.com/..." }
],
"error": null,
"estimatedCredits": 135
}Request fields
| Field | Type | Description | Default |
|---|---|---|---|
| prompt* | string | Describe the video: subject, motion, camera work, and audio direction. Native synchronized audio is generated in the same pass. | — |
| image_url* | string (https URL) | Starting frame. The video animates from this image. | — |
| resolution | string | Output resolution. 480p is the budget rung; 1080p is the premium rung.480p · 720p · 1080p | 720p |
| duration | string | Length of the generated video in seconds (1-15). Billed per second.1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 · 10 · 11 · 12 · 13 · 14 · 15 | 6 |
| callbackUrl | string (https URL) | Optional. When the run finishes (completed or failed), we POST the final run status to this URL — same shape as the poll response, plus model, params, and chargedCredits. Best-effort; polling remains the source of truth. | |
Unknown fields are rejected with a helpful 400. Media fields take https URLs. There is no provider parameter — every run is routed to the cheapest capable provider automatically.
Grok Imagine Video 1.5 Reference to Video API
1 — Start a generation
curl -X POST https://app.scenetra.com/api/v1/generate/grok-imagine-video-1.5-ref2v \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"@Image1 walks through a sunlit market holding @Image2, handheld follow shot, crowd murmur and distant music","reference_image_urls":["https://example.com/person.jpg","https://example.com/product.jpg"],"resolution":"480p","duration":"6"}'Response (202)
{
"runId": "run_abc123",
"status": "PENDING",
"model": "grok-imagine-video-1.5-ref2v",
"estimatedCredits": 72,
"statusUrl": "/api/v1/runs/run_abc123"
}2 — Poll until COMPLETED (every 2-5 seconds)
curl https://app.scenetra.com/api/v1/runs/run_abc123 \
-H "Authorization: Bearer YOUR_API_KEY"Response
{
"runId": "run_abc123",
"status": "COMPLETED",
"progress": { "completed": 1, "total": 1 },
"outputs": [
{ "type": "video", "url": "https://images.scenetra.com/..." }
],
"error": null,
"estimatedCredits": 72
}Request fields
| Field | Type | Description | Default |
|---|---|---|---|
| prompt* | string | Describe the video: subject, motion, camera work, and audio direction. Native synchronized audio is generated in the same pass. | — |
| reference_image_urls* | string[] (https URLs) | 1-7 reference images contributing people, objects, or styles. Cite them in the prompt as @Image1, @Image2 and so on. | — |
| resolution | string | Output resolution. 480p is the budget rung; 1080p is the premium rung.480p · 720p | 480p |
| aspect_ratio | string | Aspect ratio of the generated video. 'auto' lets the model choose from your prompt.auto · 16:9 · 4:3 · 3:2 · 1:1 · 2:3 · 3:4 · 9:16 | auto |
| duration | string | Length of the generated video in seconds (1-15). Billed per second.1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 · 10 · 11 · 12 · 13 · 14 · 15 | 6 |
| callbackUrl | string (https URL) | Optional. When the run finishes (completed or failed), we POST the final run status to this URL — same shape as the poll response, plus model, params, and chargedCredits. Best-effort; polling remains the source of truth. | |
Unknown fields are rejected with a helpful 400. Media fields take https URLs. There is no provider parameter — every run is routed to the cheapest capable provider automatically.
Good to know
Billing
Runs bill your account credits at provider cost with 0% markup. The submit response includes the credit estimate; failed generations are refunded automatically. Add ?dryRun=1 to get the estimate without running anything.
Errors
Errors are always { "error": { "code", "message" } } with stable codes: unauthorized, model_not_available, invalid_parameter, insufficient_credits, rate_limited. A failed run is not an HTTP error — poll responses report status: "FAILED" with the reason.
Grok Imagine Video 1.5 API FAQ
Which modes and resolutions does the Grok Imagine Video 1.5 API support?+
Three endpoints: text-to-video (grok-imagine-video-1.5-t2v), image-to-video (grok-imagine-video-1.5-i2v) and reference-to-video (grok-imagine-video-1.5-ref2v). Text and image modes render at 480p, 720p or 1080p; reference-to-video at 480p or 720p. Duration is any whole number of seconds from 1 to 15.
Is this the official xAI API?+
No. Scenetra routes each call to a provider that serves Grok Imagine Video 1.5 (the same model and output) and bills you in Scenetra credits. You get one key and one request format for Grok and every other model we serve.
How much does the Grok Imagine Video 1.5 API cost?+
Billed per second of output, in credits from your Scenetra balance at provider cost with no markup. With default settings (720p, 6 seconds), a text to video run is estimated at about 135 credits. The submit response returns the estimate for your exact settings, and adding ?dryRun=1 prices a request without running it.
Which provider runs my request?+
The cheapest one that supports your settings, chosen per request. There is no provider parameter: the same Grok Imagine Video 1.5 request is priced across every provider we route to and runs on the lowest quote.
Do failed generations cost credits?+
No. Credits are reserved when you submit and refunded automatically if the run fails. A failed run is not an HTTP error: polling returns status FAILED with the reason.
Do I have to poll, or can I get a webhook?+
Both work. Pass callbackUrl and we POST the final run status to it when the run completes or fails. Delivery is best-effort, so polling GET /api/v1/runs/{runId} remains the source of truth.