{"id":"b6ea207b-7e6b-43c9-a387-d1af6953a591","slug":"twitch-tv-api","name":"twitch.tv API","description":"Retrieve Twitch user profiles with detailed information like follower counts and account stats, or search for specific channels to discover streamers and communities. Perfect for building applications that need quick access to Twitch creator data and channel discovery features.","front_facing_description":"Search for Twitch streamers and channels, view their profiles and streaming details, and discover live streams organized by category. Find the content and creators you want to watch all in one place.","source_url":"https://www.twitch.tv/directory/category/pokemon-pokopia","is_authenticated":false,"canonical_scraper_id":"58a628f7-dce2-4ee3-9adc-7acd8397acd9","apis":[{"method":"GET","endpoint_name":"get_streamer_profile","description":"Get detailed profile information for a Twitch streamer including followers, description, partner status, social links, and current live stream details if streaming. Returns null for stream when offline and populates last_broadcast with the most recent game played.","input_params":{"username":{"type":"string","required":true,"description":"Twitch username/login (e.g., 'ninja', 'shroud')","domain":{"kind":"open","generator":{"type":"static","value":"ninja"}}}},"return_schema":{"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"}},"initiates_session":false,"price":1,"verification":{"assertions":[{"path":"$.data.id","op":"not_null"},{"path":"$.data.login","op":"not_null"},{"path":"$.data.display_name","op":"not_null"}],"empty_is_valid":false,"recipe_version":1}},{"method":"GET","endpoint_name":"search_streamers","description":"Search for Twitch channels/streamers by query. Returns matching channels with live status, follower counts, and current stream info. Searches across channel names, stream titles, and game names.","input_params":{"query":{"type":"string","required":true,"description":"Search query (channel name, game name, or keywords)","domain":{"kind":"open","generator":{"type":"static","value":"valorant"}}}},"return_schema":{"type":"object","fields":{"query":"string - the search query used","total":"integer - total number of matching channels","channels":"array of channel objects with id, login, display_name, profile_image_url, is_live, followers_count, is_partner, description, and stream (when live)"}},"initiates_session":false,"price":1,"verification":{"assertions":[{"path":"$.data.query","op":"not_null"},{"path":"$.data.channels","op":"array_min_len","value":1}],"empty_is_valid":false,"recipe_version":1}},{"method":"GET","endpoint_name":"get_live_streams","description":"Get currently live streams, optionally filtered by game/category. Returns streams sorted by relevance or viewer count with broadcaster info, game details, and tags. Supports pagination via cursor.","input_params":{"sort":{"type":"string","required":false,"description":"Sort order for streams.","default":"RELEVANCE","enum":"Sort","domain":{"kind":"enum","values":["RELEVANCE","VIEWER_COUNT","VIEWER_COUNT_ASC"],"generator":{"type":"enum_pick","strategy":"first"}}},"limit":{"type":"integer","required":false,"description":"Number of streams to return (1-100)","default":30,"domain":{"kind":"open","generator":{"type":"static","value":"5"}}},"category":{"type":"string","required":false,"description":"Game/category slug (e.g., 'just-chatting', 'fortnite', 'league-of-legends'). If omitted or empty, returns top streams across all categories.","default":"","domain":{"kind":"open","generator":{"type":"static","value":"just-chatting"}}}},"return_schema":{"type":"object","fields":{"total":"integer - number of streams returned in this response","cursor":"string|null - pagination cursor for next page","streams":"array of stream objects with id, title, viewers_count, type, started_at, broadcaster, game, tags","category":"string - the category slug used, or 'all' if unfiltered","has_next_page":"boolean - whether more results are available"}},"initiates_session":false,"price":1,"verification":{"assertions":[{"path":"$.data.streams","op":"array_min_len","value":1},{"path":"$.data.category","op":"not_null"}],"empty_is_valid":false,"recipe_version":1}}],"sample_inputs":{"get_live_streams":{"sort":"RELEVANCE","limit":"5","cursor":"eyJzIjoxMzQyLjExNjM0MzQwNDQyNjMsImQiOmZhbHNlLCJ0Ijp0cnVlfQ==","category":"just-chatting"},"search_streamers":{"query":"valorant"},"get_streamer_profile":{"username":"ninja"}},"prefill_inputs":{"get_streamer_profile":{"username":"ninja"},"search_streamers":{"query":"valorant"},"get_live_streams":{"sort":"RELEVANCE","limit":"5","category":"just-chatting"}},"last_verified_at":"2026-10-26T15:02:52.93195+00:00","endpoint_health":[{"endpoint_name":"get_streamer_profile","status":"healthy","last_checked_at":"2026-10-26T15:02:52.93195+00:00","last_verified_at":"2026-10-26T15:02:52.93195+00:00","recent_runs":[{"at":"2026-10-26T15:02:52.931950+00:00","status":"healthy"},{"at":"2026-10-26T09:02:25.215125+00:00","status":"ambiguous"},{"at":"2026-10-26T02:00:25.249559+00:00","status":"ambiguous"},{"at":"2026-10-25T19:04:25.212259+00:00","status":"ambiguous"},{"at":"2026-10-25T12:01:52.948783+00:00","status":"ambiguous"}]},{"endpoint_name":"search_streamers","status":"healthy","last_checked_at":"2026-10-26T15:02:52.93195+00:00","last_verified_at":"2026-10-26T15:02:52.93195+00:00","recent_runs":[{"at":"2026-10-26T15:02:52.931950+00:00","status":"healthy"},{"at":"2026-10-26T09:02:25.215125+00:00","status":"ambiguous"},{"at":"2026-10-26T02:00:25.249559+00:00","status":"ambiguous"},{"at":"2026-10-25T19:04:25.212259+00:00","status":"ambiguous"},{"at":"2026-10-25T12:01:52.948783+00:00","status":"ambiguous"}]},{"endpoint_name":"get_live_streams","status":"healthy","last_checked_at":"2026-10-26T15:02:52.93195+00:00","last_verified_at":"2026-10-26T15:02:52.93195+00:00","recent_runs":[{"at":"2026-10-26T15:02:52.931950+00:00","status":"healthy"},{"at":"2026-10-26T09:02:25.215125+00:00","status":"ambiguous"},{"at":"2026-10-26T02:00:25.249559+00:00","status":"ambiguous"},{"at":"2026-10-25T19:04:25.212259+00:00","status":"ambiguous"},{"at":"2026-10-25T12:01:52.948783+00:00","status":"ambiguous"}]}],"sdk_usage_example":{"code":"\"\"\"Twitch Streamer Profiles API — discover streamers, browse live streams.\"\"\"\nfrom parse_apis.twitch_streamer_profiles_api import Twitch, Sort, NotFoundError\n\nclient = Twitch()\n\n# Get a specific streamer's full profile by username.\nstreamer = client.streamers.get(username=\"ninja\")\nprint(streamer.display_name, streamer.followers_count, streamer.is_partner)\n\n# Search for streamers matching a query; limit caps total items fetched.\nfor summary in client.streamers.search(query=\"valorant\", limit=3):\n    print(summary.display_name, summary.followers_count, summary.is_live)\n\n# Drill into a search result's full profile via .details().\nfirst = client.streamers.search(query=\"minecraft\", limit=1).first()\nif first:\n    full = first.details()\n    print(full.display_name, full.description, full.is_affiliate)\n\n# Browse live streams in a category sorted by viewer count.\nfor stream in client.streams.list(category=\"just-chatting\", sort=Sort.VIEWER_COUNT, limit=3):\n    print(stream.title, stream.viewers_count, stream.broadcaster.display_name)\n\n# Typed error handling for a non-existent streamer.\ntry:\n    client.streamers.get(username=\"thisuserdoesnotexist99999\")\nexcept NotFoundError as exc:\n    print(f\"not found: {exc}\")\n\nprint(\"exercised: streamers.get / streamers.search / details / streams.list\")","shape":"parse_sdk","endpoints":["get_streamer_profile","search_streamers","get_live_streams"],"has_session":false,"hover_map":[{"line":7,"col":0,"len":8,"label":"streamer: Streamer","kind":"variable"},{"line":11,"col":4,"len":7,"label":"summary: StreamerSummary","kind":"variable"},{"line":15,"col":0,"len":5,"label":"first: StreamerSummary","kind":"variable"},{"line":16,"col":3,"len":5,"label":"first: StreamerSummary","kind":"variable"},{"line":21,"col":4,"len":6,"label":"stream: Stream","kind":"variable"},{"line":4,"col":9,"len":6,"label":"Twitch — API client","kind":"class"},{"line":7,"col":28,"len":3,"label":"get() → Streamer","kind":"method"},{"line":8,"col":15,"len":12,"label":"display_name: str","kind":"field"},{"line":8,"col":38,"len":15,"label":"followers_count: Optional[int]","kind":"field"},{"line":8,"col":64,"len":10,"label":"is_partner: bool","kind":"field"},{"line":11,"col":32,"len":6,"label":"search() → List[StreamerSummary]","kind":"method"},{"line":17,"col":4,"len":4,"label":"full: Streamer","kind":"variable"},{"line":21,"col":29,"len":4,"label":"list() → List[Stream]","kind":"method"},{"line":27,"col":7,"len":13,"label":"NotFoundError — error (422): The specified resource (username or category) does not exist on Twitch","kind":"error"},{"line":8,"col":6,"len":8,"label":"streamer: Streamer","kind":"variable"},{"line":8,"col":29,"len":8,"label":"streamer: Streamer","kind":"variable"},{"line":8,"col":55,"len":8,"label":"streamer: Streamer","kind":"variable"},{"line":12,"col":18,"len":12,"label":"display_name: str","kind":"field"},{"line":12,"col":40,"len":15,"label":"followers_count: Optional[int]","kind":"field"},{"line":12,"col":65,"len":7,"label":"is_live: bool","kind":"field"},{"line":17,"col":17,"len":7,"label":"details() → Streamer","kind":"method"},{"line":18,"col":15,"len":12,"label":"display_name: str","kind":"field"},{"line":18,"col":34,"len":11,"label":"description: Optional[str]","kind":"field"},{"line":18,"col":52,"len":12,"label":"is_affiliate: bool","kind":"field"},{"line":21,"col":70,"len":12,"label":"Sort.VIEWER_COUNT","kind":"enum-member"},{"line":22,"col":17,"len":5,"label":"title: str","kind":"field"},{"line":22,"col":31,"len":13,"label":"viewers_count: int","kind":"field"},{"line":22,"col":65,"len":12,"label":"display_name: str","kind":"field"},{"line":26,"col":21,"len":3,"label":"get() → Streamer","kind":"method"},{"line":12,"col":10,"len":7,"label":"summary: StreamerSummary","kind":"variable"},{"line":12,"col":32,"len":7,"label":"summary: StreamerSummary","kind":"variable"},{"line":12,"col":57,"len":7,"label":"summary: StreamerSummary","kind":"variable"},{"line":15,"col":25,"len":6,"label":"search() → List[StreamerSummary]","kind":"method"},{"line":17,"col":11,"len":5,"label":"first: StreamerSummary","kind":"variable"},{"line":18,"col":10,"len":4,"label":"full: Streamer","kind":"variable"},{"line":18,"col":29,"len":4,"label":"full: Streamer","kind":"variable"},{"line":18,"col":47,"len":4,"label":"full: Streamer","kind":"variable"},{"line":21,"col":65,"len":4,"label":"Sort — enum: RELEVANCE, VIEWER_COUNT, VIEWER_COUNT_ASC","kind":"enum"},{"line":22,"col":10,"len":6,"label":"stream: Stream","kind":"variable"},{"line":22,"col":24,"len":6,"label":"stream: Stream","kind":"variable"},{"line":22,"col":53,"len":11,"label":"broadcaster: Broadcaster","kind":"field"},{"line":22,"col":46,"len":6,"label":"stream: Stream","kind":"variable"},{"line":28,"col":24,"len":3,"label":"exc: NotFoundError","kind":"variable"}]},"sdk_delivery_state":"legacy","summary":"Access Twitch streamer profiles, search for channels, and browse live streams by category using Twitch's GraphQL API.","updated_at":"2026-07-23T02:50:06.334219+00:00","user_variants":[],"latest_version":5,"user_status":null,"user_scraper_id":null,"contributes_to_marketplace":true,"pinned_version":null,"seo_content":{"faqs":[{"a":"Yes. Twitch provides the official Twitch API at https://dev.twitch.tv/docs/api/. It requires registering an application and obtaining OAuth tokens to access most endpoints.","q":"Does Twitch have an official developer API?"},{"a":"When a streamer is offline, `is_live` is false, `stream` is null, and `last_broadcast` is populated with an object containing the most recent game they streamed. Static profile fields like `description`, `social_links`, `is_partner`, and `is_affiliate` are always returned regardless of live status.","q":"What does `get_streamer_profile` return when a streamer is offline?"},{"a":"Not currently. The API covers live stream status, channel profiles, and current broadcast data. You can fork this API on Parse and revise it to add an endpoint that fetches VOD or past broadcast listings.","q":"Can I retrieve historical VODs or past broadcast recordings?"},{"a":"Each response from `get_live_streams` includes a `cursor` string and a `has_next_page` boolean. Pass the `cursor` value in your next request to retrieve the following page of results. When `has_next_page` is false, you have reached the end of the result set.","q":"How does pagination work with `get_live_streams`?"},{"a":"No subscriber counts are exposed. The API returns `followers_count` for channel search results and `is_partner`/`is_affiliate` status on profile endpoints. Subscription data is not covered. You can fork this API on Parse and revise it to surface additional monetization fields if Twitch exposes them.","q":"Does the API return subscriber counts or subscription tier data?"}],"keywords":["twitch api","twitch streamer profile api","twitch live streams api","twitch channel search api","twitch followers count api","twitch partner status api","twitch category streams api","twitch viewer count api","twitch social links api","twitch affiliate check api","live stream discovery api","twitch game category api","twitch channel data api","twitch pagination cursor api"],"use_cases":["Track whether a specific streamer is live and how many viewers they currently have using `is_live` and `stream.viewers_count`","Build a streamer directory by searching for channels in a genre and ranking by `followers_count`","Monitor category leaderboards by pulling top live streams in a game with `get_live_streams` filtered by category slug","Check partner and affiliate status across a list of creators to qualify influencer outreach candidates","Aggregate social media links from `social_links` to map a streamer's cross-platform presence","Track what game a streamer last played when offline via the `last_broadcast.game` field","Paginate through all live streams in a category using the `cursor` and `has_next_page` fields for bulk data collection"],"meta_title":"Twitch API – Streamers, Channels & Live Streams","generated_at":"2026-06-11T06:22:40.974593+00:00","lead_paragraph":"This API exposes 3 endpoints covering Twitch streamer profiles, channel search, and live stream discovery. The `get_streamer_profile` endpoint returns over 10 fields per channel including follower count, partner/affiliate status, social links, and real-time stream info when the user is live. `search_streamers` lets you query across channel names and game names, while `get_live_streams` supports filtering by category slug and pagination via cursor.","schema_version":2,"meta_description":"Access Twitch streamer profiles, search channels, and browse live streams by category. Get followers, partner status, viewer counts, and stream tags.","primary_category":"streaming_video","long_description_md":"## Streamer Profiles\n\nThe `get_streamer_profile` endpoint accepts a Twitch `username` (login) and returns a full channel record. When the streamer is live, the `stream` object includes `viewers_count`, `started_at`, and the current `game`. When offline, `stream` is null and `last_broadcast` is populated with the most recent game played. Additional fields cover `is_partner`, `is_affiliate`, `description`, `display_name`, and `social_links` — an array of objects with `name`, `title`, and `url` for each linked external profile.\n\n## Channel Search\n\n`search_streamers` takes a `query` string and matches against channel names, stream titles, and game names. Each result in the `channels` array includes `id`, `login`, `display_name`, `profile_image_url`, `is_live`, `followers_count`, `is_partner`, and `description`. The `total` field tells you how many channels matched the query.\n\n## Live Stream Discovery\n\n`get_live_streams` returns currently active streams. Filter by `category` using a game or category slug such as `just-chatting`, `fortnite`, or `pokemon-pokopia`. The `limit` parameter accepts 1–100. Each stream object in the `streams` array includes `title`, `viewers_count`, `started_at`, `broadcaster`, `game`, `tags`, and `type`. Use the `cursor` field from each response to request the next page; `has_next_page` tells you whether more results exist.","generated_with_model":"global.anthropic.claude-sonnet-4-6","secondary_categories":["social_media","entertainment"]},"primary_category":"streaming_video","secondary_categories":["social_media","entertainment"],"access_requirements":[]}