AI video upscaling API

Standard upscaling stretches pixels. AI upscaling with Real-ESRGAN reconstructs detail that wasn't in the source — turning SD into clean 1080p, or HD into crisp 4K. Submit a video URL and download the upscaled result.

Free sandbox key, no card. Never trained on. Never sold. Auto-deleted.

The difference between upscaling and super-resolution

Traditional upscaling (bicubic, Lanczos) interpolates between existing pixels. You get a bigger image, but no new detail — just smoothed-out enlargement.

AI super-resolution (Real-ESRGAN) is different. The model was trained on millions of image pairs (low-res → high-res) and learned to predict what detail should be there. When you upscale, it reconstructs texture, edges, and structure that naive interpolation can't create.

The result

  • SD footage that looks native 1080p, not stretched
  • HD footage that holds up on 4K displays
  • Old recordings that feel modern

Resolution options

Set the resolution parameter on your job:

  • 1080p — Upscale to 1920×1080 (default)
  • 4k — Upscale to 3840×2160

The API automatically handles aspect ratios and applies the full enhancement pipeline (super-resolution + face restoration + contrast + sharpening) in one pass.

Use cases for AI upscaling

  • Archive digitization: SD tapes and DVDs to HD/4K
  • Streaming prep: Older catalog content for 4K platforms
  • Display readiness: Make footage hold up on large screens
  • Content platforms: Automatically upscale user uploads

One API call — curl, Python & Node

Submit a video by URL, then poll GET /v1/jobs/{id} until done (or receive a signed webhook), and fetch a time-limited download link:

cURL
curl -X POST https://api.bettervideo.io/v1/jobs \
  -H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"video_url":"https://.../clip.mp4","resolution":"4k"}'
Python
import requests
r = requests.post("https://api.bettervideo.io/v1/jobs",
    headers={"Authorization": "Bearer YOUR_KEY"},
    json={"video_url": "https://.../clip.mp4", "resolution": "4k"})
job = r.json()  # poll GET /v1/jobs/{job['id']} until status == "done"
Node.js
const res = await fetch("https://api.bettervideo.io/v1/jobs", {
  method: "POST",
  headers: { "Authorization": "Bearer YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({ video_url: "https://.../clip.mp4", resolution: "4k" })
});
const job = await res.json();

Privacy is the default, not an upgrade

  • Never trained on. Pre-trained, fixed-weight models — your frames are enhanced and returned, never used to train AI.
  • Never sold or shared. No third parties, no data brokers, no "anonymized" resale.
  • Auto-deleted. Files self-delete (default 30 days), or delete any job instantly with one call.
  • Proof on the Secure tier. Every deletion can return a signed deletion certificate, with a full audit log.

Frequently Asked Questions

There's no hard limit, but upscaling works best on SD or HD source — upscaling 4K to 8K isn't the primary use case.

A few minutes for short clips; longer videos scale linearly. You'll get a webhook or poll for completion.

Both use AI super-resolution. BetterVideo runs Real-ESRGAN as a hosted API; Topaz is a desktop app.

AI super-resolution genuinely adds detail — it's not just a bigger file with the same information.

Start free — get your API key

Free sandbox key (no card). Try the entire submit → enhance → download flow in a minute with the Run-in-Postman collection.