How it works
Video upscaling uses the same async queue system as video generation:- Queue — Submit your video to
/video/queuewith thetopaz-video-upscalemodel - Poll — Check
/video/retrievewith the returnedqueue_iduntil the status iscompleted - Complete — Call
/video/completeto finalize and get the output URL
Upscale factors
The
upscale_factor parameter replaces resolution for upscale models. Passing resolution will return an error. This is because the output resolution depends on the input video’s dimensions — a 2x upscale of a 720p video produces a different result than a 2x upscale of a 480p video.Supported input formats
- Formats: MP4, MOV, WebM
- Input methods: HTTPS URL or
data:video/...;base64,...data URL - Max duration: 300 seconds (5 minutes)
API usage
Queue an upscale job
queue_id to track the job:
Poll for completion
Finalize with complete
After retrieving the result, call/video/complete to finalize:
API parameters
Parameters not used for upscale models
The following parameters are not accepted fortopaz-video-upscale and will return an error if provided:
The
duration parameter is also ignored — the server detects duration directly from the video file for billing accuracy.
Pricing
Pricing is based on duration, output resolution tier, and frame rate. The output resolution tier is determined by the input video’s height multiplied by the upscale factor.Output resolution tiers
Videos with frame rates above 48fps cost 2x the per-second rate.
Pricing examples
Use the Video Quote API to get exact pricing before submitting a job.
Getting a quote
video_url is required for quotes on upscale models — the quote endpoint fetches the file and detects duration, FPS, and height from the bytes, so there is no need to supply them. Omitting it returns 400 with “video_url is required for quotes on this model”.