Operation
Upscale Video
Upscale a hosted source video to a higher target resolution.
Operation: video.upscale
Submit via POST /api/v1/requests
Credits: dynamic
Request fields
video_urlvideo_titleduration_secondsmodeltarget_resolutionupscale_factortarget_fpsthumbnail_url
Example request
{
"operation": "video.upscale",
"input": {
"video_url": "https://example.com/source.mp4",
"video_title": "Scene 4 Take 2",
"duration_seconds": 7.2,
"target_resolution": "4k",
"thumbnail_url": "https://example.com/thumb.jpg"
}
}curl -X POST https://www.cannonstudio.app/api/v1/requests \
-H "Content-Type: application/json" \
-H "x-api-key: $CANNON_API_KEY" \
-H "x-idempotency-key: video-upscale-001" \
-d @- <<'JSON'
{
"operation": "video.upscale",
"input": {
"video_url": "https://example.com/source.mp4",
"video_title": "Scene 4 Take 2",
"duration_seconds": 7.2,
"target_resolution": "4k",
"thumbnail_url": "https://example.com/thumb.jpg"
}
}
JSONNotes
- Uses the same video upscaler stack and pricing logic as the app.
- Returns accepted task metadata immediately, then resolves through the request object when the hosted upscale is ready.
- Supported models are Wavespeed for resolution-based exports, Topaz Proteus for 1x/2x/4x enhancement, and Starlight 2.5 for Topaz/FAL-hosted Starlight with optional target_fps. Magnific Precision is temporarily disabled while provider API access is being configured. The legacy Proteus model value is accepted for existing integrations but is deprecated for new video upscales.
Success output
{
"task_id": "up_123",
"asset_type": "video",
"status": "succeeded",
"video_url": "https://storage.googleapis.com/.../upscaled.mp4",
"provider": "wavespeed",
"model": "video_upscale",
"requested_model": "wavespeed",
"exact_cost_credits": 17
}