themoviedb.org API: Get TV show details
Finds a TV show on TMDB by exact name or TMDB show link and returns its details, cast, seasons, the last aired and next scheduled episodes, and the streaming services listed for a chosen country.
Unofficial. Not affiliated with or endorsed by themoviedb.org.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Show, required
show Show name or TMDB show link, for example The Bear or https://www.themoviedb.org/tv/136315-the-bear.
https://www.themoviedb.org/tv/456-the-simpsons
- Country optional
country Country name or two-letter code for viewing services, for example Canada or CA. Defaults to United States.
Canada
Default
United States.
Input as JSON
{ "show": "https://www.themoviedb.org/tv/456-the-simpsons" , "country": "Canada"}Output
{ "cast": [ { "name": "Dan Castellaneta", "character": "Homer Simpson / Abe Simpson / Barney Gumble / Krusty the Clown / Groundskeeper Willie / Mayor Quimby (voice)" }, { "name": "Julie Kavner", "character": "Marge Simpson / Patty Bouvier / Selma Bouvier / Jacqueline Bouvier (voice)" }, { "name": "Nancy Cartwright", "character": "Bart Simpson / Maggie Simpson / Nelson Muntz / Ralph Wiggum (voice)" } ], "name": "The Simpsons", "genres": [ "Animation", "Comedy" ], "status": "returning series", "seasons": [ { "name": "Specials", "number": 0, "air_date": "1987-04-15", "episode_count": 82 }, { "name": "Season 1", "number": 1, "air_date": "1989-12-17", "episode_count": 13 }, { "name": "Season 2", "number": 2, "air_date": "1990-10-11", "episode_count": 22 } ], "tmdb_id": 456, "creators": [ "Matt Groening" ], "networks": [ "FOX" ], "overview": "Set in Springfield, the average American town, the show focuses on the antics and everyday adventures of the Simpson family; Homer, Marge, Bart, Lisa and Maggie, as well as a virtual cast of thousands. Since the beginning, the series has been a pop culture icon, attracting hundreds of celebrities to…", "tmdb_link": "https://www.themoviedb.org/tv/456-the-simpsons" , "poster_link": "https://image.tmdb.org/t/p/w500/uWpG7GqfKGQqX4YMAo3nv5OrglV.jpg" , "next_episode": { "title": "Diary of a Chimpy Kid", "season": 38, "air_date": "2026-10-04", "episode_number": 2 }, "last_air_date": "2026-09-27", "first_air_date": "1989-12-17", "where_to_watch": [ "Disney Plus", "Crave", "Apple TV Store" ], "number_of_seasons": 38, "last_episode_aired": { "title": "The Children's Book Job", "season": 38, "air_date": "2026-09-27", "episode_number": 1 }, "number_of_episodes": 806, "user_score_percent": 80}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"themoviedb.org/get_tv_show","input":{"show":"https://www.themoviedb.org/tv/456-the-simpsons","country":"Canada"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "themoviedb.org/get_tv_show" , "input": { "show": "https://www.themoviedb.org/tv/456-the-simpsons" , "country": "Canada" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "themoviedb.org/get_tv_show" , "input": { "show": "https://www.themoviedb.org/tv/456-the-simpsons" , "country": "Canada" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run themoviedb.org/get_tv_show# with {"show":"https://www.themoviedb.org/tv/456-the-simpsons","country":"Canada"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "show" ], "properties": { "show": { "type": "string", "description": "Show name or TMDB show link, for example The Bear or https://www.themoviedb.org/tv/136315-the-bear." }, "country": { "type": "string", "default": "United States", "description": "Country name or two-letter code for viewing services, for example Canada or CA. Defaults to United States." } }}Output schema
{ "type": "object", "required": [ "name", "overview", "first_air_date", "last_air_date", "status", "next_episode", "last_episode_aired", "number_of_seasons", "number_of_episodes", "seasons", "networks", "creators", "cast", "genres", "user_score_percent", "where_to_watch", "poster_link", "tmdb_link", "tmdb_id" ], "properties": { "cast": { "type": "array", "items": { "type": "object", "required": [ "name", "character" ], "properties": { "name": { "type": "string", "description": "Actor name." }, "character": { "type": [ "string", "null" ], "description": "Character name." } }, "additionalProperties": false }, "description": "Up to 15 top-billed cast members." }, "name": { "type": "string", "description": "Show name." }, "genres": { "type": "array", "items": { "type": "string" }, "description": "Genres." }, "status": { "type": [ "string", "null" ], "description": "Returning series, ended, or canceled." }, "seasons": { "type": "array", "items": { "type": "object", "required": [ "number", "name", "episode_count", "air_date" ], "properties": { "name": { "type": "string", "description": "Season name." }, "number": { "type": "integer", "description": "Season number." }, "air_date": { "type": [ "string", "null" ], "description": "Premiere date, YYYY-MM-DD, if listed." }, "episode_count": { "type": "integer", "description": "Episode count." } }, "additionalProperties": false }, "description": "Seasons, including specials when listed." }, "tmdb_id": { "type": "integer", "description": "TMDB show ID.", "x-fous-developer": true }, "creators": { "type": "array", "items": { "type": "string" }, "description": "Show creators." }, "networks": { "type": "array", "items": { "type": "string" }, "description": "Broadcast networks." }, "overview": { "type": [ "string", "null" ], "description": "Show summary." }, "tmdb_link": { "type": "string", "description": "Show page link on TMDB." }, "poster_link": { "type": [ "string", "null" ], "description": "Show poster image link." }, "next_episode": { "anyOf": [ { "type": "object", "required": [ "air_date", "season", "episode_number", "title" ], "properties": { "title": { "type": "string", "description": "Episode title." }, "season": { "type": "integer", "description": "Season number." }, "air_date": { "type": [ "string", "null" ], "description": "Episode air date, YYYY-MM-DD." }, "episode_number": { "type": "integer", "description": "Episode number." } }, "additionalProperties": false }, { "type": "null" } ], "description": "Next scheduled episode, if listed." }, "last_air_date": { "type": [ "string", "null" ], "description": "Last recorded air date, YYYY-MM-DD." }, "first_air_date": { "type": [ "string", "null" ], "description": "Date the series first aired, YYYY-MM-DD." }, "where_to_watch": { "type": "array", "items": { "type": "string" }, "description": "Services listed for the chosen country." }, "number_of_seasons": { "type": "integer", "description": "Number of regular seasons." }, "last_episode_aired": { "anyOf": [ { "type": "object", "required": [ "air_date", "season", "episode_number", "title" ], "properties": { "title": { "type": "string", "description": "Episode title." }, "season": { "type": "integer", "description": "Season number." }, "air_date": { "type": [ "string", "null" ], "description": "Episode air date, YYYY-MM-DD." }, "episode_number": { "type": "integer", "description": "Episode number." } }, "additionalProperties": false }, { "type": "null" } ], "description": "Most recently aired episode, if listed." }, "number_of_episodes": { "type": "integer", "description": "Number of episodes." }, "user_score_percent": { "type": [ "integer", "null" ], "description": "TMDB user score as a percentage." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
themoviedb.org/get_tv_show- Returns
- name, overview, first and last air dates, status, next and last episodes, season and episode counts, seasons, networks, creators, cast, genres, user score, where to watch, poster, TMDB link and ID
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method themoviedb.org/get_tv_show with the inputs above.
Ask your agent
- When does the next episode of Severance air, and how many seasons are out so far?
- Where can I stream Slow Horses in the UK? Also give me the cast and the show's user rating.
- Pull up the TMDB page details for https://www.themoviedb.org/tv/1399-game-of-thrones: creators, networks, and the episode count per season.
- Is Abbott Elementary still running or has it ended? Tell me the last episode that aired and which services carry it in Canada.
- Look up Shōgun on TMDB and tell me its genres, first air date, and which streaming platforms have it in Australia.
See more
All themoviedb.org methodsFinds a movie on TMDB by exact title (optionally its release year) or by TMDB movie link, and returns its details, cast, crew, trailers, and the release date, age rating and streaming services for a chosen country.
themoviedb.org/get_movieLists movies scheduled for theatrical release in a country over the coming three weeks, soonest first, from TMDB's country-specific release calendar, with genres, overview and user score.
themoviedb.org/list_upcoming_moviesLists TMDB homepage trending titles for today or this week in displayed order, with year, user score, overview and poster. The homepage shows up to 20 mixed movie and TV titles per period; the movie and TV filters select from those.
themoviedb.org/list_trendingLooks up a TV show by name or TVmaze link and returns its status, schedule, rating, next and previous episodes, and optionally the full episode list including specials.
tvmaze.com/get_showGets the TV broadcasts scheduled in a country for a date from TVmaze. It can also add local and worldwide streaming releases. Airtimes are shown in the service's timezone, or in UTC when the service has none.
tvmaze.com/get_tv_scheduleGets a movie or TV show's IMDb details from its name, IMDb title link or title ID; a year picks between titles with the same name. Unavailable details are null.
imdb.com/get_movie_or_showGets one Netflix movie or series by its exact name or Netflix title URL: title details, publicly shown seasons and episodes, and whether it is available in a given country's catalogue (checked against public JustWatch listings).
netflix.com/get_movie_or_showGets an Apple Podcasts show's details and its newest available episodes, by show name or Apple Podcasts link.
podcasts.apple.com/get_podcast