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