Free key: real listings for yesterday and today, 500 calls a day, no card148 countriesGet yours in 30 seconds
tvguideapi

Last 30 days

API uptimefrom the monitorIncidentsfrom the monitor
All systems

Working normally

Checked every minute from outside our own servers.

Documentation/Channels

A channel's schedule

A TV channel's day slot by slot: start and stop in UTC, title, description, category, and the series and episode where we matched it.

Free key and every planLive data
GEThttps://api.tvguideapi.com/v1/channels/{id}/schedule
Try itRuns the real call with your key
200 OK

Parameters

ParameterInTypeRequiredDescriptionExample
idpathstringrequiredThe channel id. Ids come from Find a channel.ch_jw83a3xg
datequerydateoptionalThe day, YYYY-MM-DD. Defaults to today.2026-10-07
tzquerystringoptionalWhich local day to cut, as an IANA zone. The times in the answer stay UTC. See Times and days.Europe/London
fieldsquerylistoptionalOnly these fields, comma separated.start,title,episode
A day is cut at midnight in the zone you give with tz, or UTC. A slot that crosses midnight is in both days. The episode object is joined in, never sent by the channel; episode.matched_by says how: airtime, episode-number, episode-title or same-description. Where the channel's own guide sent no description, episode title, number, picture or category, it is taken from another guide feed's slot for the same programme (same channel, start and title), and borrowed lists which fields and from which feed; a slot matched to its TVmaze episode that still had no episode title, number or picture takes them from that episode, marked tvmaze in borrowed. genres gives the same genre names for every feed (news, sport, film, drama, comedy, kids, documentary and so on), mapped from each guide's own categories in its own language, or, where the guide sent none, from the genres of the TVmaze show the slot is joined to.

Request

curl -H "Authorization: Bearer $TVG_KEY" \
  "https://api.tvguideapi.com/v1/channels/ch_jw83a3xg/schedule"

Sample response

{
    "data": [
        {
            "id": "ls_shr78fcp",
            "channel": "ch_jw83a3xg",
            "start": "2026-10-07T19:00:00Z",
            "stop": "2026-10-07T19:30:00Z",
            "title": "EastEnders",
            "sub_title": "Episode 7012",
            "category": [
                "Soap"
            ],
            "episode": {
                "show_id": "sh_e29nzc1x",
                "episode_id": "ep_610mmeyh",
                "season": 41,
                "number": 157,
                "name": "Episode 7012",
                "orig_air": "2026-10-07",
                "matched_by": "airtime",
                "source": "tvmaze"
            },
            "flags": {
                "new": true,
                "live": false,
                "repeat": false
            }
        },
        {
            "id": "ls_shr78fcp",
            "channel": "ch_jw83a3xg",
            "start": "2026-10-07T19:30:00Z",
            "stop": "2026-10-07T20:00:00Z",
            "title": "The One Show",
            "category": [
                "Magazine"
            ],
            "flags": {
                "new": true,
                "live": true,
                "repeat": false
            }
        }
    ],
    "meta": {
        "count": 38,
        "next": "c_8f21a0",
        "took_ms": 41
    }
}

Errors