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 Failed requests are free

About this endpoint

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. Bill from meta.creditsCharged.

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.