Send a link in, get finished vertical shorts back. Three endpoints, one key, no SDK required.
Create a key under Account → API. Send it with every request:
Authorization: Bearer vc_live_…
Keys are shown once and stored hashed. Revoking a key kills it instantly. Rate limit: 60 requests/minute per key.
POST https://vigge.pro/api/v1/jobs
Content-Type: application/json
{
"url": "https://www.youtube.com/watch?v=…",
"language": "sv" | "en" | "auto",
"clipLength": "auto" | "short" | "long",
"webhookUrl": "https://your-server.example/hook" // optional
}
→ 202 { "id": "…", "status": "fetching" }
YouTube, Twitch and Kick links are supported. The job draws from the same minute balance as the web app — a job that fails is never charged.
GET https://vigge.pro/api/v1/jobs/{id}
→ { "status": "fetching" | "queued" | "running" | "done" | "failed",
"progress": 0–100,
"error": "…", // only when failed — always says why
"clips": [ // only when done
{ "idx": 1, "title": "…", "seconds": 27,
"url": "https://…", // signed, valid for hours — download promptly
"thumbUrl": "https://…" }
] }
Poll every 30 seconds. A typical job takes about three times the video's
length. If you set webhookUrl we POST
{ id, status, clips } once when the job ends — but polling is
the source of truth; treat the webhook as a doorbell, not a delivery.
GET https://vigge.pro/api/v1/me
→ { "minutes": 87 }