Appearance
Clip
GET /v1/twitch/clip
Fetches detailed data for a Twitch clip by URL, including metadata and direct video URLs. Returns clip id, slug, url, embedURL, title, viewCount, language, durationSeconds, game info, broadcaster details with follower count, thumbnailURL, and videoQualities at multiple resolutions with a signed videoURL for playback. Also includes additional clips from the same broadcaster.
Authentication
All requests require the x-api-key header. Get your key at scrapecreators.com.
Query Parameters
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
url | string | yes | Twitch clip URL | https://www.twitch.tv/staryuuki/clip/CloudySavageMarjoramRuleFive--ErzsYbE7UWvgCMQ?filter=clips&range=all&sort=time |
Example Request
curl
bash
curl 'https://api.scrapecreators.com/v1/twitch/clip?url=https://www.twitch.tv/staryuuki/clip/CloudySavageMarjoramRuleFive--ErzsYbE7UWvgCMQ?filter=clips&range=all&sort=time' \
-H 'x-api-key: $SCRAPECREATORS_API_KEY'Node / TypeScript
js
const params = new URLSearchParams({ url: 'https://www.twitch.tv/staryuuki/clip/CloudySavageMarjoramRuleFive--ErzsYbE7UWvgCMQ?filter=clips&range=all&sort=time' });
const res = await fetch(`https://api.scrapecreators.com/v1/twitch/clip?${params}`, {
headers: { 'x-api-key': process.env.SCRAPECREATORS_API_KEY }
});
const data = await res.json();
console.log(data);Python
python
import os, requests
r = requests.get(
'https://api.scrapecreators.com/v1/twitch/clip',
headers={'x-api-key': os.environ['SCRAPECREATORS_API_KEY']},
params={'url': 'https://www.twitch.tv/staryuuki/clip/CloudySavageMarjoramRuleFive--ErzsYbE7UWvgCMQ?filter=clips&range=all&sort=time'},
)
r.raise_for_status()
print(r.json())CLI
bash
scrapecreators twitch clip --helpExample Response
json
[
{
"data": {
"clip": {
"id": "387484507",
"slug": "CloudySavageMarjoramRuleFive--ErzsYbE7UWvgCMQ",
"url": "https://clips.twitch.tv/CloudySavageMarjoramRuleFive--ErzsYbE7UWvgCMQ",
"embedURL": "https://clips.twitch.tv/embed?clip=CloudySavageMarjoramRuleFive--ErzsYbE7UWvgCMQ",
"title": "un grande el mesero",
"viewCount": 52441,
"language": "ES",
"isFeatured": true,
"assets": [
{
"id": "AT-cm|W4NkMPhK87GGxO1Fr4AjEA",
"aspectRatio": 1.7777777777777777,
"type": "SOURCE",
"createdAt": "2024-03-30T21:52:12.134391826Z",
"creationState": "CREATED",
"curator": {
"id": "192477639",
"login": "satagul_sy",
"displayName": "Satagul_SY",
"profileImageURL": "https://static-cdn.jtvnw.net/jtv_user_pictures/a7d1cf0c-6482-475c-a7ba-9fedf75f0149-profile_image-50x50.png",
"__typename": "User"
},
"thumbnailURL": "https://clips-media-assets2.twitch.tv/W4NkMPhK87GGxO1Fr4AjEA/AT-cm%7CW4NkMPhK87GGxO1Fr4AjEA-preview-480x272.jpg",
"videoQualities": [
{
"frameRate": 60.01382974851694,
"quality": "1080",
"sourceURL": "https://production.assets.clips.twitchcdn.net/W4NkMPhK87GGxO1Fr4AjEA/AT-cm%7CW4NkMPhK87GGxO1Fr4AjEA.mp4",
"__typename": "ClipVideoQuality"
}
],
"portraitMetadata": null,
"__typename": "ClipAsset"
}
],
"curator": {
"id": "192477639",
"login": "satagul_sy",
"displayName": "Satagul_SY",
"profileImageURL": "https://static-cdn.jtvnw.net/jtv_user_pictures/a7d1cf0c-6482-475c-a7ba-9fedf75f0149-profile_image-70x70.png",
"__typename": "User"
},
"game": {
"id": "509672",
"name": "IRL",
"boxArtURL": "https://static-cdn.jtvnw.net/ttv-boxart/509672-52x72.jpg",
"displayName": "IRL",
"slug": "irl",
"__typename": "Game"
},
"broadcast": {
"id": "43930529883",
"title": null,
"__typename": "Broadcast"
},
"broadcaster": {
"id": "167189231",
"login": "staryuuki",
"displayName": "Staryuuki",
"primaryColorHex": "689AFF",
"isPartner": true,
"profileImageURL": "https://static-cdn.jtvnw.net/jtv_user_pictures/b45a3305-bc42-41cc-a754-e6679a2d9ef0-profile_image-70x70.png",
"followers": {
"totalCount": 3450065,
"__typename": "FollowerConnection"
},
"stream": null,
"lastBroadcast": {
"id": "314597248121",
"startedAt": "2025-01-23T06:52:10.179125Z",
"__typename": "Broadcast"
},
"self": null,
"__typename": "U
... (truncated)Credits
Most ScrapeCreators endpoints consume 1 credit per successful response. Some heavier endpoints (transcripts, AI-driven enrichment, ad detail lookups) may cost more. Check GET /v1/credit-balance for your remaining balance.
Errors
| Status | Meaning | Action |
|---|---|---|
| 200 | Success. | Use the JSON payload. |
| 400 | Invalid or missing parameter. | Verify required parameters and value format. |
| 401 | Missing or invalid x-api-key. | Pass a valid API key in the header. |
| 402 | Out of credits. | Top up at scrapecreators.com or wait for plan reset. |
| 404 | Resource not found or private. | Confirm the handle, URL, or id and that the resource is public. |
| 429 | Rate limited. | Backoff and retry with exponential delay. |
| 500 | Server error or upstream platform failure. | Retry with backoff; report persistent errors to support. |