twitch.tv APIwww.twitch.tv ↗
Access Twitch streamer profiles, search channels, and browse live streams by category. Get followers, partner status, viewer counts, and stream metadata.
curl -X GET 'https://api.parse.bot/scraper/58a628f7-dce2-4ee3-9adc-7acd8397acd9/get_streamer_profile?username=ninja' \ -H 'X-API-Key: $PARSE_API_KEY'
Get detailed profile information for a Twitch streamer including followers, description, partner status, social links, and current live stream details if streaming.
| Param | Type | Description |
|---|---|---|
| usernamerequired | string | Twitch username/login (e.g., 'ninja', 'shroud') |
{
"type": "object",
"fields": {
"id": "string - Twitch user ID",
"login": "string - lowercase login name",
"stream": "object|null - current stream info (id, viewers_count, started_at, game) when live",
"is_live": "boolean - whether currently streaming",
"is_partner": "boolean - whether the streamer is a Twitch partner",
"description": "string|null - channel description",
"display_name": "string - display name with original casing",
"is_affiliate": "boolean - whether the streamer is a Twitch affiliate",
"social_links": "array|null - array of social media link objects with name, title, url",
"last_broadcast": "object|null - last broadcast info (game) when offline",
"followers_count": "integer|null - total follower count",
"banner_image_url": "string|null - URL to banner image",
"primary_color_hex": "string|null - hex color code without hash",
"profile_image_url": "string - URL to profile image"
},
"sample": {
"data": {
"id": "19571641",
"login": "ninja",
"stream": null,
"is_live": false,
"is_partner": true,
"description": "Just want to make people happy.",
"display_name": "Ninja",
"is_affiliate": false,
"social_links": [
{
"url": "https://www.instagram.com/ninja",
"name": "instagram",
"title": "Instagram"
}
],
"last_broadcast": {
"game": "ARC Raiders"
},
"followers_count": 19259664,
"banner_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/36b341d1-0ee2-4cb2-ae00-361740b0051d-profile_banner-480.png",
"primary_color_hex": "1F69FF",
"profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/90d40495-f467-4911-9035-72d8d10a49c5-profile_image-70x70.png"
},
"status": "success"
}
}About the twitch.tv API
This API exposes three endpoints covering Twitch streamer profiles, channel search, and live stream discovery. The get_streamer_profile endpoint returns over 10 fields per channel including follower counts, partner and affiliate status, social links, and real-time stream data when the broadcaster is live. Use search_streamers to find channels by name or keyword, or get_live_streams to pull currently active broadcasts filtered by game category and sorted by viewer count.
Streamer Profiles
The get_streamer_profile endpoint accepts a Twitch username and returns the channel's id, login, display_name, description, and boolean flags for is_partner and is_affiliate. When the channel is live, the stream object includes viewers_count, started_at, and the current game. When offline, last_broadcast carries the most recent game played. The social_links array surfaces any external links the broadcaster has added to their channel page, each with a name, title, and url.
Channel Search
search_streamers takes a free-text query and returns a ranked list of matching channels. Each result in the channels array includes profile_image_url, followers_count, is_live, is_partner, and a short description. The response also exposes a total count of matching results, useful for gauging how saturated a game or keyword is across the platform.
Live Stream Discovery
get_live_streams returns active broadcasts and accepts three optional parameters: category (a slug such as just-chatting, fortnite, or league-of-legends), sort (RELEVANCE, VIEWER_COUNT, or VIEWER_COUNT_ASC), and limit (1–100). Each stream object in the streams array includes title, viewers_count, started_at, broadcaster, game, and tags. The response includes a cursor field and has_next_page boolean for paginating through additional results.
- Track whether a specific streamer is live and how many viewers they have in real time using
is_liveandstream.viewers_count. - Build a brand sponsorship tool that filters potential partners by
is_partner,followers_count, and category. - Monitor competitor channels in a game category by querying
get_live_streamswith a specificcategoryslug sorted byVIEWER_COUNT. - Aggregate social media profiles for streamers using the
social_linksarray fromget_streamer_profile. - Classify streamers as partner, affiliate, or neither using the
is_partnerandis_affiliateflags for tiered outreach. - Build a stream discovery feed that surfaces top live broadcasts across all categories by calling
get_live_streamswithout a category filter. - Identify trending game categories by comparing
viewers_counttotals across multipleget_live_streamscategory queries.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Twitch have an official developer API?+
What does `get_streamer_profile` return when a channel is offline?+
is_live is false, the stream field is null. The last_broadcast object is returned instead, containing the game from the most recent stream session.Can I retrieve historical stream data or VODs through this API?+
Does `get_live_streams` support pagination?+
cursor string and a has_next_page boolean when additional results exist. Pass the cursor value in a subsequent request to retrieve the next page of streams.Are subscriber counts or subscription tier data available?+
followers_count and partnership/affiliate status flags. You can fork this API on Parse and revise it to add a subscriber-focused endpoint if that data is accessible.