Video upscale API: a 12-second clip is $0.108, the cap is 30 seconds

Sume Video Upscale 1.0 bills $0.009 per input second, up to 30 seconds ($0.27). Factor 1.1 to 4, three tiers, and a 5-second default reserve.

4 min readSume
All posts

Sume's Video Upscale 1.0 charges $0.009 per input second and accepts up to 30 seconds. A 12-second clip costs 12 x $0.009 = $0.108, and the longest clip costs $0.27. The route is POST /v1/video-upscale-1.0/upscale, and Sume picks the provider model server-side.

Request fields

The body is strict: unknown keys are rejected, and sending model, endpoint, or provider_endpoint returns an error, because the model is chosen server-side and the public id is sume/video-upscale-1.0. The source must be a public HTTPS video URL.

Video Upscale 1.0 request fields (Sume API schema, read 2026-10-09)
FieldValues
video_urlPublic HTTPS video URL (required)
upscale_factor or scale_ratio1.1 to 4
duration_seconds1 to 30; if omitted, Sume reserves 5 seconds
enhancement_tierfast, standard, or pro
metadataFree-form object

The arithmetic

The catalog describes the price as per input second after Sume margin: $0.009. If you omit duration_seconds, the reservation is 5 seconds, which is $0.045; then pass the real length so the hold matches the clip. For 12 seconds: 12 x 0.009 = $0.108. For 30 seconds: 30 x 0.009 = $0.27. A 31-second video is over the cap, so split it first. The catalog lists one per-second rate for this route and does not list a separate price for each tier, so confirm the live catalog before you assume a tier is free of extra cost.

curl -X POST https://api.sume.com/v1/video-upscale-1.0/upscale \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://example.com/clips/12s.mp4",
    "duration_seconds": 12,
    "upscale_factor": 2,
    "enhancement_tier": "standard"
  }'

Job handling

The route returns a job. Poll GET /v1/jobs/:id/status and GET /v1/jobs/:id/result, or register a webhook. The usual communication fields (mode, webhook_url, wait_timeout_seconds) apply. Source: the Sume catalog (read 2026-10-08) for the rate and the repo API schema for the field limits.

Cost table

Because the rate is linear in input seconds, you can price a batch in your head. Use the table as a reference, with the catalog rate of $0.009 per second (read 2026-10-08). The 5-second row shows what an omitted duration_seconds reserves.

Upscale cost at $0.009 per input second (computed 2026-10-09)
Input secondsArithmeticCost
5 (default reserve)5 x 0.009$0.045
1212 x 0.009$0.108
2020 x 0.009$0.18
30 (cap)30 x 0.009$0.27

Webhooks and polling

Upscaling is a provider job, so it is queued and takes longer than a worker ffmpeg step. Register a webhook_url, or poll the job status endpoint, rather than holding a connection. If you submit a batch of ten 12-second clips, the cost is 10 x $0.108 = $1.08, and the jobs run independently, so one failure does not affect the others. See the jobs guide for the status model.

Sizing the job

Pass the real clip length in duration_seconds so the hold matches the clip, and keep the factor modest: the allowed range starts at 1.1 and stops at 4. For a clip longer than 30 seconds, trim it into pieces under the cap first with video trim and upscale each, for example a 60-second clip as two 30-second jobs at $0.27 each, $0.54.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume