Documentation Index
Fetch the complete documentation index at: https://apixo.ai/docs/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Grok Video is an xAI video model for text-to-video generation and image-to-video workflows. Use this page when you are ready to call the API after trying the model in the APIXO playground.| Capability | Value |
|---|---|
| Model ID | grok-video |
| Modes | text-to-video, image-to-video |
| Prompt length | 1-5000 characters |
| Duration | 6-30 seconds |
| Resolutions | 480p, 720p |
| Aspect ratios | 1:1, 3:2, 2:3, 16:9, 9:16 |
| Image-to-video sources | 1 image URL, or a completed grok-image task with task_id and index |
| Output | MP4 video URL in resultJson.resultUrls |
Endpoint and authentication
Base URL:| Method | Endpoint | Purpose |
|---|---|---|
POST | /generateTask/grok-video | Submit a generation task |
GET | /statusTask/grok-video?taskId={taskId} | Poll task status and retrieve results |
Copy-paste async quickstart
This minimal request submits a text-to-video task and returns ataskId.
taskId; you need it to poll for the final result.
Poll for result
resultJson after state becomes success:
Request body
Text-to-video
Image-to-video with an image URL
Image-to-video from a Grok Image task
Parameters
Result delivery mode. Omit this field or use
async for polling with statusTask, or use callback for webhook delivery.Required when
request_type is callback. Provide a public HTTPS URL that can receive the final task payload. See Webhooks.Grok Video input parameters.
Response format
Submit task response
POST /generateTask/grok-video returns a task ID when the task is accepted:
API status code.
200 means the task was accepted.Human-readable status message.
Unique task identifier used with the status endpoint.
Status response fields
Unique task identifier.
Current task state:
processing, success, or failed.JSON string containing the generated video URLs in
resultUrls. Present when state is success.Machine-readable failure code. Present when
state is failed.Human-readable failure message. Present when
state is failed.Task creation timestamp in Unix milliseconds.
Task completion timestamp in Unix milliseconds. Present after completion.
Processing duration in milliseconds. Present after completion.
Webhook callback mode
Use callback mode when your backend should receive the final result automatically instead of polling.Billing
Grok Video is billed per second. The selectedresolution determines the per-second unit price, and the submitted duration determines the billable seconds.
| Resolution | APIXO price | Minimum valid request cost |
|---|---|---|
480p | $0.015 / second | $0.09 for 6 seconds |
720p | $0.03 / second | $0.18 for 6 seconds |
Latency and polling
The user manual lists typical Grok Video generation time at about 40s-60s. Actual latency may vary by prompt complexity, duration, resolution, provider queue load, and storage transfer time.| Workload | Typical generation time | Recommended first poll | Poll interval |
|---|---|---|---|
480p or 720p, 6-30 seconds | About 40s-60s | 30s after task creation | 5s |
image_urls, or task_id with index. Public image URLs should point directly to JPG, PNG, or WebP files and should be accessible by APIXO.
Prompts can be written in English or Chinese. More specific camera motion, scene timing, subject action, lighting, and style details usually produce better results.
Rate limits and concurrency can vary by account, API key, and route. If you receive 429, slow down requests and retry with backoff. For account-level details, see System APIs.
Errors and troubleshooting
HTTP errors
| Code | Meaning | What to do |
|---|---|---|
400 | Invalid request body, missing mode, missing prompt, invalid duration, invalid resolution, malformed image input, or invalid task_id / index | Fix the request before retrying |
401 | Missing or invalid API key | Check the Authorization header |
402 | Insufficient balance or quota | Add balance or switch account/key |
404 | Task not found when polling | Check the taskId |
429 | Rate limit or concurrency limit reached | Retry with exponential backoff |
500 | Internal error or unknown task failure | Retry with backoff or contact support if it persists |
502 | Upstream provider or network error | Retry with backoff |
503 | Service temporarily unavailable | Retry later |
504 | Upstream timeout | Retry later or use callback mode for long-running jobs |
Validation notes
| Parameter | Backend behavior |
|---|---|
input.mode | Required for routing. Must be text-to-video or image-to-video. |
input.prompt | Required string. Must not be empty and must not exceed 5000 characters. |
input.duration | Required. Accepts an integer or an integer string. Must resolve to a value from 6 through 30. |
input.resolution | Required string. 480p and 720p are accepted after trimming and lowercasing. |
input.aspect_ratio | Optional. Must be one of 1:1, 3:2, 2:3, 16:9, 9:16 when provided. Defaults are 3:2 for text-to-video and 16:9 for image-to-video. |
input.image_urls | For image-to-video, one accepted source method. Must be an array of non-empty strings and cannot contain more than 1 URL. |
input.task_id | For image-to-video, the alternate source method. Must be an existing completed APIXO grok-image task. |
input.index | Required with task_id. Must be an integer from 0 through 5. |
input.style | Optional. Must be fun, normal, or spicy; defaults to normal when omitted. |
Task failure codes
failCode is generated from APIXO’s mapped provider error. Common values include:
| Fail code | Meaning | What to do |
|---|---|---|
SensitiveContent | Prompt or input/output content was rejected by safety checks | Change the prompt or reference image |
PromptInvalid | Prompt was invalid or rejected by the provider | Rewrite the prompt and retry |
ImageFormatIncorrect | Reference image format could not be processed | Use a public, direct image URL in a common image format |
RateLimited | Provider rate limit was reached | Retry with exponential backoff |
Timeout | Provider timeout | Retry later or use callback mode |
InternalError | Provider or APIXO service was temporarily unavailable | Retry later |
Unknown error | Provider returned an unmapped failure | Retry with backoff or contact support with the taskId |