480p
20
credits / second
= $0.02 USD / second
- resolution
- 480p
xAI
Available via APIVideo GenerationGenerate 6-15 second xAI Grok Imagine Video 1.5 clips from text or up to 7 reference images at 480p or 720p.
grok-imagine-video-1.5New accounts start with $0.20 in free credits, about 10 seconds of video at the starting price.
Grok Imagine Video 1.5 is developed by xAI. Wizzx provides API access to it and does not own the model. All trademarks belong to their respective owners.
Need a first frame? Create one with
Model Guide
Generate 6-15 second xAI Grok Imagine Video 1.5 clips from text or up to 7 reference images at 480p or 720p.
Grok Imagine Video 1.5 is xAI's video generation model, released in June 2026. xAI calls it its best image-to-video model and says sound effects, ambience, and dialogue are generated in the same pass as the picture.
In Wizzx, you can start from a prompt alone or add up to seven reference images, and choose 480p for quick drafts or 720p for sharper output.
| Wizzx control | Current behavior |
|---|---|
| Prompt | Required |
| Mode | Text to video, or image to video with 1–7 reference images |
| Resolution | 480p or 720p (default) |
| Duration | Any whole number from 6 to 15 seconds, default 6 |
| Aspect ratio | 16:9, 9:16, 1:1, 3:2, or 2:3; with references, the output follows the reference image |
| Reference images | Public URLs only, not charged |
Describe what should move and how the camera behaves, then add atmosphere and sound cues. With references, describe how they relate instead of listing them. Keep a clip to one main action; longer durations work best when the action naturally unfolds over time.
Wizzx returns one video per request. Resolution selects the per-second rate and duration sets the total; reference images are free, and the live amounts come from the backend catalog. xAI also offers higher resolutions, audio and voice references, and video editing for its Imagine family; Wizzx currently exposes only the text and image-reference modes above at 480p and 720p.
Backend pricing
Model identity, billing unit and every price tier below are read from the backend catalog.
20
credits / second
= $0.02 USD / second
37
credits / second
= $0.037 USD / second
1 credit = $0.001 USD. The final deduction returned by the API is authoritative.
Back to all modelsEvery request is asynchronous: submit the task, keep the task ID, then poll for the result. The body below uses the model's default settings.
Sign in and create a key in the dashboard. Set WIZZX_API_KEY in your server environment; never expose it in browser code.
Send a POST request to the model endpoint. A successful submission returns data.task_id; keep that ID before polling. Submission is not generation completion.
Replace YOUR_TASK_ID with the returned ID and query /api/v1/task/status. Wait for SUCCEEDED and read the output URLs. Stop on FAILED or REVIEW_REQUIRED; do not automatically resubmit an uncertain task.
curl -X POST \
https://api.wizzx.ai/api/v1/task/submit/grok-imagine-video-1.5 \
-H "Authorization: Bearer $WIZZX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "text-to-video",
"resolution": "720p",
"duration": 6,
"aspect_ratio": "16:9",
"prompt": "A slow aerial push-in over a coastal cliff road at golden hour, cinematic motion"
}'const response = await fetch("https://api.wizzx.ai/api/v1/task/submit/grok-imagine-video-1.5", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.WIZZX_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"type": "text-to-video",
"resolution": "720p",
"duration": 6,
"aspect_ratio": "16:9",
"prompt": "A slow aerial push-in over a coastal cliff road at golden hour, cinematic motion"
}),
});
const payload = await response.json();
const task = payload.data ?? payload;
const taskId = task.task_id;import os
import requests
response = requests.post(
"https://api.wizzx.ai/api/v1/task/submit/grok-imagine-video-1.5",
headers={
"Authorization": f"Bearer {os.environ['WIZZX_API_KEY']}",
},
json={
"type": "text-to-video",
"resolution": "720p",
"duration": 6,
"aspect_ratio": "16:9",
"prompt": "A slow aerial push-in over a coastal cliff road at golden hour, cinematic motion"
},
)
payload = response.json()
task = payload.get("data", payload)
task_id = task["task_id"]curl -X POST \
https://api.wizzx.ai/api/v1/task/status \
-H "Authorization: Bearer $WIZZX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"task_id": "YOUR_TASK_ID"
}'const response = await fetch("https://api.wizzx.ai/api/v1/task/status", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.WIZZX_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ task_id: "YOUR_TASK_ID" }),
});
const payload = await response.json();
const task = payload.data ?? payload;import os
import requests
response = requests.post(
"https://api.wizzx.ai/api/v1/task/status",
headers={
"Authorization": f"Bearer {os.environ['WIZZX_API_KEY']}",
},
json={"task_id": "YOUR_TASK_ID"},
)
payload = response.json()
task = payload.get("data", payload)The fields this endpoint accepts on Wizzx, read from the same schema as the Playground form.
| Parameter | Type | Default | Allowed values | Description |
|---|---|---|---|---|
promptPromptrequired | string | — | — | Describe the video you want to generate |
typeGeneration Type | string | text-to-video | text-to-video · image-to-video | — |
image_urlsReference Images | url[] ≤ 7 | — | — | Add 1-7 reference images. Reference images are not charged. |
resolutionResolution | string | 720p | 480p · 720p | Resolution selects the per-second rate. |
durationDuration | integer | 6 | 6 – 15 | Video duration in seconds. Duration determines the total. |
aspect_ratioAspect Ratio | string | 16:9 | 16:9 · 9:16 · 1:1 · 3:2 · 2:3 | With reference images, the output follows the reference image's ratio. |
Wizzx API
New accounts get $0.20 in free credits. Pay as you go with no subscription, and failed tasks are refunded.