Iemand in Brazilië heeft een clip van 15 seconden geknipt 10 minuten geleden

201441 clips zijn geknipt met AppsGolem.

Ontwikkelaars-API · MCP-server

Knip YouTube-clips vanuit je code.

Een eenvoudige REST API en een MCP-server voor AI-agents — alles wat de webcutter doet, programmatisch. Prepaid credits, geen abonnement.

API + MCP voor coding agents →

# one clip = 1 credit — failed cuts never billed
curl -X POST https://appsgolem.com/v1/cuts \
  -H "Authorization: Bearer ag_live_…" \
  -d '{"url":"youtu.be/…","start":"0:00",
       "end":"0:10","mode":"video"}'
Zo werkt het

Nieuw hier? Het hele model in één minuut.

Je koopt prepaid credits, maakt een API-sleutel aan en roept één endpoint aan om een clip te knippen. Knippen gebeurt asynchroon: je dient een job in, polt totdat deze geproduceerd is, en downloadt het bestand vervolgens via een tokenized URL. De MCP-server verpakt dit allemaal in één tool call voor AI-agents. Geen abonnement, geen seats — je betaalt per geproduceerde clip.

1 · Authenticeren
Stuur je sleutel als Authorization: Bearer ag_live_… mee bij elk verzoek.
2 · Indienen & pollen
POST /v1/cuts retourneert een job-id; pol GET /v1/cuts/{id} totdat deze geproduceerd is.
3 · Downloaden
Haal de download_url op uit de geproduceerde job — geen header nodig, de token autoriseert deze.
Snelstart

Van nul naar een clip in vier aanroepen.

01
Maak een API-sleutel aan
Buy a credit pack (from €5), then generate a key in your dashboard. Keys look like ag_live_… and are shown once — store it somewhere safe.
02
Dien een knipopdracht in
curl -X POST https://appsgolem.com/v1/cuts \
  -H "Authorization: Bearer ag_live_…" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://youtu.be/aqz-KE-bpKQ",
       "start":"0:00","end":"0:10",
       "resolution":"1080p","mode":"video"}'
202 Accepted
{ "id": "e48d…b1a2", "state": "queued", "credits_reserved": 1, "poll_url": "/v1/cuts/e48d…b1a2" }
03
Vraag de download-URL op
# GET /v1/cuts/{id} — repeat every few seconds until state is produced
{ "state": "produced",
  "download_url": "/v1/download/…/clip.mp4" }
Statussen doorlopen accepted → queued → produced → delivered (of failed → refunded). Een korte clip is meestal binnen enkele seconden klaar; pol elke 3–5 s.
Downloadlinks verlopen 72 uur nadat de clip is gemaakt — haal hem binnen dat tijdvenster op.
04
Download de clip
De URL met token streamt de MP4 — herbruikbaar totdat hij verloopt. De MCP-tool cut_youtube_video voert stappen 2–4 in één aanroep voor je uit.
Voor AI-agents · MCP

Eén regel voor Claude, Cursor & Codex.

De MCP-server stelt de cutter beschikbaar als drie tools die elke MCP-client kan aanroepen. Installeer met npx — niets om globaal te installeren.

Claude Desktop — claude_desktop_config.json
{ "mcpServers": {
  "appsgolem": {
    "command": "npx",
    "args": ["-y","appsgolem-mcp"],
    "env": { "APPSGOLEM_API_KEY":
      "ag_live_…" } } } }
Claude Code
claude mcp add appsgolem \
  -e APPSGOLEM_API_KEY=ag_live_… \
  -- npx -y appsgolem-mcp
