Credits & billing
API usage is metered in credits. Each request consumes a known number of credits based on what it returns — nothing else.
Your monthly subscription includes a credit allowance; top-ups cover usage beyond it. Credits are only drawn on a successful 2xx response.
One price per request, regardless of data age
A request costs the same whether it reads yesterday's data or data from two years ago. There is no surcharge for historical periods, and no "first request vs. repeat request" distinction. Querying a 90-day-old broadcast is not technically more expensive than querying last night's, so it is not priced as such. You can read the credit cost of an endpoint and know exactly what every call to it will draw.
What a request costs
Costs follow the shape of the request, not the size of the data. Anything about one channel, stream or game is 1 credit. Discovery — a ranked list of many channels — costs more, because that is where the value of the dataset sits.
| Operation type | Cost | What it covers |
|---|---|---|
| Single channel — any endpoint | 1 | Standard stats, extra metrics, paid subscribers, chat analytics |
| Single channel — audience | 2 | Geography + demographics in one joint endpoint — twitch, kick, youtube |
| Single stream — any endpoint | 1 | Standard, extra, all stream games, paid subscribers, chat analytics, chat logs |
| Single stream — 5-minute intervals | 3 | The whole broadcast as a 5-minute series; chat metrics add 2, subscriber metrics add 1 |
| Single game / category | 1 | Viewership and channel metrics for one game |
| List — light filters | 5 | Discovery by platform, language, game, partnership, publisher |
| List — segment filters | 10 | Discovery by country, gender, VTuber, age, ranges, etc. |
| Live channels list — light filters | 10 | Real-time list; carries a live surcharge over standard lists |
| Live channels list — country filter | 20 | Real-time list, segment filter |
| Contact data — per channel with contacts | 1 | Dynamic surcharge on channel lists with business_contacts=true |
| Free request | 0 | Top 100 Twitch channels, last 7 days |
The 5-minute interval series costs 3 credits for one broadcast whatever its length — a 3-hour stream and a 12-hour stream cost the same, and narrowing it with a time window does not change the price. chat_metrics=true adds 2 and subs_metrics=true adds 1, so a call is 3, 4, 5 or 6 credits. Ask for a block the stream has no data for and the surcharge is not applied: the block comes back null and you are charged for what you got.
When you combine filters from different tiers in one list request, you are charged the higher tier — never the sum. A request combining language (5) and country (10) costs 10 credits, not 15. The live channels list is priced separately — 10 (light) / 20 (country) per page — because the data is captured and served in real time.
One dynamic cost: contact data
Every cost above is fixed and known before you send the request. There is one exception: adding business_contacts=true to a channel list appends each channel’s business email and social links, and charges 1 credit per channel that has at least one of them, on top of the list cost. A channel with neither an email nor a single social account is free, and a channel with an email and four socials still costs 1. So the total is list cost + number of channels with contact data — at most 100 extra per page.
Because the amount depends on the data, take it from x-credits-charged (total for the request) and meta.business_contacts.credits_for_contacts (the contact part) rather than computing it in advance. Available on the list of channels, top by subscribers and top by bits; not on the live channels list.