curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "topaz-video-upscale",
"video_urls": [
"https://example.com/my-video.mp4"
]
}
'{
"created": 1757169743,
"id": "task-unified-1757169743-7cvnl5zw",
"model": "topaz-video-upscale",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 600,
"video_duration": 0
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 28.8,
"user_group": "default"
}
}Topaz
Topaz Video Upscale
- Topaz Video Upscale (topaz-video-upscale) model supports AI-powered video super-resolution upscaling
- Supports 1x (enhancement only), 2x, and 4x upscale factors
- Billing is based on input video duration (per second) and upscale factor
- Asynchronous processing mode, use the returned task ID to query status
- Upscaled video links are valid for 24 hours, please save them promptly
POST
/
v1
/
videos
/
generations
curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "topaz-video-upscale",
"video_urls": [
"https://example.com/my-video.mp4"
]
}
'{
"created": 1757169743,
"id": "task-unified-1757169743-7cvnl5zw",
"model": "topaz-video-upscale",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 600,
"video_duration": 0
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 28.8,
"user_group": "default"
}
}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
application/json
Video upscale model name
Available options:
topaz-video-upscale Example:
"topaz-video-upscale"
Input video URL list for upscaling
Note:
- Only
1video per request - Video URL must be directly accessible by the server (public URL or pre-signed URL)
- The server will automatically detect the input video duration for billing
- Supported formats:
.mp4
Required array length:
1 elementExample:
["https://example.com/my-video.mp4"]
Model-specific parameters for controlling upscale behavior
Show child attributes
Show child attributes
HTTPS callback URL for task completion
Callback Timing:
- Triggered when task is completed, failed, or cancelled
- Sent after billing confirmation
Security Restrictions:
- HTTPS protocol only
- Internal IP addresses are prohibited (127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)
- URL length must not exceed
2048characters
Callback Mechanism:
- Timeout:
10seconds - Maximum
3retries after failure (at1/2/4seconds after failure) - Callback response format is consistent with task query API
- 2xx status code is considered successful, other codes trigger retry
Example:
"https://your-domain.com/webhooks/video-task-completed"
Response
Video upscale task created successfully
Task creation timestamp
Example:
1757169743
Task ID
Example:
"task-unified-1757169743-7cvnl5zw"
Actual model name used
Example:
"topaz-video-upscale"
Task type
Available options:
video.generation.task Task progress percentage (0-100)
Required range:
0 <= x <= 100Example:
0
Task status
Available options:
pending, processing, completed, failed Example:
"pending"
Video task details
Show child attributes
Show child attributes
Task output type
Available options:
text, image, audio, video Example:
"video"
Usage and billing information
Show child attributes
Show child attributes