Developers

The ViggeClips API

Send a link in, get finished vertical shorts back. Three endpoints, one key, no SDK required.

Authentication

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.

Start a job

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.

Poll the job

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.

Check your balance

GET https://vigge.pro/api/v1/me
→ { "minutes": 87 }

Honesty rules

  • A failed job always carries a reason — and is never charged.
  • Files are kept 30 days, then deleted. Download what you want to keep.
  • You are responsible for the rights to what you send in — same terms as the web app (acceptable use).