Skip to main content
POST
Upscale a video by 2x
Starts an asynchronous fixed-2x video upscale. Supply one source video, then poll Get Video with the returned vsr_ ID until it is ready. There is no target-resolution field: a 480p input becomes approximately 1080p, and a 768p input approximately 2K.
The service measures the source duration and charges 1 credit ($0.01) per second, rounded up. A 4.2-second source costs 5 credits.

Request parameters

Send multipart/form-data. Provide exactly one of video or video_url.
cURL

Response

Returns 200 OK with {id, status, progress, created_at}. The ID begins with vsr_; use it unchanged with GET /v1/videos/{video_id}. The completed Video has stage=null, alpha_url=null, and no seed field.

Authorizations

Authorization
string
header
required

Server-side SDK clients use a project API key. Remote MCP clients use an OAuth access token. Never expose a project API key in browser code.

Headers

X-Request-Id
string

Optional caller-supplied correlation ID, up to 128 characters. The service returns the effective value in the response header for tracing and support.

Required string length: 1 - 128
X-Viggle-Source
string

Optional source-channel label, up to 128 characters, used to attribute traffic to an SDK, integration, product surface, or internal workflow.

Required string length: 1 - 128

Body

multipart/form-data

Supply exactly one video source. The output scale is always 2x.

video
file

Video upload, up to 100 MiB and 0.5–600 seconds long. Use instead of video_url.

video_url
string<uri>

Publicly reachable video URL. Use instead of video and keep it accessible during ingestion.

watermark
boolean
default:false

Whether the upscaled result should include the service watermark.

Response

Video upscale accepted.

Acceptance acknowledgment for POST /v1/videos, shared by all five generation modes. This is a queued confirmation, not the final result — poll GET /v1/videos/{video_id} (or watch it via GET /v1/videos) until status reaches ready, then read video_url from that response.

id
string
required

Public video ID — vid_-prefixed for the four H3 modes, anim_-prefixed for character-animation mode.

Minimum string length: 1
status
enum<string>
required

Lifecycle state at acceptance time; always queued.

Available options:
queued,
processing,
ready,
failed,
cancelled
progress
integer | null
required

Always null on acceptance.

Required range: 0 <= x <= 100
created_at
string<date-time> | null
required

ISO 8601 creation timestamp, second precision.