Skip to main content

Overview

Grok Imagine Video 1.5 creates short videos from reference images, first and last frames, timed middle keyframes, or a loop image. Use a text prompt to guide motion, camera movement, and scene changes.

Choose the Grok video endpoint

These endpoints generate new clips; neither exposes video-input editing or native video extension. Grok Imagine Video 1.5 supports dedicated first/last frames, timed keyframes, and loop images as described below. Multiple image_urls entries remain reference images, not a first/last-frame pair. xAI’s native Extend feature is a separate API capability; do not send its parameters to these APIXO endpoints. For a longer sequence assembled from separate clips, see the Grok longer-video workflow. It explains clip planning and editing, and distinguishes this workflow from native video extension.

Endpoint and authentication

Base URL:
All requests require your APIXO API key:
Submit requests also require:

Copy-paste async quickstart

This minimal request submits an image-to-video task and returns a taskId.
Successful response:
Save the taskId; you need it to poll for the final result.

Poll for result

Processing response:
Success response:
Failed response:
Parse resultJson after state becomes success:

Request body

Image-to-video

The mode field is optional on this endpoint. If omitted, APIXO uses image-to-video.

First, last, and timed middle frames

Loop video

1080p single first frame

For 1080p, use a single first-frame image. Combining first and last frames with timed middle keyframes is currently unavailable at 1080p; prefer 720p for combined frame controls. The one-reference-image limit does not mean that every frame-control combination supports 1080p. Task acceptance is not generation success: poll until state is success or failed and read failMsg if generation fails.

Parameters

string
default:"async"
Result delivery mode. Omit this field or use async for polling with statusTask, or use callback for webhook delivery.
string
Required when request_type is callback. Must be a public HTTPS URL that can receive the final task payload. See Webhooks.
object
required
Grok Imagine Video 1.5 input parameters. Provide at least one image input through a non-empty image_urls array, first_frame_url, last_frame_url, loop_url, or a non-empty keyframes array. Use a single first frame at 1080p; prefer 720p for combined frame controls.
Use public, directly accessible image URLs. Choose clear source images with the subject visible and little obstruction for more predictable motion.

Response format

Submit task response

POST /generateTask/grok-imagine-video-1-5 returns a task ID when the task is accepted:
integer
API status code. 200 means the task was accepted.
string
Human-readable status message.
string
Unique task identifier used with the status endpoint.

Status response fields

string
Unique task identifier.
string
Current task state: processing, success, or failed.
string
JSON string containing generated video URLs in resultUrls. Present when state is success.
string
Machine-readable failure code. Present when state is failed.
string
Human-readable failure message. Present when state is failed.
integer
Task creation timestamp in Unix milliseconds.
integer
Task completion timestamp in Unix milliseconds. Present after completion.
integer
Processing duration in milliseconds when available.

Webhook callback mode

Use callback mode when your backend should receive the final result automatically instead of polling.
The callback payload uses the same top-level shape as status polling with code, message, and data. Successful callbacks include the final state and resultJson. See Webhooks for delivery requirements and retry behavior.

Billing

New non-LLM requests use 1 credit = $0.001. Calculate the full amount, including billable quantity and add-ons, apply the applicable account discount, then round the request total upward to the next whole credit. Agreed fixed unit prices retain their precision and replace the standard price and discount; final rounding still applies. See credit conversion and rounding. Grok Imagine Video 1.5 is billed per second. The selected resolution determines the per-second unit price, and the submitted duration determines the billable seconds. Market display references are comparison values, not the charged amount. A 10-second request costs $0.240 at 480p, $0.450 at 720p, or $0.800 at 1080p before account discounts. Formula:
Reference image count, first and last frames, timed keyframes, and loop images do not add charges. Requests with the same resolution and duration use the same pricing. These are USD API usage charges. Studio monthly credits do not apply to API calls. For current API rates in USD, see API pricing.

Latency and polling

Grok Imagine Video 1.5 tasks are asynchronous. Actual latency may vary by prompt complexity, image accessibility, duration, resolution, and generation queue load.
For production workloads, use callback mode to avoid frequent polling while video tasks run.
Result URLs are temporary. Download and store important outputs promptly after task completion. Rate limits and concurrency can vary by account and API key. If you receive 429, slow down requests and retry with backoff. For account-level details, see System APIs.

Errors and troubleshooting

HTTP errors

Validation notes

Task failure codes

failCode identifies the task failure. Common values include: See Error Codes for the full error reference.

MCP integration

The complete model schema declares result decoding in mcp.result and supported file bindings in mcp.attachments. These are client integration metadata, not generation input parameters. Attachment paths: image_urls, first_frame_url, last_frame_url, loop_url, keyframes[].url. Preserve the user’s file order. For a path containing [], supply the parent array items and their metadata in input, then bind files to an explicit item index, such as [0]. Model parameter validation remains on the API.