TVmaze API: Get TV show details
Looks 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.
Unofficial. Not affiliated with or endorsed by TVmaze.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Show, required
show Show name or TVmaze show link, for example Severance or https://www.tvmaze.com/shows/44933/severance.
The Last of Us
- Include Episodes optional
include_episodes Include the full episode list, including specials; for example true.
true (default)
True or false.
Input as JSON
{ "show": "The Last of Us"}Output
{ "name": "The Last of Us", "genres": [ "Drama", "Action", "Horror" ], "status": "running", "country": "United States", "summary": "After a global pandemic destroys civilization, a hardened survivor takes charge of a 14-year-old girl who may be humanity's last hope.", "end_date": null, "episodes": [ { "title": "When You're Lost in the Darkness", "number": 1, "season": 1, "runtime": "85 minutes", "air_date": "2023-01-15", "tvmaze_link": "https://www.tvmaze.com/episodes/2423934/the-last-of-us-1x01-when-youre-lost-in-the-darkness" }, { "title": "Infected", "number": 2, "season": 1, "runtime": "56 minutes", "air_date": "2023-01-22", "tvmaze_link": "https://www.tvmaze.com/episodes/2446254/the-last-of-us-1x02-infected" }, { "title": "Long, Long Time", "number": 3, "season": 1, "runtime": "81 minutes", "air_date": "2023-01-29", "tvmaze_link": "https://www.tvmaze.com/episodes/2446255/the-last-of-us-1x03-long-long-time" } ], "schedule": { "days": [ "Sunday" ], "time": "21:00", "time_zone": "America/New_York" }, "tvmaze_id": 46562, "image_link": "https://static.tvmaze.com/uploads/images/original_untouched/563/1409008.jpg" , "tvmaze_link": "https://www.tvmaze.com/shows/46562/the-last-of-us" , "next_episode": null, "official_site": "https://www.hbo.com/the-last-of-us" , "premiere_date": "2023-01-15", "average_rating": 7.9, "previous_episode": { "title": "Convergence", "number": 7, "season": 2, "tvmaze_link": "https://www.tvmaze.com/episodes/3153912/the-last-of-us-2x07-convergence" , "air_date_time": "2025-05-25T21:00:00-04:00" }, "network_or_streaming_service": "HBO"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"tvmaze.com/get_show","input":{"show":"The Last of Us"}}' # 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": "tvmaze.com/get_show" , "input": { "show": "The Last of Us" }})# 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": "tvmaze.com/get_show" , "input": { "show": "The Last of Us" } }), 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 tvmaze.com/get_show# with {"show":"The Last of Us"}"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 TVmaze show link, for example Severance or https://www.tvmaze.com/shows/44933/severance." }, "include_episodes": { "type": "boolean", "default": true, "description": "Include the full episode list, including specials; for example true." } }, "additionalProperties": false}Output schema
{ "type": "object", "required": [ "name", "status", "premiere_date", "end_date", "network_or_streaming_service", "country", "schedule", "next_episode", "previous_episode", "average_rating", "genres", "summary", "official_site", "image_link", "tvmaze_link", "episodes", "tvmaze_id" ], "properties": { "name": { "type": "string" }, "genres": { "type": "array", "items": { "type": "string" } }, "status": { "type": "string" }, "country": { "type": [ "string", "null" ] }, "summary": { "type": [ "string", "null" ] }, "end_date": { "type": [ "string", "null" ], "format": "date" }, "episodes": { "type": "array", "items": { "type": "object", "required": [ "season", "number", "title", "air_date", "runtime", "tvmaze_link" ], "properties": { "title": { "type": [ "string", "null" ] }, "number": { "type": [ "integer", "null" ] }, "season": { "type": [ "integer", "null" ] }, "runtime": { "type": [ "string", "null" ] }, "air_date": { "type": [ "string", "null" ], "format": "date" }, "tvmaze_link": { "type": [ "string", "null" ] } }, "additionalProperties": false } }, "schedule": { "type": "object", "required": [ "days", "time", "time_zone" ], "properties": { "days": { "type": "array", "items": { "type": "string" } }, "time": { "type": [ "string", "null" ] }, "time_zone": { "type": [ "string", "null" ] } }, "additionalProperties": false }, "tvmaze_id": { "type": "integer", "x-fous-developer": true }, "image_link": { "type": [ "string", "null" ] }, "tvmaze_link": { "type": "string" }, "next_episode": { "anyOf": [ { "type": "object", "required": [ "season", "number", "title", "air_date_time", "tvmaze_link" ], "properties": { "title": { "type": [ "string", "null" ] }, "number": { "type": [ "integer", "null" ] }, "season": { "type": [ "integer", "null" ] }, "tvmaze_link": { "type": [ "string", "null" ] }, "air_date_time": { "type": [ "string", "null" ] } }, "additionalProperties": false }, { "type": "null" } ] }, "official_site": { "type": [ "string", "null" ] }, "premiere_date": { "type": [ "string", "null" ], "format": "date" }, "average_rating": { "type": [ "number", "null" ], "description": "Average rating out of 10." }, "previous_episode": { "anyOf": [ { "type": "object", "required": [ "season", "number", "title", "air_date_time", "tvmaze_link" ], "properties": { "title": { "type": [ "string", "null" ] }, "number": { "type": [ "integer", "null" ] }, "season": { "type": [ "integer", "null" ] }, "tvmaze_link": { "type": [ "string", "null" ] }, "air_date_time": { "type": [ "string", "null" ] } }, "additionalProperties": false }, { "type": "null" } ] }, "network_or_streaming_service": { "type": [ "string", "null" ] } }, "additionalProperties": false}- Price
- 1 credit per completed run (1ยข with pay as you go); failed runs are free.
- Method
tvmaze.com/get_show- Returns
- name, status, premiere and end dates, network or streaming service, schedule, next and previous episode, rating, genres, summary, links, episodes
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 tvmaze.com/get_show with the inputs above.
Ask your agent
- Is The Bear still airing or has it ended, and when does the next episode come out?
- What network carries Shogun and what's its average rating?
- Give me the full episode list for Slow Horses, specials included.
- Show me the premiere date, genres, and schedule for the Last of Us on tvmaze.com.
- Look up Severance at https://www.tvmaze.com/shows/44933/severance and tell me the previous episode and the summary.
See more
All TVmaze methodsGets 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_scheduleFinds 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.
themoviedb.org/get_tv_showGets 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 public Crunchyroll series details by series name or series link; matches a series title rather than a movie.
crunchyroll.com/get_seriesFinds 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_movieFinds a WEBTOON series by name and returns its public details and newest publicly listed episodes. App-only episodes are excluded, and the public site shows no numeric rating.
webtoons.com/get_seriesLooks up an anime on MyAnimeList by English or Japanese name, or by a MyAnimeList anime link. For ambiguous names it returns the most popular match.
myanimelist.net/get_anime