How to get Twitch clip
GET request to /v1/twitch/clip with your input. You get clean JSON back in seconds for 1 credit per call — no OAuth, scraping or platform SDKs. Twitch clip — curator vs channel, signedVideoUrl, unwrapped token, relatedClips (1 credit).How to get Twitch clip (step by step)
- 1
Get a free API key
Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.
- 2
Call the Twitch Clip API
Send an authenticated GET request to /v1/twitch/clip with your input. No OAuth, no scraping setup.
- 3
Read the JSON response
Parse the clean JSON response. Pass cache=true for a free 24h cache hit; default is always fresh.
Code example
curl "https://api.captapi.com/v1/twitch/clip?url=https%3A%2F%2Fwww.twitch.tv%2Fshroud%2Fclip%2FTangentialBillowingJalapenoYee-ccA2oB1pEYh4CHWJ" \
-H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."What the response looks like
{
"success": true,
"data": {
"platform": "twitch",
"id": "2358589597",
"slug": "TangentialBillowingJalapenoYee-ccA2oB1pEYh4CHWJ",
"url": "https://www.twitch.tv/shroud/clip/TangentialBillowingJalapenoYee-ccA2oB1pEYh4CHWJ",
"embedUrl": "https://clips.twitch.tv/embed?clip=TangentialBillowingJalapenoYee-ccA2oB1pEYh4CHWJ",
"title": "F Shroud",
"createdAt": "2023-06-02T11:41:50Z",
"durationSeconds": 28,
"views": 563379,
"thumbnail": "https://static-cdn.jtvnw.net/twitch-video-assets/twitch-vap-video-assets-prod-us-west-2/5696a6a8-e053-4c2e-a54c-5ca62c48102e/landscape/thumb/thumb-0000000000-1920x1080.jpg",
"videoUrl": "https://d1ndex63qxojbr.cloudfront.net/nauth/5696a6a8-e053-4c2e-a54c-5ca62c48102e/landscape/avc/1080/index.mp4",
"signedVideoUrl": "https://d1ndex63qxojbr.cloudfront.net/nauth/5696a6a8-e053-4c2e-a54c-5ca62c48102e/landscape/avc/1080/index.mp4?sig=7da5151dc178b490e3b9d2c0dc2fa41f385c3a9e&token=%7B%22authorization%22%3A%7B%22forbidden%22%3Afalse%2C%22reason%22%3A%22%22%7D%2C%22clip_uri%22%3A%22https%3A%2F%2Fd1ndex63qxojbr.cloudfront.net%2Fnauth%2F5696a6a8-e053-4c2e-a54c-5ca62c48102e%2Flandscape%2Favc%2F1080%2Findex.mp4%22%2C%22clip_slug%22%3A%22TangentialBillowingJalapenoYee-ccA2oB1pEYh4CHWJ%22%2C%22device_id%22%3A%22d27f23ddd907436c844f467a2023bc1b%22%2C%22expires%22%3A1792837438%2C%22user_id%22%3A%22%22%2C%22version%22%3A3%7D",
"videoQualities": [
{
"quality": "1080",
"frameRate": 0,
"url": "https://d1ndex63qxojbr.cloudfront.net/nauth/5696a6a8-e053-4c2e-a54c-5ca62c48102e/landscape/avc/1080/index.mp4",
"signedUrl": "https://d1ndex63qxojbr.cloudfront.net/nauth/5696a6a8-e053-4c2e-a54c-5ca62c48102e/landscape/avc/1080/index.mp4?sig=7da5151dc178b490e3b9d2c0dc2fa41f385c3a9e&token=%7B%22authorization%22%3A%7B%22forbidden%22%3Afalse%2C%22reason%22%3A%22%22%7D%2C%22clip_uri%22%3A%22https%3A%2F%2Fd1ndex63qxojbr.cloudfront.net%2Fnauth%2F5696a6a8-e053-4c2e-a54c-5ca62c48102e%2Flandscape%2Favc%2F1080%2Findex.mp4%22%2C%22clip_slug%22%3A%22TangentialBillowingJalapenoYee-ccA2oB1pEYh4CHWJ%22%2C%22device_id%22%3A%22d27f23ddd907436c844f467a2023bc1b%22%2C%22expires%22%3A1792837438%2C%22user_id%22%3A%22%22%2C%22version%22%3A3%7D"
},
{
"quality": "720",
"frameRate": 0,
"url": "https://d1ndex63qxojbr.cloudfront.net/nauth/5696a6a8-e053-4c2e-a54c-5ca62c48102e/landscape/avc/720/index.mp4",
"signedUrl": "https://d1ndex63qxojbr.cloudfront.net/nauth/5696a6a8-e053-4c2e-a54c-5ca62c48102e/landscape/avc/720/index.mp4?sig=7da5151dc178b490e3b9d2c0dc2fa41f385c3a9e&token=%7B%22authorization%22%3A%7B%22forbidden%22%3Afalse%2C%22reason%22%3A%22%22%7D%2C%22clip_uri%22%3A%22https%3A%2F%2Fd1ndex63qxojbr.cloudfront.net%2Fnauth%2F5696a6a8-e053-4c2e-a54c-5ca62c48102e%2Flandscape%2Favc%2F1080%2Findex.mp4%22%2C%22clip_slug%22%3A%22TangentialBillowingJalapenoYee-ccA2oB1pEYh4CHWJ%22%2C%22device_id%22%3A%22d27f23ddd907436c844f467a2023bc1b%22%2C%22expires%22%3A1792837438%2C%22user_id%22%3A%22%22%2C%22version%22%3A3%7D"
}
],
"language": "en",
"isFeatured": false,
"isPublished": true,
"videoOffsetSeconds": 48930,
"game": "Diablo IV",
"gameId": "515024",
"gameSlug": "diablo-iv",
"gameBoxArtUrl": "https://static-cdn.jtvnw.net/ttv-boxart/515024-285x380.jpg",
"channel": {
"id": "37402112",
"handle": "shroud",
"displayName": "shroud",
"url": "https://www.twitch.tv/shroud",
"avatar": "https://static-cdn.jtvnw.net/jtv_user_pictures/c754eebf-745b-4e0a-814a-10bcaecaabbc-profile_image-150x150.png",
"followers": 11293016,
"isPartner": true,
"lastBroadcast": {
"startedAt": "2026-10-23T03:07:56.600308Z",
"title": "NEW CONTENT NEW WEEK NEW ME MMO MIKE IS BACK AND"
}
},
"curator": {
"id": "165804164",
"handle": "pato_bolado",
"displayName": "Pato_Bolado",
"url": "https://www.twitch.tv/pato_bolado",
"avatar": "https://static-cdn.jtvnw.net/jtv_user_pictures/32755070-71cf-4911-948a-eb6ea0b952e7-profile_image-150x150.png"
},
"playbackAccessToken": {
"signature": "7da5151dc178b490e3b9d2c0dc2fa41f385c3a9e",
"expires": 1792837438,
"expiresAt": "2026-10-24T10:23:58Z",
"clipUri": "https://d1ndex63qxojbr.cloudfront.net/nauth/5696a6a8-e053-4c2e-a54c-5ca62c48102e/landscape/avc/1080/index.mp4",
"clipSlug": "TangentialBillowingJalapenoYee-ccA2oB1pEYh4CHWJ",
"deviceId": "d27f23ddd907436c844f467a2023bc1b",
"version": 3,
"authorization": {
"forbidden": false
}
},
"relatedClips": [
{
"id": "3663533447",
"slug": "SuccessfulEndearingPidgeonPunchTrees-46KXLAMeuS9kpp5Q",
"url": "https://www.twitch.tv/shroud/clip/SuccessfulEndearingPidgeonPunchTrees-46KXLAMeuS9kpp5Q",
"title": "it's gonna be over",
"createdAt": "2023-08-05T10:53:38Z",
"views": 563012,
"durationSeconds": 19,
"language": "en",
"thumbnail": "https://static-cdn.jtvnw.net/twitch-video-assets/twitch-vap-video-assets-prod-us-west-2/05f80190-90b4-4569-94ce-36a01d87b191/landscape/thumb/thumb-0000000000-1920x1080.jpg"
},
{
"id": "1932625054",
"slug": "SlickCoweringRhinocerosShazBotstix-Bx9N2eANyf6VZWyP",
"url": "https://www.twitch.tv/shroud/clip/SlickCoweringRhinocerosShazBotstix-Bx9N2eANyf6VZWyP",
"title": "Shroud hasn't talked to Doc since 2020",
"createdAt": "2024-06-27T22:47:42Z",
"views": 477106,
"durationSeconds": 33,
"language": "en",
"thumbnail": "https://static-cdn.jtvnw.net/twitch-video-assets/twitch-vap-video-assets-prod-us-west-2/91982b7e-a411-4bca-99eb-3c6e15e9a251/landscape/thumb/thumb-0000000000-1920x1080.jpg"
}
]
}
}Billing metadata (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Twitch clip URL (clips.twitch.tv/<slug> or twitch.tv/<channel>/clip/<slug>). The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble. |
| cache | boolean | No | Set true to serve from the response cache (default TTL). Default false — always fetch fresh. Prefer cacheMaxAge when you need 1d–30d freshness control. |
| cacheMaxAge | string | No | Max age of a cached response: 1d, 3d, 7d, 14d, or 30d. When set, enables caching with that TTL. |
Frequently asked questions
What does the Twitch Clip API do?
The Twitch Clip API lets you fetch full metadata and key stats from a public Twitch clip using one GET request to /v1/twitch/clip. It returns clean JSON — no OAuth or infrastructure setup required.
How many credits does the Twitch Clip API cost?
Each successful call costs 1 credit. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.
Do I need a Twitch API key or OAuth?
No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle access, rate limits, retries, and authentication for you.
Can I pass a channel URL?
No — that is a 400, not a 16-second 404. Use clips.twitch.tv/<slug> or twitch.tv/<channel>/clip/<slug>. Channel URLs belong on /twitch/profile.
Is the Twitch Clip API suitable for production use?
Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.
Ready to get Twitch clip?
Start free with 100 credits — no credit card required.
Get your free API key