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_factorthumbnail_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 and Topaz for 1x, 2x, or 4x enhancement.
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
}