curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "grok-imagine-video-1.5-lite",
"prompt": "A neon-lit street at night, slow dolly forward through the rain",
"duration": 6,
"quality": "480p",
"aspect_ratio": "16:9"
}
'{
"created": 1757169743,
"id": "task-unified-1757169743-7cvnl5zw",
"model": "grok-imagine-video-1.5-lite",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": false,
"estimated_time": 120,
"video_duration": 6
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 5.712,
"user_group": "default"
}
}{
"error": {
"code": "invalid_request",
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: grok-imagine-video-1.5-lite",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}Grok Imagine 1.5 Lite Video
- Grok Imagine 1.5 Lite (grok-imagine-video-1.5-lite) is the lower-priced tier of Grok Imagine 1.5: text-to-video and image-to-video under one model name
- There is no mode parameter: the number of entries in
image_urlsselects the mode —0= text-to-video,1= image-to-video (used as the first frame). Reference images (2 or more) are not supported 1080poutput is upscaled from 720p and billed at a higher per-second rate- Asynchronous processing mode, use the returned task ID to query
- Generated video links are valid for 24 hours, please save them promptly
curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "grok-imagine-video-1.5-lite",
"prompt": "A neon-lit street at night, slow dolly forward through the rain",
"duration": 6,
"quality": "480p",
"aspect_ratio": "16:9"
}
'{
"created": 1757169743,
"id": "task-unified-1757169743-7cvnl5zw",
"model": "grok-imagine-video-1.5-lite",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": false,
"estimated_time": 120,
"video_duration": 6
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 5.712,
"user_group": "default"
}
}{
"error": {
"code": "invalid_request",
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: grok-imagine-video-1.5-lite",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}Authorizations
##All APIs require Bearer Token authentication##
Get API Key:
Visit API Key Management Page to get your API Key
Add to request header:
Authorization: Bearer YOUR_API_KEY
Body
Model name
grok-imagine-video-1.5-lite "grok-imagine-video-1.5-lite"
Video description prompt (required, cannot be empty)
EvoLink platform length limit: Up to 2000 tokens (counted with the cl100k tokenizer, so CJK prompts hit the cap at far fewer characters than Latin ones). The platform also enforces a limit of 60000 UTF-8 bytes.
"The person starts dancing"
Input image URL (optional). One image switches the request to image-to-video.
Mode selection:
0images (omit the field): text-to-video, no image charge1image: image-to-video, used as the first frame; input images are billed separately (see the pricing section)2or more images are rejected — reference-to-video is not supported on Lite
Requirements:
- Playground local uploads: up to
10MiB(10485760 bytes) per image. Image URLs sent directly to the API are validated upstream and do not use this local upload check. - Supported formats: JPEG, PNG, WebP
1["https://example.com/image.jpg"]
Video duration (seconds), any integer between 1 and 15 seconds
1 <= x <= 156
Video resolution, default is 480p
Description:
480p: Standard definition (default)720p: High definition1080p: Upscaled from 720p, billed at a higher per-second rate
See the pricing section for the per-resolution rates.
480p, 720p, 1080p "480p"
Output aspect ratio, default is auto
Applies to: text-to-video (0 images). With an input image the output follows that image's dimensions and this parameter is ignored.
Description:
auto: No ratio is sent upstream and the upstream channel decides the framing (text-to-video currently renders 16:9); this is the default value16:9: Landscape9:16: Portrait1:1: Square4:3: Landscape, classic TV ratio3:4: Portrait, classic TV ratio3:2: Landscape, classic photo ratio2:3: Portrait, classic photo ratio
auto, 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3 "16:9"
HTTPS callback URL after task completion
Callback Timing:
- Triggered when task is completed, failed, or cancelled
Security Restrictions:
- Only HTTPS protocol supported
- Callback to internal IPs prohibited (127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)
- URL length must not exceed
2048UTF-8 bytes
Callback Mechanism:
- Timeout:
10seconds - Max
3retries on failure (after1/2/4seconds) - The callback request body uses the task query API response structure
- 2xx status code = success, others trigger retry
"https://your-domain.com/webhooks/video-task-completed"
Response
Video task created successfully
Task creation timestamp
1757169743
Task ID
"task-unified-1757169743-7cvnl5zw"
Actual model name used
"grok-imagine-video-1.5-lite"
Specific task type
video.generation.task Task progress percentage (0-100)
0 <= x <= 1000
Task status
pending, processing, completed, failed "pending"
Video task detailed information
Show child attributes
Show child attributes
Task output type
text, image, audio, video "video"
Usage and billing information
Show child attributes
Show child attributes