How to Use This API
1. Search for a Show
https://api.tvmaze.com/search/shows?q=breaking%20bad
2. Get Show by TVmaze ID
https://api.tvmaze.com/shows/169
169 = Breaking Bad.
3. Episode List for a Show
https://api.tvmaze.com/shows/169/episodes
4. Today's TV Schedule
https://api.tvmaze.com/schedule?country=US&date=2026-06-16
5. JavaScript — Find Next Episode
async function nextEpisode(showName) {
const search = await fetch(
`https://api.tvmaze.com/search/shows?q=${showName}`
);
const results = await search.json();
if (!results.length) { console.log('Show not found'); return; }
const show = results[0].show;
const episodes = await fetch(
`https://api.tvmaze.com/shows/${show.id}/episodes`
);
const allEp = await episodes.json();
const now = new Date();
const upcoming = allEp.filter(ep => new Date(ep.airstamp) > now);
if (upcoming.length) {
const next = upcoming[0];
console.log(`Next ${show.name}: S${next.season}E${next.number}`);
console.log(`"${next.name}" — ${next.airdate}`);
} else {
console.log(`No upcoming ${show.name} episodes found`);
}
}
nextEpisode('stranger things');
6. Python — Show Cast
import requests
def get_cast(show_name):
search = requests.get(
'https://api.tvmaze.com/search/shows',
params={'q': show_name}
).json()
if not search:
print('Show not found')
return
show_id = search[0]['show']['id']
cast = requests.get(
f'https://api.tvmaze.com/shows/{show_id}/cast'
).json()
print(f"Cast of {search[0]['show']['name']}:")
for person in cast[:10]:
char = person['character']['name']
actor = person['person']['name']
print(f" {char} — played by {actor}")
get_cast('the office')
TL;DR
TVMaze is a comprehensive, community-maintained TV database API covering thousands of shows across US, UK, and international networks. Search shows by name, get full episode lists with airdates, season/episode numbers, runtimes, and ratings. Access cast and crew information, network details, schedule data by country and date, and embedded show images. Features include exact ID lookups, schedule queries, and episode-by-episode tracking. The go-to API for building TV guide apps, episode trackers, and entertainment dashboards.
Quick start: https://api.tvmaze.com/search/shows?q=breaking%20bad
No API key needed — just make a request!
https://api.tvmaze.com/search/shows?q=breaking%20bad
Frequently Asked Questions
- What data is available per show?
- Name, TVmaze ID, URL, type (Reality, Scripted, etc.), language, genres, status (Running/Ended), runtime, average rating, network, schedule, summary, official site, and embedded images.
- Do I need an API key?
- No. TVMaze is completely free and open. No API key or registration required.
- How are episodes ordered?
- Episodes are ordered by season and episode number. Each episode includes airdate, airtime, season/episode numbers, name, summary, and runtime.
- Can I get the current week's schedule?
- Yes. Use
/schedulewith optionalcountryanddateparameters. Omit date for the current day's schedule. - What countries are supported for schedules?
- The schedule endpoint supports many countries including US, UK, Canada, Australia, Germany, France, and more. Defaults to US if not specified.
- Are there rate limits?
- TVMaze requests reasonable usage. For high-volume applications, cache aggressively and consider using their data dumps for static data.
API Details
- API URL
https://api.tvmaze.com/- Documentation
- tvmaze.com/api
- Category
- Entertainment
- Authentication
- Not Required
- Geographic Coverage
- Global — US, UK, and international shows
What You Can Build
- TV guide app showing tonight's lineup across all channels
- Episode tracker that notifies you when new episodes air
- Binge-watch planner that lists episodes in chronological order
- Actor filmography explorer linking shows through cast members
- Show recommendation engine using genre and rating data