Twitch hub

Twitch profile videos API

List public VODs and uploads for a Twitch handle as structured rows — titles, durations, view counts, game metadata, and preview URLs in the shared Social Fetch envelope.

GET /v1/twitch/profiles/{handle}/videos

1 credit per successful request.

About this endpoint

Sponsorship and creator ops tools often need a streamer's recent video library after they already know the login: past broadcasts, highlights, and uploads with view counts and category tags. Hitting Twitch Helix yourself means managing app credentials, token refresh, and Helix rate limits for what is usually a one-shot enrichment step in a multi-platform pipeline.

`GET /v1/twitch/profiles/{handle}/videos` takes a Twitch handle (with or without a leading `@`) and returns `data.lookupStatus` plus `data.videos`. On `found`, each row can include id, title, url, thumbnailUrl, animatedPreviewUrl, publishedAt, viewCount, durationSeconds, and an optional `game` object (id, slug, name, boxArtUrl). Optional query params: `filterBy` (`highlight`, `archive`, or `upload`) and `sortBy` (`time` or `views`).

`lookupStatus` is `found` or `not_found`. A `found` response can still return an empty `videos` array when the channel has no matching public videos for the filter. Channel identity alone is `GET /v1/twitch/profiles/{handle}`; upcoming stream slots are `GET /v1/twitch/profiles/{handle}/schedule`; a single clip is `GET /v1/twitch/clips`. Pricing is on the credit badge for this operation; bill from `meta.creditsCharged`. on every response.

Twitch profile videos API FAQ

How do I list Twitch videos for a channel via API?

Call `GET /v1/twitch/profiles/{handle}/videos` with your Social Fetch API key (`x-api-key`). Pass the Twitch login as the path parameter, with or without a leading `@`. Read `data.lookupStatus`, then `data.videos`.

How much does the Twitch profile videos API cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth.

What does each Twitch profile video row include?

id, title, url, thumbnailUrl, animatedPreviewUrl, publishedAt, viewCount, durationSeconds, and optional game metadata (id, slug, name, boxArtUrl). Fields may be null when Twitch does not expose them for that video.

Can I filter Twitch videos by highlight, archive, or upload?

Yes. Pass optional `filterBy=highlight`, `filterBy=archive`, or `filterBy=upload`. Omit `filterBy` when you want the default mix for that request.

Can I sort Twitch profile videos by time or views?

Yes. Pass optional `sortBy=time` or `sortBy=views`. When you omit `sortBy`, the list uses the default ordering for that request.

What does lookupStatus mean on Twitch profile videos?

`found` means the channel resolved; `not_found` means it did not. On `found`, `data.videos` may still be empty if there are no public videos matching your filter. Do not treat an empty array alone as proof the handle is invalid.

Do I need a Twitch client ID or OAuth to list profile videos?

No. You authenticate to Social Fetch with an API key. The route reads public channel video data; it does not act on behalf of a logged-in Twitch user.

How is this different from Twitch clips or the profile schedule route?

This route lists channel videos (VODs, highlights, uploads) by handle. Clips are `GET /v1/twitch/clips`. Upcoming stream slots are `GET /v1/twitch/profiles/{handle}/schedule`. Use the profile card route when you only need identity and follower-facing fields.