Doc version:v1.0.0 | Last updated:2026-06-11 This platform fully supports the Grok (xAI) official video generation API. Requests and responses are transparently proxied; parameter semantics are identical to the official API.
Extension mode does not support custom aspect_ratioorresolution; output matches input video properties
Input video format: MP4 (H.264/H.265/AV1 codec)
Input video length: 2-15 seconds
POST https://platform.dataeyes.ai/grok/v1/videos/extensions| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Content-Type | string | Yes | application/json | Data exchange format |
Authorization | string | Yes | Authentication, refer to API authorization |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
model | string | Yes | grok-imagine-video | Model identifier |
prompt | string | Yes | Text prompt for video generation | |
video | string | Yes | Video URL (public URL, Base64 data URL, or file_id from xAI Files API) | |
duration | integer | No | 6 | Video duration in seconds Range:2-10 |
curl --request POST \
--url 'https://platform.dataeyes.ai/grok/v1/videos/extensions' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "grok-imagine-video",
"prompt": "A glowing crystal-powered rocket launching from the red dunes of Mars",
"video": "https://example.com/video.mp4",
"duration": 10
}'{
"request_id": "req_abc123def456"
}GET https://platform.dataeyes.ai/grok/v1/videos/{request_id}request_id.| Parameter | Type | Required | Description |
|---|---|---|---|
Authorization | string | Yes | Bearer {API_KEY} |
curl --request GET \
--url 'https://platform.dataeyes.ai/grok/v1/videos/{request_id}' \
--header 'Authorization: Bearer <token>'{
"status": "done",
"video": {
"url": "https://vidgen.x.ai/.../video.mp4",
"duration": 10,
"respect_moderation": true
},
"model": "grok-imagine-video"
}{
"status": "pending",
"model": "grok-imagine-video"
}{
"status": "failed",
"error": {
"code": "invalid_argument",
"message": "Prompt cannot be empty. Please provide a prompt."
}
}| Field | Type | Description |
|---|---|---|
status | string | Task status:pending, done, failed, expired |
video.url | string | Temporary URL of the generated video (valid 24 hours) |
video.duration | integer | Duration of the generated video (seconds) |
video.respect_moderation | boolean | Whether content passes moderation; if false, url is empty |
model | string | Model used |
error.code | string | Error code |
error.message | string | Error description |
error object with code and message fields. The possible error codes are:| Code | Meaning | Action |
|---|---|---|
invalid_argument | Invalid request input (unsupported duration, invalid image/video, prompt too long, conflicting modes, or content blocked by moderation) | Fix the request parameters or input media, then submit a new request |
permission_denied | The API key does not have permission for the requested operation | Verify API key permissions |
failed_precondition | The operation is not available for the selected model or settings | Change the model, mode, resolution, or other settings |
service_unavailable | Video generation is temporarily overloaded | Retry the request later |
internal_error | Internal service failure | Retry the request; if persistent, contact support with the request_id |
Authentication errors, missing models, and rate limits are returned synchronously as standard API errors before a video job is created.