tvschedule.org

TV Schedule API

Know when every show airs, before you ask for a single slot.

Listings for the week, every show's usual slot, how often it repeats and where it airs, counted from years of schedules across 179 countries. One key, one shape, JSON.

Free key reads yesterday's listings. Live from $39 a month, Complete with no call limit at $79.

179countries
48,472channels
2,031,260listings today
BO
BBC OneUnited Kingdom, 3 Nov, evening
real listings
On at 18:00
 
 
0programmes that day
0%with episode numbers
0 minlongest: Breakfast
GET /v1/channels/ch_jw83a3xg/schedule/yesterday200 OK

What you get

The week ahead, the shows in it, and the patterns behind them

Three layers under one key. Listings tell you what is on. Shows tell you what it is. Patterns tell you when it usually airs and how often it comes back.

Free key

Listings

Every channel's day, slot by slot, with start and stop in UTC, title, episode, category and description. 7 days back to 7 days ahead.

GET /v1/channels/{id}/schedule/{date}GET /v1/countries/{cc}/schedule/{date}
Live

Shows

Find any show by title and get its genre, network, the channels it airs on and its airings this week, with first runs told apart from repeats.

GET /v1/shows/search/{q}GET /v1/shows/{id}/airings
Live

Patterns and depth

A show's usual slot, its day by hour fingerprint, repeat share and airing counts by channel and country. 90 days on Live, all time on Complete.

GET /v1/shows/{id}/patternGET /v1/shows/{id}/stats

The free key

Real listings from yesterday, in every country, on the first call

No card, no sandbox, no made-up rows. Sign in with Google, get a key, and call yesterday's schedule for any channel. Build against real data, then upgrade on the same key when you go live.

  • Yesterday's listings for all 48,472 channels
  • The channel and country directory
  • 200 calls a day, reset at 00:00 UTC
  • Paid fields come back empty with a note, never a broken call
Get a free key
GET /v1/channels/ch_jw83a3xg/schedule/yesterday200
{
    "data": [
        {
            "id": "ls_px2n8qey",
            "channel": "ch_jw83a3xg",
            "start": "2026-11-03T20:00:00Z",
            "stop": "2026-11-03T21:00:00Z",
            "title": "MasterChef: The Professionals",
            "category": [
                "reality",
                "culinair"
            ],
            "flags": {
                "new": false,
                "live": false
            },
            "episode": {
                "show_id": "sh_a8m2rhpm",
                "episode_id": "ep_c9g3t3m0",
                "season": 19,
                "number": 1,
                "name": "Episode 1",
                "orig_air": "2026-11-02"
            }
        }
    ],
    "meta": {
        "count": 38,
        "plan": "free",
        "note": "Today and the week ahead are on Live."
    }
}

Depth

How deep the data goes, country by country

Channels held, programmes listed today, and how full each field is. Counted from the data every day, never claimed.

CountryChannelsListings today DescriptionsEpisode numbers
US
United StatesUS
8,653 566,338 Counting Counting
DE
GermanyDE
1,187 87,143 Counting Counting
FR
FranceFR
843 84,904 Counting Counting
TH
ThailandTH
164 3,229 Counting Counting
AU
AustraliaAU
823 44,526 Counting Counting
5 of 179 countries, as of 15:37 UTCSee every country

For developers

One key, one shape, first call in two minutes

JSON over HTTPS, the same ids everywhere, UTC times, and paid fields that come back empty on lower plans rather than vanishing.

  1. Sign in with GoogleYour key is made at once and shown in your account.
  2. Send it as a headerAuthorization: Bearer, or X-API-Key.
  3. Read the answerEvery answer is data and meta, with your limits in the headers.
# A show's usual slot and fingerprint
curl https://api.tvschedule.org/v1/shows/sh_e29nzc1x/pattern \
  -H "Authorization: Bearer <your key>"

Built on it

What people make with a schedule that knows its patterns

From a guide in a media centre to an assistant that knows when the next episode is on.

Media centres

An XMLTV file per channel for a home server or player, refreshed for the week.

Watch apps

Tell people when the next episode airs and where, with repeats marked.

Research

Airing counts, repeat shares and channel make-up, ready for a report.

AI assistants

An MCP server so an assistant can answer "when is it on" for real.

MCP server

Ask an assistant when it is on, and get the real answer

Add the server to Claude, ChatGPT or Cursor, sign in once, and your assistant reads the schedule and patterns with your own key and plan.

What is on BBC One tonight, and which of it is new?
schedule(channel: "BBC One", date: "today")
The assistant reads tonight's listings with your key and marks each programme as new or a repeat.

Plans

Start free. Pay when you go live.

One key from the first call. Upgrade and the same key opens the new plan at once. Annual is twelve months for the price of ten.

Free keyFree
$0

Real listings for yesterday, to build against.

  • Yesterday's listings, every channel
  • Channel and country directory
  • Shows, patterns and stats
  • XMLTV and MCP
Get a free key
200 calls a day
LiveMost chosen
$39 a month

The week ahead and every show's pattern, for live products.

  • Listings 7 days back to 7 ahead
  • Shows, airings and usual slots
  • Patterns and stats, last 90 days
  • XMLTV per channel and MCP
Choose Live
300,000 calls a month
CompleteNo limit
$79 a month

Everything in Live, with no call limit and all-time depth.

  • Everything in Live
  • No monthly call limit
  • Patterns and stats, all time
  • 5 keys on the account
Choose Complete
Unlimited calls, fair use

Questions

Before you choose

Is the free key real data?

Yes. Real listings for yesterday on every channel, 200 calls a day, reset at 00:00 UTC. Today and the week ahead, shows and patterns are on Live and Complete.

How is a usual slot worked out?

From the show's airings over the window you read: the days and local hours it airs most, the channel that carries it most, and how many of those airings were repeats. It is counted every night.

What does no limit mean on Complete?

No monthly call allowance and no overage charge. A pace limit of 600 calls a minute protects the service for everyone, and sharing a key or reselling the data is not allowed.

Can I show the data in my app?

Yes, in your own apps, sites and screens. Reselling or republishing the data itself, as a feed or API of your own, is not allowed.

Can I change plan later?

Any time from your account. An upgrade opens at once on the same key; a move down applies at the end of the period you have paid for.

Your free key is one sign-in away

Real listings on the first call. Upgrade on the same key when you go live.