Codex CLI — ~/.codex/config.toml
[mcp_servers.appsgolem]
command = "npx"
args = ["-y", "appsgolem-mcp"]
env = { APPSGOLEM_API_KEY = "ag_live_…" }
cut_youtube_video()
Dien een knipopdracht in (elke modus, opties, of een clips-array) en krijg een download-URL terug.
get_cut_status()
Controleer een taak via id en haal de download-URL op.
get_account_balance()
Je beschikbare credits en uurlimiet.
Wat je tegen je agent kunt zeggen — elke functie
“Knip een video van 0:30 tot 1:15 in 1080p”
cut_youtube_video(url, start="0:30", end="1:15", resolution="1080p")
“Haal het audiospoor van die video van 2:00–5:00 op als 320 kbps MP3”
cut_youtube_video(…, mode="audio_only", audio_format="mp3", bitrate="320")
“Exporteer de video en een MP3 van de eerste 30 seconden”
cut_youtube_video(…, end="0:30", mode="both")
“Maak een verticale 9:16-short van het highlight van 10:00–10:45”
cut_youtube_video(…, start="10:00", end="10:45", mode="short")
“Zet 0:05–0:12 om in een GIF”
cut_youtube_video(…, mode="gif")
“Maak een contact sheet met een frame elke 5 seconden van 1:00–2:00”
cut_youtube_video(…, mode="frames", interval_ms=5000, sheet=true)
“Stitch 0:10–0:20 en 1:00–1:10 tot één clip”
cut_youtube_video(url, clips=[…], stitch=true)
“Doe een fast, stream-copy-knip van de eerste 30 seconden”
cut_youtube_video(…, end="0:30", fast=true)
“Knip 0:00–0:20 op 1.5× snelheid, in 4K”
cut_youtube_video(…, speed=1.5, resolution="2160p")
“Hoeveel API-credits heb ik nog over?”
get_account_balance()
“Controleer de status van job e48d…b1a2”
get_cut_status(job_id="e48d…b1a2")
De agent vult de parameters in op basis van je verzoek — je hoeft geen JSON te schrijven.
API-referentie

Elk endpoint, met voorbeelden.

Vier endpoints. De drie lees-/schrijfendpoints vereisen Authorization: Bearer <key>; de download-URL wordt geautoriseerd door zijn eigen token en heeft dus geen header nodig.

POST /v1/cuts Bearer
Aanvraag · video
{ "url": "https://youtu.be/aqz-KE-bpKQ",
  "start": "0:00", "end": "0:10",
  "resolution": "1080p", "mode": "video" }
Antwoord · 202 Accepted
{ "id": "e48db1a2-…", "state": "queued", "credits_reserved": 1, "poll_url": "/v1/cuts/e48db1a2-…" }
Geef ofwel start+end of een clips-array mee (1–10 vensters). Voeg een Idempotency-Key-header toe (≤200 tekens), zodat een herhaald verzoek dezelfde job hergebruikt in plaats van twee keer te rekenen.
Aanvraagbody per modus
audio_onlymp3 · m4a · wav · flac
{ "url":"youtu.be/…", "start":"2:00", "end":"5:00",
  "mode":"audio_only",
  "audio_format":"mp3", "bitrate":"320" }
bothMP4 + MP3, gezipt
{ "url":"youtu.be/…", "start":"0:00", "end":"0:30",
  "mode":"both", "resolution":"1080p" }
short9:16 AI-smart-crop
{ "url":"youtu.be/…", "start":"10:00", "end":"10:45",
  "mode":"short" }
nosoundMP4, zonder audio
{ "url":"youtu.be/…", "start":"0:00", "end":"0:15",
  "mode":"nosound", "fast":true }
gif≤ 5 min, één clip
{ "url":"youtu.be/…", "start":"0:05", "end":"0:12",
  "mode":"gif" }
framesJPG-stills · ≤ 1800
{ "url":"youtu.be/…", "start":"1:00", "end":"2:00",
  "mode":"frames", "interval_ms":5000,
  "sheet":true }
clips + stitch1–10 → één bestand
{ "url":"youtu.be/…", "mode":"video",
  "clips":[{"start":"0:10","end":"0:20"},
          {"start":"1:00","end":"1:10"}],
  "stitch":true }
speed · 4K0.5–2× · 2160p
{ "url":"youtu.be/…", "start":"0:00", "end":"0:20",
  "mode":"video", "speed":1.5,
  "resolution":"2160p" }
GET /v1/cuts/{id} Bearer
Antwoord · 200 · produced
{ "id": "e48db1a2-…", "state": "produced", "credits_reserved": 1,
  "created_at": "2026-08-22T12:00:00+00:00",
  "download_url": "/v1/download/…/clip.mp4" }
