TVMaze Scraper — TV Shows, Episodes & Cast
Pricing
from $2.75 / 1,000 results
TVMaze Scraper — TV Shows, Episodes & Cast
Search TV shows and get genres, network, rating, premiere/end dates, runtime, IMDb ID, official site, summary and poster, plus optional episode list and cast. Powered by TVMaze. Keyless, no anti-bot.
Search TV shows and get rich metadata — genres, network, rating, premiere/end dates, runtime, IMDb ID, official site, summary and poster — plus optional episode list (count, seasons, latest) and cast (actor → character). Clean JSON/CSV/Excel.
Powered by TVMaze. Keyless, no anti-bot — built for TV/streaming apps, guides, trackers and entertainment datasets.
What this Actor does
Give it show searches and for each matching show it returns:
- Core — name, type (Scripted/Reality…), language, genres, status (Running/Ended), runtime.
- Dates & rating — premiere and end dates, average rating.
- Network — network or web channel (Netflix, HBO…) and its country.
- IDs & links — IMDb ID, TheTVDB ID, official site, TVMaze page and poster image.
- Summary — clean plain-text synopsis.
- Optional — episode summary (count, seasons, latest episode) and the main cast.
Why use it
- A free, clean TV API. Structured show metadata without a key or anti-bot — a solid alternative to scraping IMDb.
- Cross-reference with IMDb. Every show carries its IMDb ID for easy joins.
- Episodes & cast on demand. Flip on episodes and cast to enrich each show.
- Great for apps & content. Streaming guides, trackers, recommendation engines, fan sites and datasets.
- Networks & web channels. Covers traditional networks and streamers alike.
Who it's for
- TV / streaming app developers needing show, episode and cast data.
- Content & entertainment teams building guides and trackers.
- Data & recommendation builders assembling TV datasets.
- Fan sites & bots surfacing show info and cast.
Quick start
Run it in the console (no code)
-
In Show searches, add one per line:
breaking badthe officegame of thrones -
(Optional) turn on Include episodes summary and/or Include cast.
-
Click Start, then export as JSON, CSV, Excel or HTML.
Leave queries empty for a demo.
Run it via API (Python)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run_input = {"queries": ["breaking bad", "the wire"],"includeEpisodes": True,"includeCast": True,}run = client.actor("YOUR_USERNAME/tvmaze-scraper").call(run_input=run_input)for s in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{s['name']} ({s['premiered'][:4]}) — {s['rating']} — {s['network']} — {s['episodeCount']} eps")
Run it via API (JavaScript)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('YOUR_USERNAME/tvmaze-scraper').call({queries: ['breaking bad'],includeCast: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((s) => console.log(`${s.name}: ${s.genres} — ${s.cast}`));
Input
| Field | Type | Description |
|---|---|---|
| Show searches | array | One show search per line. Empty = demo. |
| Include episodes summary | boolean | Add episode count, season count and latest episode. |
| Include cast | boolean | Add main cast (actor → character). |
| Max shows per query | integer | Matching shows to keep per search. Default 50. |
| Speed (parallel queries) | integer | Searches at once. Default 5. |
| Proxy configuration | object | Apify Proxy. On by default. |
Output
One record per show:
{"query": "breaking bad","showId": "169","name": "Breaking Bad","type": "Scripted","language": "English","genres": "Drama; Crime; Thriller","status": "Ended","runtime": "60","premiered": "2008-01-20","ended": "2013-09-29","rating": "9.2","network": "AMC","networkCountry": "United States","officialSite": "http://www.amc.com/shows/breaking-bad","imdbId": "tt0903747","summary": "Breaking Bad follows protagonist Walter White...","image": "https://static.tvmaze.com/uploads/images/original_untouched/0/2400.jpg","url": "https://www.tvmaze.com/shows/169/breaking-bad","episodeCount": "62","seasonCount": "5","latestEpisode": "Felina (S5E16, 2013-09-29)","cast": "Bryan Cranston as Walter White; Aaron Paul as Jesse Pinkman; ...","castCount": "11","scrapedAt": "2026-10-10T12:00:00.000Z"}
| Field | Description |
|---|---|
name / type / language / genres | Core show info. |
status / runtime / premiered / ended | Status, runtime and dates. |
rating | TVMaze average rating. |
network / networkCountry | Network or web channel and country. |
imdbId / thetvdbId / officialSite / url | External IDs and links. |
summary / image | Synopsis and poster. |
episodeCount / seasonCount / latestEpisode | With Include episodes. |
cast / castCount | With Include cast. |
scrapedAt | ISO timestamp. |
Tips & notes
- Search returns matches. A query like
breakingreturns several shows — raise/lower Max shows per query to control how many. - Join on IMDb. Use
imdbIdto merge with IMDb-based datasets. - Episodes/cast cost extra calls. They're off by default; turn on only what you need.
- Networks vs web channels. Streamers (Netflix, HBO Max…) appear in
networktoo. - Ratings vary. Popular shows have ratings; obscure ones may not.
Frequently asked questions
Do I need an API key? No — TVMaze's API is public and keyless.
Can I get episodes and cast? Yes — enable Include episodes summary and Include cast.
Is there an IMDb link? Yes — every show carries its IMDb ID.
Does it cover streaming shows? Yes — network and web-channel shows (Netflix, HBO, etc.) are included.
Good for a TV app or recommender? Yes — clean, structured show/episode/cast data is ideal for apps, guides and recommendation engines.
Export & integrate
Results are available as JSON, CSV, Excel, HTML and via the Apify API. Push to Google Sheets, a webhook, Make, Zapier or your database.
Data from TVMaze.