Twitch
Twitch streamer profiles, past videos, clip details, and published stream schedules through one unified API
Twitch
Twitch streamer profiles, a channel's past videos and highlights, individual clip details, and the schedule a streamer has published. Every endpoint is a GET and costs 1 credit.
Base URL: /v1/twitch/...
Getting Started
1. Fetch a profile
curl "https://www.socialcrawl.dev/v1/twitch/profile?handle=ninja" \
-H "x-api-key: sc_your_api_key_here"Returns display name, follower count, bio, profile image URL, broadcast language, and partner status.
2. List what they have broadcast
curl "https://www.socialcrawl.dev/v1/twitch/user/videos?handle=ninja&sort_by=VIEWS" \
-H "x-api-key: sc_your_api_key_here"3. Read computed fields
When an endpoint supports a computed field and the required source inputs are present, the unified response includes that optional field. Depending on the endpoint, optional fields can include engagement_rate, language, content_category, and estimated_reach. See Computed fields for formulas, clamping rules, and null semantics.
What you can get
GET /v1/twitch/profile— a channel snapshot byhandle. The right first call before pulling anything else.GET /v1/twitch/user/videos— up to 100 of a channel's videos, each with title, URL, view count, duration in seconds, language, game, thumbnail, and available qualities.filter_bypicks the kind —HIGHLIGHTorUPLOAD— andsort_byisTIME(newest first) orVIEWS. Both enums are uppercase.GET /v1/twitch/user/schedule— the channel's published schedule, with each segment's start time, end time, title, categories, and cancellation flags.GET /v1/twitch/clip— one clip by itsurl: title, view count, duration, creator and broadcaster names, the game, thumbnail, and creation time.
user/videos covers past broadcasts; clip covers one shared moment; user/schedule covers what has not happened yet.
Two things to plan around
user/videos returns one fixed set with no further pages. Up to 100 rows arrive and that is the whole result — there is no cursor and nothing to page. Use filter_by and sort_by to make those 100 the right 100 rather than expecting to walk a full history. Archived past broadcasts are not among them: filter_by=ARCHIVE is rejected before billing because the upstream deterministically fails it, so HIGHLIGHT and UPLOAD are what exists.
channel.schedule is null when the streamer has not published one. Plenty of channels never fill it in, so treat a null schedule as normal rather than as an error, and do not branch on the call failing — it succeeds and returns nothing.
curl "https://www.socialcrawl.dev/v1/twitch/user/schedule?handle=ninja" \
-H "x-api-key: sc_your_api_key_here"
curl "https://www.socialcrawl.dev/v1/twitch/clip?url=https://www.twitch.tv/ninja/clip/AmazonianEncouragingLyrebirdAllenHuhu" \
-H "x-api-key: sc_your_api_key_here"Endpoints
4 endpoints available.
| Endpoint | Path | Credit Tier |
|---|---|---|
| Get Twitch clip details | /v1/twitch/clip | standard (1cr) |
| Get Twitch streamer profile | /v1/twitch/profile | standard (1cr) |
| Get a Twitch user's stream schedule | /v1/twitch/user/schedule | standard (1cr) |
| List a Twitch user's videos | /v1/twitch/user/videos | standard (1cr) |
Notes
- All endpoints use
GETmethod with query parameters - Authentication via
x-api-keyheader - Responses follow the unified SocialCrawl schema
profile,user/videos, anduser/scheduletake ahandle(no@);cliptakes the clipurl- Nothing on this platform paginates