state is een van accepted · queued · produced · delivered · failed · refunded. download_url verschijnt zodra een token gereed is — als het ontbreekt, pol dan opnieuw.
GET /v1/account Bearer
Antwoord · 200
{ "balance": 412, "hourly_cap": 60 }
GET /v1/download/{token}/{file} Token in URL
Antwoord · 200
# streams the file
Content-Type: video/mp4
Content-Disposition: attachment; filename="clip.mp4"
Geen Bearer-header — de token in het pad autoriseert deze. De URL is herbruikbaar totdat deze verloopt.
Fouten

Elke fout retourneert een JSON-body met een error-code en de HTTP-status. Probeer 429 opnieuw na retry_after seconden; corrigeer en dien opnieuw in bij een 400.

402 insufficient_credits
{ "error":"insufficient_credits",
  "message":"need 2 credits", "balance":1 }
429 rate_limited
{ "error":"rate_limited",
  "retry_after":12 }
400 invalid_*
{ "error":"invalid_resolution",
  "message":"resolution must be…" }
401 · 404
{ "error":"invalid_api_key" }  // 401
{ "error":"not_found" }        // 404
Rate limit: Alleen knipindieningen zijn snelheidsbeperkt — de indieningen/uur van je pakket (zie Prijzen). Het opvragen van de voortgang van een taak is bij normaal gebruik niet snelheidsbeperkt, dus pollen telt nooit mee voor die limiet. Houd je in elk antwoord aan poll_after (en aan Retry-After bij de zeldzame 429); de MCP-tool regelt dit tempo voor je met wait=true.
Mogelijkheden

Elke modus die de webcutter heeft.

MODE video
MP4 tot 4K
144p–2160p, 60fps, geen watermerk.
MODE audio_only
Audio
mp3 / m4a / wav / flac, instelbare bitrate.
MODE both
Video + audio
MP4 en MP3 samen, als zip-bestand.
MODE nosound
Video zonder geluid
Video zonder audiospoor.
MODE short
9:16 verticaal
AI smart-crop voor Shorts, Reels en TikTok; valt terug op een letterbox-vervaging wanneer niet beschikbaar.
MODE gif
Geanimeerde GIF
Tot 5 minuten, direct vanaf een clip.
MODE frames
JPG-frames
Elke 100ms–10s, tijdstempels + contactsheet.
OPTION fast
Snelle modus
Stream-copy, ongeveer 10× sneller; behoudt de broncontainer (WebM bij 1440p/2160p).
OPTION speed
Snelheid 0.5–2×
Pas de afspeelsnelheid aan bij het exporteren.
OPTION clips
Meerdere clips samenvoegen
Tot 10 vensters, samengevoegd tot één bestand.
Referentie

Parameters

Veld
Type
Opmerkingen
url
string
YouTube watch / share / youtu.be URL.
start, end
string
"SS" / "MM:SS" / "HH:MM:SS" (≤ 300h). Laat weg bij gebruik van clips.
resolution
enum
144p · 240p · 360p · 480p · 720p · 1080p · 1440p · 2160p (4K; totale knipduur ≤ 60 min).
mode
enum
video · audio_only · both · nosound · short · gif · frames.
audio_format
enum
mp3 · m4a · wav · flac — alleen voor audio_only; both is altijd MP3.
bitrate
enum
Verlieslatende bitrate 320 · 256 · 192 · 128 kbps — MP3/M4A (audio_only), MP3 (both); genegeerd voor wav/flac.
fast
boolean
Streamkopie, ongeveer 10× sneller — alleen video, nosound, both; forceert snelheid naar 1×.
speed
number
Afspeelsnelheid 0.5 · 1 · 1.25 · 1.5 · 2 — video, nosound, both, audio_only.
interval_ms
integer
Sampling van beelden: 100 · 500 · 1000 · 2000 · 5000 · 10000 ms; ≤ 1800 JPG's in totaal.
burn_ts
boolean
Beelden — brandt de brontijdstempel in elke JPG.
sheet
boolean
Beelden — één contactsheet-JPG (één clip); schakelt burn_ts uit.
clips
array
1–10 {start,end} vensters; gebruik stitch om ze tot één bestand samen te voegen.
stitch
boolean
Met clips voegt u ze samen tot één bestand — video, audio_only, both, short, nosound.
Idempotency-Key
header
Verzonden als HTTP-header (≤ 200 tekens), niet als body-veld — nieuwe pogingen hergebruiken dezelfde taak.
Endpoints: POST /v1/cuts · GET /v1/cuts/{id} · GET /v1/account — Bearer-geauthenticeerd.
GET /v1/download/{token}/{file} — geauthenticeerd via het URL-token, geen Bearer-header.
Prijzen

