AI video upscaler API: scale ratio, enhancement tiers, and cost
POST /v1/video-upscale-1.0/upscale takes a public HTTPS video URL, a scale_ratio from 1.1 to 4, and a fast, standard, or pro enhancement tier.

To upscale a video with the Sume API, send a public HTTPS video_url to POST /v1/video-upscale-1.0/upscale with a scale_ratio from 1.1 to 4 (default 2) and an enhancement_tier of fast (the default), standard, or pro. Sume Video Upscale 1.0 (sume/video-upscale-1.0) runs it as a job, reserves usage from your duration_seconds hint, and returns a Sume-hosted video.
Video Upscale 1.0 is specified in the OpenAPI document behind the Sume API reference. Jobs, results, and billing follow the API reference and Core concepts docs pages. All were read on 2026-09-26.
How do I upscale a video with the API?
video_url is the only required field. The schema has no model field and accepts no fields beyond those in the table. The same body also works at POST /v1/models/sume/video-upscale-1.0/runs. The example below sends a webhook URL without a mode, which selects webhook.
| Field | Accepts | Default |
|---|---|---|
video_url | Public HTTPS video URL (required) | None |
scale_ratio | A number from 1.1 to 4 | 2 |
upscale_factor | Alias of scale_ratio, 1.1 to 4. scale_ratio overrides it. | 2 |
enhancement_tier | fast, standard, or pro | fast |
duration_seconds | Input seconds for the reservation, a number from 1 to 30 | 5 seconds reserved |
mode | async, sync, subscribe, or webhook | async |
wait_timeout_seconds | 0–30 seconds of blocking wait for sync or subscribe | Not stated |
webhook_url | Public HTTPS callback URL, up to 2,048 characters | None |
metadata | Your own object, stored with the job request | None |
curl -X POST https://api.sume.com/v1/video-upscale-1.0/upscale \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: upscale-clip-001" \
-d '{
"video_url": "https://example.com/videos/clip.mp4",
"scale_ratio": 2,
"enhancement_tier": "standard",
"duration_seconds": 12,
"webhook_url": "https://example.com/webhooks/sume"
}'How do I set the scale ratio and enhancement tier?
Send scale_ratio or its alias upscale_factor. Both take a number from 1.1 to 4 and default to 2, and if you send both, scale_ratio wins. The floor is not the same as on Image Upscale 1.0, whose upscale_factor starts at 1.
enhancement_tier is a separate choice: fast, standard, or pro, with fast as the default. The API reference lists only the three values and the default, and API pricing shows one Video upscale rate, not one per tier.
How does duration_seconds affect what I pay?
API pricing lists Video upscale at $0.009 per video second, measured on the input clip, plus a 5.5% agent fee by default.
duration_seconds is the input duration Sume reserves for when you submit, from 1 to 30. Omit it and Sume reserves 5 seconds. At the list rate, that default reservation is $0.045, and 30 seconds, the most the field accepts, is $0.27, both before the agent fee.
Sume captures the cost when the job succeeds and refunds a job that fails or is canceled before capture. The submit response shows the estimate as usage.billable_amount_usd. A 402 means the balance cannot cover it, and no job starts.
How do I get the upscaled video?
Every mode returns the job id in the first response. sync and subscribe hold the request for at most 30 seconds, which bounds the HTTP wait, not the job, and the schema recommends async or webhook for new integrations.
async: pollGET /v1/jobs/:id/status, waiting at leastnext_poll_after_secondsbetween polls, then read the Sume-hosted video fromGET /v1/jobs/:id/result.webhook: Sume stores your callback URL and delivers onlyjob.completed,job.failed, orjob.canceled. There are no progress callbacks, so keep polling available as a backup.POST /v1/jobs/:id/cancelstops a job only before generation starts. After that it returns409 job_generation_already_started.
What does Video Upscale 1.0 not do?
It enlarges one clip you already have. Cutting, cropping, or filtering a clip is a different set of tools, covered in Trim, filter, or detach audio from a video. Other limits:
- No model choice. Model ids are not accepted in the request.
scale_ratioandupscale_factorstop at 4, andduration_secondsat 30.- One video per job:
video_urlis a single URL. - No progress callbacks. A webhook fires only when the job ends.
Sources
Related posts
Written by Sume