import requests, time headers = {"Authorization": "Bearer " + AIMLAPI_KEY} job = requests.post( "https://api.aimlapi.com/v2/video/generations", headers=headers, json={ "model": "x-ai/grok-imagine-video-1.5-preview", "prompt": "A serene timelapse of clouds over a mountain range" }, ).json() gid = job["id"] while True: res = requests.get(f"https://api.aimlapi.com/v2/video/generations?generation_id={gid}", headers=headers).json() if res.get("status") in ("completed", "error"): break time.sleep(5) print(res["video"]["url"])
const headers = { Authorization: `Bearer ${process.env.AIMLAPI_KEY}`, "Content-Type": "application/json", }; const job = await (await fetch("https://api.aimlapi.com/v2/video/generations", { method: "POST", headers, body: JSON.stringify({ "model": "x-ai/grok-imagine-video-1.5-preview", "prompt": "A serene timelapse of clouds over a mountain range" }), })).json(); let res; do { await new Promise((r) => setTimeout(r, 5000)); res = await (await fetch(`https://api.aimlapi.com/v2/video/generations?generation_id=${job.id}`, { headers })).json(); } while (!["completed", "error"].includes(res.status)); console.log(res.video.url);
# submit the generation — the response contains the job "id" curl -X POST https://api.aimlapi.com/v2/video/generations \ -H "Authorization: Bearer $AIMLAPI_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"x-ai/grok-imagine-video-1.5-preview","prompt":"A serene timelapse of clouds over a mountain range"}' # then poll until status is "completed" — video.url holds the result curl "https://api.aimlapi.com/v2/video/generations?generation_id={id}" -H "Authorization: Bearer $AIMLAPI_KEY"
OpenAI-compatible — swap the base URL and it works with your existing SDK.
| Type | Price |
|---|---|
| Output | |
| Benchmark | Score | What it measures | Source | Retrieved |
|---|---|---|---|---|
| Image-to-Video Arena | 1330 (Elo) | Human preference Elo from blind pairwise comparisons of videos animated from the same input image, measured independently by Artificial Analysis | Source | July 16, 2026 |
| Model | Input | Output | Context | Best for |
|---|---|---|---|---|
Grok Imagine Video 1.5 Preview This page | Video generation | |||
| Video generation | ||||
| Video generation | ||||
| Video generation | ||||
| Cinematic video + native audio |
Grok Imagine Video 1.5 Preview takes image, text, video as input and returns video.
Grok Imagine Video 1.5 Preview is priced at $0.104 / sec (variable).
Grok Imagine Video 1.5 Preview is billed per generation — a fixed charge per output rather than by prompt length.
Yes, Grok Imagine Video 1.5 Preview accepts image input as well as a text prompt.
Grok Imagine Video 1.5 Preview was built by xAI .
Use x-ai/grok-imagine-video-1.5-preview as the model id on AI/ML API.
Yes. Grok Imagine Video 1.5 Preview is served through AI/ML API, so the same key and endpoint format used for other models applies.
It is designed for turning images into short animated videos, useful for social media content, visual concepts, and motion generation.