grok-video
Grok Imagine 1.5 (xAI) is async video with audio included by default.
Auth: Authorization: Bearer sk-… from the Console. Use this model id exactly in the model field.
Only parameters relevant to grok-video are listed below.
| Field | Type | Req | Description |
|---|---|---|---|
| model | string | ✓ | grok-video |
| prompt | string | ✓ | Video description (Chinese or English) |
| size | string | — | 16:9 | 9:16 | 1:1 | 3:2 | 2:3. Alias: aspect_ratio. |
| quality | string | — | 480p (default) | 720p |
| duration | integer | — | 6–30 seconds, integer only. Default 6. |
| image_urls | array | — | Public HTTPS URLs for image-to-video, max 7 |
| Field | Type | Req | Description |
|---|---|---|---|
| Audio | — | — | Grok Imagine 1.5 outputs video with sound by default. No with_audio / generate_audio field. Billed per second regardless. |
curl https://api.lumeapi.site/v1/videos \
-H "Authorization: Bearer sk-…" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-video",
"prompt": "Gentle breeze moves the leaves, cinematic depth of field",
"image_urls": ["https://cdn.example.com/first-frame.jpg"],
"size": "16:9",
"duration": 6,
"quality": "480p"
}'All requests go to https://api.lumeapi.site/v1 with Authorization: Bearer sk-…
(1) POST /v1/videos → save id from response. (2) GET /v1/videos/{id} every 5–15s until status is completed or failed. (3) On completed, GET /v1/videos/{id}/content to download MP4.
Poll and download with the id returned by POST /v1/videos (e.g. task_Fk6QrnX6…). This is the only task id your client needs.
Poll every 5–15 seconds with back-off. Typical completion: 30s–5min depending on model. Stop after 15–30 minutes if still not completed.
When status=failed, read error.message. Do not call /content. Submit a new POST /v1/videos to retry.
Balance is debited when POST /v1/videos returns 200. Poll until completed or failed before treating the job as successful.
| Status | Meaning | Action |
|---|---|---|
| queued | Job accepted, waiting to start | Keep polling GET /v1/videos/{id} |
| in_progress | Video is being generated | Keep polling; progress may increase |
| completed | Ready to download | GET /v1/videos/{id}/content |
| failed | Generation failed | Read error.message; submit a new job to retry |