Twitch API Guide: Profiles, Clips and VODs (2026)
Twitch has one of the more generous official APIs among the big platforms. Helix is free, well documented and covers users, clips, videos and schedules. It also has a few traps that cost people days. This guide walks through the parts you need for profile, clip and VOD data, using Twitch's own reference.
Auth in two minutes
Register an app in the Twitch developer console to get a client ID and secret. For public data, an app access token is enough. Twitch's API guide shows the client credentials request:
curl -X POST "https://id.twitch.tv/oauth2/token" -d "client_id=ID&client_secret=SECRET&grant_type=client_credentials"
Every Helix call then sends two headers: Authorization: Bearer TOKEN and Client-Id: ID.
Rate limits
Helix uses a token bucket. Each endpoint costs points, 1 by default, and app tokens and user tokens draw from separate buckets. When a bucket is empty within a minute you get HTTP 429; the Ratelimit-Reset header says when to retry. Read Ratelimit-Remaining on every response and slow down before you hit zero.
The endpoints that matter
| Endpoint | Token | Key details from the reference |
|---|---|---|
Get Users /helix/users | App or user | Look up by login or id, up to 100 in total per call |
Get Clips /helix/clips | App or user | By broadcaster, game or clip ID (up to 100 IDs); started_at and ended_at filters; pagination stops at about 1,000 results |
Get Videos /helix/videos | App or user | By ID (up to 100), user or game (max 500 videos); type archive, highlight or upload; sort by time, trending or views |
Get Channel Stream Schedule /helix/schedule | App or user | Up to 25 segments per page |
Get Channel Followers /helix/channels/followers | User | The follower list needs moderator:read:followers as the broadcaster or a moderator; otherwise you get only the total |
Get Clips Download /helix/clips/downloads | Needs editor:manage:clips or channel:manage:clips | For channels you edit; limited to 100 requests a minute |
All details are from the Helix reference. Two consequences: you cannot download other channels' clip files through Helix, and there is no transcript or captions endpoint.
The 1,000-clip trap
The reference says that when paging through clips, you get about 1,000 results at most over all requests. For a popular streamer that is a fraction of their clips. The fix Twitch suggests is to split by time. If you set only started_at, the window is one week, so walk week by week:
import datetime as dt, requests
H = {"Authorization": "Bearer TOKEN", "Client-Id": "ID"}
def clips(broadcaster_id, start, end):
week = dt.timedelta(days=7)
while start < end:
params = {"broadcaster_id": broadcaster_id, "first": 100,
"started_at": start.isoformat() + "Z",
"ended_at": min(start + week, end).isoformat() + "Z"}
while True:
r = requests.get("https://api.twitch.tv/helix/clips", headers=H, params=params).json()
yield from r["data"]
cursor = r.get("pagination", {}).get("cursor")
if not cursor:
break
params["after"] = cursor
start += week
If a single week still returns close to 1,000 clips, shrink the window to a day.
VODs: list fast, keep what you need
Get Videos with user_id and type=archive lists past broadcasts; highlight and upload are the other types. Past broadcasts are not kept forever on Twitch, and how long they last depends on the channel, so if you study VODs, record their metadata on a schedule instead of assuming you can fetch it later.
Mistakes to avoid
- A new token per request. Cache the app token and reuse it until it expires or calls start returning 401.
- Forgetting the Client-Id header. Helix rejects calls whose Client-Id does not match the token.
- Treating game_id results as complete. Get Videos by game returns at most 500 videos. Query by user for full lists.
- Mixing token types. App and user tokens have separate rate buckets. Use app tokens for public reads so you do not drain a user's bucket.
A checklist for creator research on Twitch
- Resolve logins to IDs once with Get Users and store the ID. Logins can change.
- Pull the total followers from Get Channel Followers.
- Count streams per week from archive VODs and their durations.
- Sum clip views over the last 30 days. Clips show which moments the audience shares.
- Read the schedule to see how consistent the creator is.
Doing it with ScrapeIO
Helix is free, and if you are happy managing tokens and IDs it is a fine choice. ScrapeIO is for when you want handle-based calls in the same schema as YouTube or TikTok: the Twitch profile API, Twitch user videos API, Twitch schedule API, Twitch clip API, and a Twitch clip transcript API, which Helix does not offer. See the Twitch endpoints.
Sources
Checked on 8 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.
100 free credits, no card. Credits never expire.
Get API key