Video enhancement API for developers
Build video enhancement into your application with a clean REST API. Submit a video URL, receive the enhanced result via webhook or polling, and download. Python and Node.js examples included — no ML infrastructure required.
Free sandbox key, no card. Never trained on. Never sold. Auto-deleted.
Why developers choose an API over desktop tools
Desktop video enhancers like Topaz require manual operation, per-seat licenses, and local GPU hardware. They can't be called from your backend, can't scale with your users, and can't run automatically on upload.
An API changes that. Your application makes an HTTP call, video is enhanced on cloud GPUs, and the result comes back — no installs, no GPU provisioning, no per-seat costs.
Real-world use cases
- User-generated content platforms: Automatically enhance uploads before display
- Video editing SaaS: Offer one-click upscaling as a premium feature
- Archive digitization: Batch-process legacy video libraries
- Security software: Clarify CCTV and body-cam footage on demand
Developer-friendly integration
BetterVideo is built for production, not just demos:
- Idempotency keys: Safely retry failed requests without double-processing
- HMAC-signed webhooks: Verify callbacks cryptographically
- Free sandbox: Test the full lifecycle before spending
- Simple pricing: Per-second billing, credits never expire
Integration in 5 minutes
Get a free sandbox key, run the Postman collection, and see the full submit → poll → download flow. Then drop the same calls into your codebase.
Privacy your users can trust
When your users' video passes through your product, you inherit the data-handling practices of every vendor in the chain. BetterVideo keeps that chain clean:
- Never trained on: Pre-trained, fixed-weight models — user footage is enhanced and returned, never used to train AI
- Never sold: No data brokers, no 'anonymized' resale
- Auto-deleted: 30-day default, or delete instantly via API
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 -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":"1080p"}'
Python
import requests
r = requests.post("https://api.bettervideo.io/v1/jobs",
headers={"Authorization": "Bearer YOUR_KEY"},
json={"video_url": "https://.../clip.mp4", "resolution": "1080p"})
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: "1080p" })
});
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
Any language that can make HTTP requests. We provide curl, Python, and Node.js examples; SDKs coming soon.
Yes — generous limits for production use. Contact us if you need higher throughput.
Yes — call the API from your backend; don't embed API keys in client code.
Submit by URL (we fetch it) or use pre-signed direct upload for large files up to 10 minutes.
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.