Kick Transcript API —
clip URL in, transcript out.
Send a Kick clip URL, get back the transcript as JSON. Kick clips rarely have captions, so AI transcription is built in — no extra parameter, no second call. Built for clipping tools, highlight channels, and stream analytics. Example: https://kick.com/xqc/clips/clip_01M3SXGX1A2VJ81RFM56NM8ZZQ
/api/kick/transcript What the API handles.
Every Kick URL format below resolves to the same JSON response shape — no branching logic needed in your client code.
kick.com/{channel}/clips/{clip_id} — the canonical Kick clip URL.kick.com/{channel}?clip={clip_id} form that appears when a clip is opened from a channel page. Normalized for you server-side.transcript_source tells you whether you got "native" captions or "ai".Full docs at docs.transcriptmagic.com.
Per-platform response schemas, language-specific code samples (cURL, Python, JavaScript, Go, PHP), error catalog, and rate-limit headers all live on the docs subdomain. Built for both humans and agents.
One credit per call.
Every Kick clip that returns a transcript uses 1 credit — captions or AI, same price. Clips with no detectable speech are free. View the full plan breakdown and annual pricing on the pricing page.
What devs build with it.
Real pipelines shipping real revenue. If you're doing something new, email us — we love hearing what teams are building.
Questions devs ask.
The short answers. For anything else, email [email protected] — same-day reply.
Which Kick URLs does the API accept?
Kick clip URLs in either format: kick.com/{channel}/clips/{clip_id} or kick.com/{channel}?clip={clip_id}. The ?clip= form is normalized to the clip page URL for you. VODs, channel pages, and live streams return a 400.
How do I authenticate?
Send your API key as a Bearer token: Authorization: Bearer sk_live_…, with a JSON body of {"url": "…"}. It’s the same key and auth as every other TranscriptMagic endpoint — create one on the API keys page.
What does the response look like?
A flat JSON object with success, id, url, transcript (plain text), transcript_source ("native" or "ai"), and credits (remaining balance). No timestamps, title, or thumbnail are returned.
Do I need to do anything special for clips without captions?
No. AI transcription kicks in automatically when a clip has no captions, which is most Kick clips. The response is the same shape — only transcript_source changes to "ai".
Is there a clip length limit?
AI transcription works on clips up to 2 minutes long, which covers most Kick clips. A longer clip without captions can’t be transcribed yet — the API returns a 422 with code: "too_long", and no credit is used.
How is each call billed?
1 credit per clip that returns a transcript, captions or AI. Cache hits, clips with no detectable speech, and error responses don’t consume credits.
Can I transcribe a full Kick stream?
No — this endpoint is clips only. To get text for a moment in a past stream, clip it on Kick and send the clip URL.
Other platforms & references.
Add Kick clip transcripts — in one call.
Free credits included. No credit card required. One API key works across every platform endpoint.