Twitch hub

Twitch profile schedule API

Fetch a streamer's public upcoming schedule by Twitch login — segment titles, start and end times, categories, and cancel flags in the shared Social Fetch JSON envelope.

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

1 credit per successful request.

About this endpoint

Creator calendars, sponsorship planners, and alert bots often need a channel's published stream slots before go-live: when the next broadcast starts, what title is set, which category it sits under, and whether a slot was cancelled. Scraping the schedule page or wiring Helix yourself is heavy for a recurring enrichment that only needs the public calendar for a known login.

`GET /v1/twitch/profiles/{handle}/schedule` takes the Twitch channel login (with or without a leading `@`) and returns `data.lookupStatus` plus `data.segments`. On `found`, each segment can include id, title, startAt, endAt, isCancelled, and a `categories` array (id, slug, name). Branch on `lookupStatus` before you write rows — `found` and `not_found` are explicit.

A `found` response can still return an empty `segments` array when the channel has no public schedule entries. Channel identity and live state are `GET /v1/twitch/profiles/{handle}`; past VODs are `GET /v1/twitch/profiles/{handle}/videos`. Pricing is on the credit badge for this operation; bill from `meta.creditsCharged`. on every response. Keep `meta.requestId` when a schedule row looks wrong.

Twitch profile schedule API FAQ

How do I get a Twitch channel schedule via API?

Call `GET /v1/twitch/profiles/{handle}/schedule` 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.segments`.

How much does the Twitch profile schedule 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 schedule segment include?

id, title, startAt, endAt, isCancelled, and categories (id, slug, name when Twitch exposes them). Fields may be null when Twitch does not publish them for that segment.

What does lookupStatus mean on Twitch profile schedule?

`found` means the channel resolved; `not_found` means it did not. On `found`, `data.segments` may still be empty if the channel has no public schedule entries. Do not treat an empty array alone as proof the handle is invalid.

Do I need a Twitch client ID or Helix OAuth for schedule?

No. You authenticate to Social Fetch with an API key. The route reads public schedule data for enrichment-style lookups. Use Twitch Helix and EventSub directly when you need apps, bots, or realtime stream-online events.

How is schedule different from the Twitch profile or videos routes?

Schedule returns upcoming (and listed) stream segments for a handle. The profile card is `GET /v1/twitch/profiles/{handle}` (identity, live flag, followers). Past broadcasts and uploads are `GET /v1/twitch/profiles/{handle}/videos`. Clips are `GET /v1/twitch/clips`.

Can I use the Twitch schedule API for go-live reminders?

Yes. Teams poll or cron this route to store `startAt` / `endAt` and title for channels they already track by login, then fire reminders before a segment starts. Pair it with the profile route when you also need `isLive` and follower counts on the same channel.