AIAPIAIAPI API

Grok Imagine Video v1.5 reference-to-video

Model ID xai/grok-imagine-video-v1.5/reference-to-video

Overview

xAI · reference-to-video

Important: Native synchronized audio is generated automatically. Audio toggles, uploaded audio, seed and last-frame control are not supported.

Important: Optional extra.voice_ids accepts up to three xAI preset voice identifiers; custom or uploaded voices are not supported.

Endpoint

POST /v1/video/generations

Authentication

Authorization: Bearer <AIAPIAIAPI_API_KEY>

Request Body

ParameterTypeRequiredNullableDefaultConstraintsDescription
modelstringYesNo-values: xai/grok-imagine-video-v1.5/reference-to-videoModel ID used to route the request.
promptstringYesNo--Text prompt describing the desired output.
imagesarrayYesNo-min_items: 1; max_count: 7; accepts: HTTPS URL, Base64 data URI1–7 reference images. Use zero-based <IMAGE_N> tags in the prompt.
durationintegerNoNo`8`range: 1-15Generated video duration in seconds.
resolutionstringNoNo`720p`values: 480p, 720pOutput video resolution.
aspect_ratiostringNoNo`16:9`values: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3Output video aspect ratio.

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.

images

Type: array · Required: Yes · Nullable: No

1–7 reference images. Use zero-based <IMAGE_N> tags in the prompt.

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

Output video aspect ratio.

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/reference-to-video",
      "prompt": "A cinematic camera movement through a forest",
      "images": ["https://example.com/reference.jpg"],
      "duration": 8,
      "resolution": "720p"
    }'

JSON

{
  "model": "xai/grok-imagine-video-v1.5/reference-to-video",
  "prompt": "A cinematic camera movement through a forest",
  "images": ["https://example.com/reference.jpg"],
  "duration": 8,
  "resolution": "720p"
}

Response

{
  "id": "vid_01K2ABC123",
  "object": "video.generation",
  "model": "xai/grok-imagine-video-v1.5/reference-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/reference-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.