Grok Imagine Video v1.5 image-to-video
Model ID xai/grok-imagine-video-v1.5/image-to-video
Overview
Important: Native synchronized audio is generated automatically. Audio toggles, uploaded audio, seed and last-frame control are not supported.
Endpoint
POST /v1/video/generations
Authentication
Authorization: Bearer <AIAPIAIAPI_API_KEY>
Request Body
| Parameter | Type | Required | Nullable | Default | Constraints | Description |
|---|---|---|---|---|---|---|
model | string | Yes | No | - | values: xai/grok-imagine-video-v1.5/image-to-video | Model ID used to route the request. |
prompt | string | Yes | No | - | - | Text prompt describing the desired output. |
image | string | Yes | No | - | accepts: HTTPS URL, Base64 data URI | Primary input or first-frame image; accepts an HTTPS URL or Base64 data URL. |
duration | integer | No | No | `8` | range: 1-15 | Generated video duration in seconds. |
resolution | string | No | No | `720p` | values: 480p, 720p, 1080p | Output video resolution. |
aspect_ratio | string | No | No | - | values: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3 | Omit to preserve the input image's aspect ratio. Explicit values stretch the image. |
model
Type: string · Required: Yes · Nullable: No
Model ID used to route the request.
prompt
Type: string · Required: Yes · Nullable: No
Text prompt describing the desired output.
image
Type: string · Required: Yes · Nullable: No
Primary input or first-frame image; accepts an HTTPS URL or Base64 data URL.
duration
Type: integer · Required: No · Nullable: No
Generated video duration in seconds.
resolution
Type: string · Required: No · Nullable: No
Output video resolution.
aspect_ratio
Type: string · Required: No · Nullable: No
Omit to preserve the input image's aspect ratio. Explicit values stretch the image.
Request Example
curl --request POST \
--url https://aiapiaiapi.com/v1/video/generations \
--header 'Authorization: Bearer $AIAPIAIAPI_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "xai/grok-imagine-video-v1.5/image-to-video",
"prompt": "A cinematic camera movement through a forest",
"image": "https://example.com/reference.jpg",
"duration": 8,
"resolution": "720p"
}'JSON
{
"model": "xai/grok-imagine-video-v1.5/image-to-video",
"prompt": "A cinematic camera movement through a forest",
"image": "https://example.com/reference.jpg",
"duration": 8,
"resolution": "720p"
}Response
{
"id": "vid_01K2ABC123",
"object": "video.generation",
"model": "xai/grok-imagine-video-v1.5/image-to-video",
"status": "queued",
"progress": null,
"outputs": [],
"created_at": 1786960800,
"started_at": null,
"completed_at": null,
"error": null
}Task Status
Use the id from the create response as task_id:
GET /v1/video/generations/{task_id}
{
"id": "vid_01K2ABC123",
"object": "video.generation",
"model": "xai/grok-imagine-video-v1.5/image-to-video",
"status": "completed",
"progress": 100,
"outputs": [
{ "type": "video", "url": "https://cdn.example.com/videos/vid_01K2ABC123.mp4" }
],
"created_at": 1786960800,
"started_at": 1786960805,
"completed_at": 1786960900,
"error": null
}Error Responses
Validation errors return HTTP 400 with a stable error code.
{
"error": {
"type": "invalid_request_error",
"code": "unsupported_value",
"message": "The parameter value is not supported by this model.",
"param": "duration"
}
}Documentation Index
Fetch the complete documentation index at:
https://aiapiaiapi.com/llms.txt
Use this file to discover all available API documentation.