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"
  }
}
JSON

Notes

  • 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
}