FlashVSR video super-resolution: a low-resolution clip in, 720p / 1080p / 2K / 4K out — restore old footage, clean up low-bitrate video, or lift AI-generated clips to a resolution you can cut with. Billing is per second of the SOURCE clip, not the output, so the cost is fixed the moment you submit: a 30-second clip to 1080p is $0.90, every time. Async create-then-poll; failed tasks are never billed.
Authorization: Bearer YOUR_API_KEY⚠️ Every tier is priced per second of the INPUT video, not the output. For one 30-second source, the only thing that changes between 4K and 720p is the rate.
| resolution | Rate | 30s source | Notes |
|---|---|---|---|
| 720p | $0.02 / source second | $0.60 | Social and preview cuts |
| 1080p | $0.03 / source second | $0.90 | Default tier |
| 2k | $0.035 / source second | $1.05 | Editing master |
| 4k | $0.06 / source second | $1.80 | Large screen and delivery |
model = flashvsr
# ─── Upscale a video (FlashVSR) ───────────────────────────
curl -X POST https://api.apimodels.app/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flashvsr",
"video_url": "https://example.com/clip.mp4",
"resolution": "1080p"
}'
# Response (async — a task is created):
# { "code": 200, "msg": "success", "data": { "taskId": "clxxx", "state": "pending" } }
# ─── Poll for the upscaled clip ───────────────────────────
curl "https://api.apimodels.app/v1/video/generations?task_id=TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
# { "code": 200, "data": { "state": "completed",
# "resultUrls": ["https://r2.apimodels.app/videos/clxxx.mp4"] } }| Field | Required | Type | Description |
|---|---|---|---|
| model | Yes | string | flashvsr |
| video_url | Yes | string | URL of the clip to upscale. Must be an MP4 that is directly downloadable without login or an expiring signature. Aliases: videoUrl / video / url. |
| resolution | No | string | Target resolution: 720p / 1080p / 2k / 4k, default 1080p. Aliases: targetResolution / target_resolution. |
| callback_url | No | string | Webhook URL called when the task completes |
Try it in the Playground