Grok Video
The Grok video series currently provides two integration methods: OpenAI-compatible/v1/videos (primarily multipart/form-data), and the unified video /v1/video/* and /v1/video/query (JSON).
OpenAI Format
UsePOST /v1/videos to submit and GET /v1/videos/{task_id} to query, with support for derivative capabilities such as remix, extend, and extensions.
Grok Video Generation
POST /v1/videos, submit Grok video tasks via multipart.Video Remix
POST /v1/videos/{video_id}/remix, perform a remix based on the original task.Video Extend
POST /v1/videos/{video_id}/extend, extend the video from a specified timestamp.Video Extensions
POST /v1/videos/extensions, reference the original task via video.url for extension.Grok Task Query
GET /v1/videos/{task_id}, query an OpenAI-style video object.Supported Models (OpenAI Format)
| Model | Description | Duration Rule |
|---|---|---|
grok-video-3 | Standard version, supports text-to-video, first frame, first and last frame, and reference-based video generation | As passed in the request |
grok-video-3-pro | Pro version | Fixed 10s |
grok-video-3-max | Max version | Fixed 15s |
Unified Video
UsePOST /v1/video/create to create tasks, and support derivative capabilities such as POST /v1/video/remix, POST /v1/video/extend, and POST /v1/videos/extensions; query via GET /v1/video/query?id=.
Create Video
POST /v1/video/create, submit Grok tasks in the unified video format.Video Remix
POST /v1/video/remix, pass task_id in the body.Video Extend
POST /v1/video/extend, pass task_id and start_time in the body.Video Extensions
POST /v1/videos/extensions, set video.url in the body to the original task ID.Query Task
GET /v1/video/query, query status and results by task id.Common Capabilities (Unified Video)
| Capability | Parameter Method | Description |
|---|---|---|
| Text-to-video | images: [] | Text prompt only |
| First and last frame | images with 2 images in order | First frame + last frame |
| Multi-image reference | Multiple images + @imgN | Reference the corresponding images in prompt |
Comparison
| Item | OpenAI Format | Unified Video |
|---|---|---|
| Create | POST /v1/videos | POST /v1/video/create |
| Remix | POST /v1/videos/{video_id}/remix | POST /v1/video/remix (task_id) |
| Extend | POST /v1/videos/{video_id}/extend | POST /v1/video/extend (task_id) |
| Extensions | POST /v1/videos/extensions | POST /v1/videos/extensions (video.url) |
| Query | GET /v1/videos/{task_id} | GET /v1/video/query?id= |
| Request format | multipart/form-data | JSON |
| Reference image | input_reference | images |
| Aspect ratio | aspect_ratio | aspect_ratio |
| Resolution | size (720P / 1080P) | size (720P / 1080P) |
| Duration | seconds | duration (default 10, supports 6/10/15) |
Parameter Constraints (Common to Both)
| Field | Available Values | Description |
|---|---|---|
aspect_ratio | 16:9, 9:16, 2:3, 3:2, 1:1 | The unified video docs cover the full set of ratios; the OpenAI format currently commonly uses 2:3, 3:2, 1:1 |
size | 720P, 1080P | Resolution specifications |