Betaal voor clips, niet voor gebruikers.

Prepaid-credits vormen de basis van de AppsGolem cutter-API & MCP-server — één gemaakte clip is één credit, en mislukte knippen worden nooit in rekening gebracht. Koop een pakket voor incidenteel gebruik, of neem een abonnement voor een gestaag maandelijks volume en een hogere rate limit.

№ 01  /  Vooruitbetaalde pakketten

Betaal per gebruik.

Eenmalige aankoop, geen verlenging. Credits blijven 12 maanden geldig.

Starterspakket
€5 eenmalig

25 credits · ≈ 25 standaardclips

12 maanden geldig

Aan de slag
PAYG-pakket Beste prijs-kwaliteit
€25 eenmalig

150 credits · ≈ 150 standaardclips

12 maanden geldig · €0,17 / credit

Aan de slag

№ 02  /  Abonnementen

Elke maand knippen.

Credits worden elke periode vernieuwd en je rate limit gaat omhoog. Altijd opzegbaar.

Starter
€19 / mnd

of €190 / jr · 2 maanden gratis

250 credits / maand

  • 30 aanvragen / uur
  • Credits worden maandelijks vernieuwd
  • Altijd opzegbaar
Aan de slag
★ Meest gekozen Pro
€49 / mnd

of €490 / jr · 2 maanden gratis

1000 credits / maand

  • 60 aanvragen / uur
  • Credits worden maandelijks vernieuwd
  • Altijd opzegbaar
Aan de slag
Scale
€149 / mnd

of €1490 / jr · 2 maanden gratis

5000 credits / maand

  • 120 aanvragen / uur
  • Credits worden maandelijks vernieuwd
  • Altijd opzegbaar
Aan de slag

Abonnementen kennen de credits van de hele periode meteen vooraf toe en verhogen je aanvragen/uur-limiet. Jaarabonnementen rekenen 10 maanden voor 12.

№ 03  /  Hoe credits werken

Wat knippen kost.

  • Standaardclip (tot 1080p; alleen audio in elke resolutie)1 credit
  • 4K (2160p) videoclip4 credits
  • Bron langer dan 2 h (indien bekend)+1 / taak
  • Batch van N clips (zip of aan elkaar geplakt)N × per clip

Uitgewerkt voorbeeld

Drie 1080p-highlights + één 4K-clip uit een video van 25 minuten → 3×1 + 4 = 7 credits.

Een podcast van 3 uur, geknipt tot één MP3 → 1 + 1 = 2 credits (de +1 is de >2 h-toeslag).

№ 04  /  FAQ

Goed om te weten.

Wat is een credit?

Eén gemaakte clip = één credit. 4K-clips tellen voor 4, en bij een batch wordt vermenigvuldigd met het aantal clips.

Verlopen credits?

Pakketcredits blijven 12 maanden geldig. Abonnementscredits gelden voor de facturatieperiode waarin ze zijn toegekend.

Wat is de aanvragen/uur-limiet?

Hoeveel API-aanroepen je per uur mag doen. Pakketten houden de standaard 30 aan; Pro verhoogt dit naar 60 en Scale naar 120.

Kan ik altijd opzeggen?

Ja. Abonnementen zeg je met één klik op; credits die al zijn toegekend, behoud je totdat ze verlopen.

Wat als een knip mislukt?

Mislukte knippen worden nooit in rekening gebracht — gereserveerde credits worden automatisch terugbetaald zolang de toekenning nog geldig is.

Kan ik pakketten met een abonnement combineren?

Ja. Credits van pakketten en abonnementen worden opgeteld; het tegoed dat het eerst verloopt, wordt altijd het eerst gebruikt.