Cut YouTube clips from your code.
A simple REST API and an MCP server for AI agents — everything the web cutter does, programmatically. Prepaid credits, no subscription.
# 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"}'
New here? The whole model in a minute.
You buy prepaid credits, create an API key, and call one endpoint to cut a clip. Cutting is asynchronous: you submit a job, poll until it's produced, then download the file from a tokenized URL. The MCP server wraps all of that into a single tool call for AI agents. No subscription, no seats — you pay per produced clip.
From zero to a clip in four calls.
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"}'
import httpx r = httpx.post("https://appsgolem.com/v1/cuts", headers={"Authorization": "Bearer ag_live_…"}, json={"url": "https://youtu.be/aqz-KE-bpKQ", "start": "0:00", "end": "0:10", "resolution": "1080p", "mode": "video"}) print(r.json()) # {"id": "…", "state": "queued"}
const r = await fetch("https://appsgolem.com/v1/cuts", { method: "POST", headers: { Authorization: "Bearer ag_live_…" }, body: JSON.stringify({ url: "https://youtu.be/aqz-KE-bpKQ", start: "0:00", end: "0:10", resolution: "1080p", mode: "video" }), }); console.log(await r.json());
{ "id": "e48d…b1a2", "state": "queued", "credits_reserved": 1, "poll_url": "/v1/cuts/e48d…b1a2" }
# GET /v1/cuts/{id} — repeat every few seconds until state is produced { "state": "produced", "download_url": "/v1/download/…/clip.mp4" }
One line for Claude, Cursor & Codex.
The MCP server exposes the cutter as three tools any MCP client can call. Install with npx — nothing to install globally.
{ "mcpServers": {
"appsgolem": {
"command": "npx",
"args": ["-y","appsgolem-mcp"],
"env": { "APPSGOLEM_API_KEY":
"ag_live_…" } } } }
claude mcp add appsgolem \
-e APPSGOLEM_API_KEY=ag_live_… \
-- npx -y appsgolem-mcp
[mcp_servers.appsgolem] command = "npx" args = ["-y", "appsgolem-mcp"] env = { APPSGOLEM_API_KEY = "ag_live_…" }
Every endpoint, with examples.
Four endpoints. The three read/write endpoints take Authorization: Bearer <key>; the download URL is authorized by its own token, so it needs no header.
{ "url": "https://youtu.be/aqz-KE-bpKQ",
"start": "0:00", "end": "0:10",
"resolution": "1080p", "mode": "video" }
{ "id": "e48db1a2-…", "state": "queued", "credits_reserved": 1, "poll_url": "/v1/cuts/e48db1a2-…" }
{ "url":"youtu.be/…", "start":"2:00", "end":"5:00",
"mode":"audio_only",
"audio_format":"mp3", "bitrate":"320" }
{ "url":"youtu.be/…", "start":"0:00", "end":"0:30",
"mode":"both", "resolution":"1080p" }
{ "url":"youtu.be/…", "start":"10:00", "end":"10:45",
"mode":"short" }
{ "url":"youtu.be/…", "start":"0:00", "end":"0:15",
"mode":"nosound", "fast":true }
{ "url":"youtu.be/…", "start":"0:05", "end":"0:12",
"mode":"gif" }
{ "url":"youtu.be/…", "start":"1:00", "end":"2:00",
"mode":"frames", "interval_ms":5000,
"sheet":true }
{ "url":"youtu.be/…", "mode":"video",
"clips":[{"start":"0:10","end":"0:20"},
{"start":"1:00","end":"1:10"}],
"stitch":true }
{ "url":"youtu.be/…", "start":"0:00", "end":"0:20",
"mode":"video", "speed":1.5,
"resolution":"2160p" }
{ "id": "e48db1a2-…", "state": "produced", "credits_reserved": 1,
"created_at": "2026-08-22T12:00:00+00:00",
"download_url": "/v1/download/…/clip.mp4" }
{ "balance": 412, "hourly_cap": 60 }
# streams the file
Content-Type: video/mp4
Content-Disposition: attachment; filename="clip.mp4"
Every failure returns a JSON body with an error code and the HTTP status. Retry 429 after retry_after seconds; fix and resubmit on a 400.
{ "error":"insufficient_credits",
"message":"need 2 credits", "balance":1 }
{ "error":"rate_limited",
"retry_after":12 }
{ "error":"invalid_resolution",
"message":"resolution must be…" }
{ "error":"invalid_api_key" } // 401
{ "error":"not_found" } // 404
Every mode the web cutter has.
Parameters
GET /v1/download/{token}/{file} — authed by the URL token, no Bearer header.
Pay for clips, not seats.
Prepaid credits power the AppsGolem cutter API & MCP server — one produced clip is one credit, and failed cuts are never billed. Buy a pack for occasional use, or subscribe for steady monthly volume and a higher rate limit.
№ 01 / Prepaid packs
Pay as you go.
One-time purchase, no renewal. Credits stay valid for 12 months.
150 credits · ≈ 150 standard clips
Valid 12 months · €0.17 / credit
Get started№ 02 / Subscriptions
Cut every month.
Credits refresh each period and your rate limit goes up. Cancel anytime.
or €190 / yr · 2 months free
250 credits / month
- 30 requests / hour
- Credits refresh monthly
- Cancel anytime
or €490 / yr · 2 months free
1000 credits / month
- 60 requests / hour
- Credits refresh monthly
- Cancel anytime
or €1490 / yr · 2 months free
5000 credits / month
- 120 requests / hour
- Credits refresh monthly
- Cancel anytime
≈ €15.83 / mo · 2 months free
3000 credits / year
- 30 requests / hour
- Full year of credits up front
- Cancel anytime
≈ €40.83 / mo · 2 months free
12000 credits / year
- 60 requests / hour
- Full year of credits up front
- Cancel anytime
≈ €124.17 / mo · 2 months free
60000 credits / year
- 120 requests / hour
- Full year of credits up front
- Cancel anytime
Subscriptions grant the full period’s credits up front and raise your requests/hour cap. Annual plans bill 10 months for 12.
№ 03 / How credits work
What a cut costs.
- Standard clip (up to 1080p; audio-only at any resolution)1 credit
- 4K (2160p) video clip4 credits
- Source longer than 2 h (when known)+1 / job
- Batch of N clips (zip or stitch)N × per-clip
Worked example
Three 1080p highlights + one 4K clip from a 25-min video → 3×1 + 4 = 7 credits.
A 3-hour podcast trimmed to one MP3 → 1 + 1 = 2 credits (the +1 is the >2 h surcharge).
№ 04 / FAQ
Good to know.
What is a credit?
One produced clip = one credit. 4K clips are 4, and a batch multiplies by the number of clips.
Do credits expire?
Pack credits stay valid for 12 months. Subscription credits last the billing period they were granted in.
What’s the requests/hour cap?
How many API calls you can submit per hour. Packs keep the default 30; Pro raises it to 60 and Scale to 120.
Can I cancel anytime?
Yes. Subscriptions cancel with one click; you keep any credits already granted until they expire.
What if a cut fails?
Failed cuts are never billed — reserved credits are refunded automatically while the grant is still valid.
Can I mix packs and a plan?
Yes. Pack and subscription credits stack; the earliest-expiring bucket is always spent first.