TVMaze Scraper — TV Shows, Episodes, Cast & Schedule API
Pricing
from $3.50 / 1,000 results
TVMaze Scraper — TV Shows, Episodes, Cast & Schedule API
TV show data API powered by the open TVMaze REST API — no key, no browser. Search shows, pull show details, ratings, full episode lists, cast & characters, people and a country's daily TV air schedule. Export TV datasets to JSON, CSV or Excel for analytics, ML and recommendations.
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
TVMaze Scraper — TV Show, Episode, Cast & Schedule Data API (No API Key)
A TVMaze scraper and structured TV show data API in a single Apify Actor. Search TV shows, pull full show details and ratings, complete episode lists, cast and characters, people, and a whole country's daily TV air schedule — powered directly by the free, open TVMaze REST API. Get name, genres[], network, premiered, rating, imdbId, season/number, airdate and more as clean, flat JSON. No API key, no login, no OAuth, no headless browser — just fast HTTP. Seven modes share one input form, and every result is tagged with _mode so you can mix modes in one dataset and filter later.
🏆 Why this TVMaze scraper?
7 modes · 40+ fields across shows, episodes, cast, schedule & people · thousands of records per run · direct calls to the open TVMaze REST API (no browser) · export to JSON / CSV / Excel. The convenient TV database API alternative for analytics, ML, recommendations and EPG apps.
✨ What this Actor does / Key features
- 📺 Full catalogue crawl —
showIndexmode paginates the entire TVMaze catalogue at 250 shows per page, the fastest way to build a complete TV shows dataset. - 🔎 Free-text search — find shows or people by name with
searchShowsandpeople. - 🧾 Rich show details —
name,type,language,genres[],status,premiered/ended,runtime,network,officialSite,imdbId,imageand an HTML-strippedsummary; optionally embed the cast. - 🎬 Complete episode lists — every episode of a series with
season,number,airdate,runtime, per-episoderatingandsummary. - 🎭 Cast & characters — each cast member mapped to the
characterNamethey play, withself/voiceflags and photos. - 🗓️ Daily TV schedule — a full day of airings for any
country(100+ across the US), each joined to its show's network, genres and rating. - 👤 People lookups —
name,country,birthday,deathday,genderand photo, by search or by ID. - ⭐ Ratings everywhere — the TVMaze
ratingaverage on every show and episode row. - 🔗 Cross-reference IDs — every show row carries
imdbId(and TheTVDB) so you can join TVMaze data to IMDb/TheTVDB datasets. - 🏷️ Universal tagging — clean
urlback to TVMaze plus_modeandscrapedAt(ISO 8601) on every item; six pre-built dataset views slice the data with zero post-processing.
🚀 Quick start (3 steps)
- Configure — pick a Mode and fill only the fields that mode needs (e.g.
mode: showIndexneeds nothing else;mode: episodesneeds ashowId). - Run — click Start. The Actor calls the TVMaze REST API, flattens the response and streams rows into your dataset.
- Get your data — open the Output tab, switch between the Overview / Shows / Episodes / Cast / Schedule / People views, and export to JSON, CSV, Excel, HTML, RSS or JSON Lines — or pull it via the Apify API.
📥 Input
Pick a Mode, then set the fields that mode uses. The input form shows which fields apply to each mode.
Example — crawl the catalogue for a big TV shows dataset
{"mode": "showIndex","startPage": 0,"maxResults": 500}
Example — every episode of a long-running series
{"mode": "episodes","showId": "83","maxResults": 2000}
Example — today's US TV schedule (EPG / what's-on)
{"mode": "schedule","country": "US","date": "2026-07-06"}
| Field | Type | Description |
|---|---|---|
mode | string | Which TVMaze endpoint to run: showIndex, searchShows, showDetails, episodes, cast, schedule or people. Required. Default showIndex. |
query | string | Free-text term for searchShows (a show name) or people (a person name). |
showId | string | Numeric TVMaze show ID, e.g. 169 (Breaking Bad) or 83 (The Simpsons). Used by showDetails, episodes, cast. |
showIds | array | Batch of TVMaze show IDs (integers) for showDetails. |
embedCast | boolean | When true, showDetails also attaches a compact cast[] list (actor + character) to each show. Default false. |
personId | string | Numeric TVMaze person ID, e.g. 1. Used by people. |
personIds | array | Batch of TVMaze person IDs for people lookups. |
country | string | ISO 3166-1 alpha-2 country code for schedule (e.g. US, GB, DE, TR). Default US. |
date | string | Day for schedule, format YYYY-MM-DD. Empty = today. |
startPage | integer | 0-based page to start showIndex pagination from (250 shows/page). Default 0. |
maxResults | integer | Upper bound on rows. Drives pagination for showIndex; caps the list for other modes. Default 250. |
Tip — finding IDs: a show ID is the integer in a TVMaze show URL (
tvmaze.com/shows/169/...→169); a person ID is the integer in a person URL (tvmaze.com/people/1/...→1). UsesearchShowsorpeoplesearch first to discover IDs, then feed them intoshowDetails,episodes,castorpeople.
📤 Output
Results stream to the default dataset, flattened per mode, with 40+ fields across the modes and every item tagged with _mode. Here is a trimmed sample show record:
{"_mode": "showDetails","id": 169,"name": "Breaking Bad","type": "Scripted","language": "English","genres": ["Drama", "Crime", "Thriller"],"status": "Ended","premiered": "2008-01-20","ended": "2013-09-29","runtime": 60,"rating": 9.2,"network": "AMC","officialSite": "http://www.amc.com/shows/breaking-bad","imdbId": "tt0903747","image": "https://static.tvmaze.com/uploads/images/original_untouched/0/2400.jpg","summary": "Breaking Bad follows protagonist Walter White, a chemistry teacher...","url": "https://www.tvmaze.com/shows/169/breaking-bad","scrapedAt": "2026-07-06T14:00:00.000Z"}
💡 Use cases
- TV & streaming analytics — build a TV shows dataset with genres, networks, premiere years and ratings, then chart trends in a BI tool.
- Recommendation engines & ML — bulk-ingest shows, genres, ratings and cast to train content-based or collaborative recommenders.
- EPG / what's-on apps — pull a country's daily TV schedule to power an electronic program guide or "what's on tonight" feature.
- Catalog enrichment — enrich your own media catalog with TVMaze metadata, posters, runtimes, networks and IMDb/TheTVDB cross-IDs via
showDetails. - Market & competitor research — track which networks air the most shows, benchmark a series' episode ratings, or monitor a genre's back catalog.
- AI agents & RAG — wrap the Actor as a tool so an LLM can answer "what sci-fi shows air on the BBC?" or embed show summaries for retrieval.
👥 Who uses it
TV & streaming analysts · recommendation-engine & ML developers · EPG / "what's-on" app builders · media-catalog & metadata teams · data journalists & researchers · AI-agent and RAG developers.
💰 Pricing
This Actor runs on a simple pay-per-result model — you pay for the records you extract, with no separate Apify platform fees to calculate. Try it on the free tier first, then scale up. See the Pricing tab on this page for the current rate.
❓ Frequently Asked Questions
Do I need a TVMaze API key or account?
No. TVMaze offers a free, open REST API and this Actor reads it directly. You only need an Apify account — no TVMaze API key, no OAuth, no login.
Is this a TVMaze API or a TV database API alternative?
Both, effectively. It works as a convenient wrapper over the TVMaze API and as a practical TV database API for teams who want structured JSON, ready-made CSV/Excel exports and dataset views without writing their own pagination and flattening.
How do I scrape TV episodes without an API key?
Pick episodes mode and set the numeric showId (for example 83 for a long-running animated series). The Actor returns every episode with season and episode numbers, air dates, runtimes, per-episode ratings and summaries — no key or login required.
How do I get a TVMaze show ID or person ID?
A show ID is the integer in a TVMaze show URL (tvmaze.com/shows/169/... → 169). A person ID is the integer in a person URL (tvmaze.com/people/1/... → 1). Use searchShows or people search first to discover IDs, then feed them into the ID-based modes.
How do I export TV show data to CSV, JSON or Excel?
Run any mode and download the dataset as CSV, JSON, Excel (XLSX), HTML, RSS or JSON Lines from the run page, or pull it via the Apify API. This makes it a simple TV show data export and TV dataset tool.
How do I get a TV schedule / what's-on-tonight API?
Use schedule mode with a country code (e.g. US, GB) and an optional date. A single US day returns well over 100 airings, each joined to its show (network, genres, rating) — perfect for an EPG or "what's on" feature.
How much data can the show index return?
showIndex paginates the entire TVMaze catalogue at 250 shows per page. A single run can pull thousands of shows into one dataset — just raise maxResults. It's the guaranteed high-volume mode and the default.
Does it cover cast and characters?
Yes. Use cast mode with a showId to get every cast member mapped to the character they play (with self/voice flags and photos), or set embedCast: true in showDetails to attach a compact cast list to each show.
Can I get IMDb and TheTVDB IDs too?
Yes. Every show row includes imdbId and TheTVDB cross-reference IDs from TVMaze's externals, so you can join TVMaze data to IMDb or TheTVDB datasets.
Is it legal to use this TVMaze scraper?
The Actor reads only publicly available data from the open TVMaze REST API. You are responsible for using the data in compliance with TVMaze's terms and applicable laws such as GDPR.
🔗 More media & entertainment scrapers by logiover
Building a full entertainment dataset? Pair TVMaze with the rest of the media suite:
| Actor | What it does |
|---|---|
| IMDb Scraper | Movie & TV titles, ratings and metadata from IMDb |
| Letterboxd Film Review Scraper | Film reviews and ratings from Letterboxd |
| MyAnimeList Anime Scraper | Anime titles, scores and metadata from MyAnimeList |
| Discogs Scraper | Music releases, artists and labels from Discogs |
| Twitch Scraper | Live streams, channels and category data from Twitch |
| Steam Game Reviews Scraper | Game reviews and ratings from Steam |
| Apple Podcasts Episode Scraper | Podcast shows and episode metadata |
| YouTube Channel Scraper | All videos of a YouTube channel |
| YouTube Video Details Scraper | Full metadata for any YouTube video |
| Resident Advisor Scraper | Electronic-music events and artists |
👉 Browse all logiover scrapers on Apify Store — 180+ actors across real estate, jobs, crypto, social media & B2B data.
⏰ Scheduling & integration
Schedule this Actor on Apify to refresh a TV dataset daily or weekly, or to snapshot the daily schedule for an EPG feed. Export results to JSON, CSV, Excel, HTML, RSS or JSON Lines, sync to Google Sheets, or push to your database, BI tools and webhooks through the Apify API. Call it from your stack via run-sync-get-dataset-items, the JavaScript/Python clients, or no-code tools like Make, n8n and Zapier to build automated media pipelines.
⭐ Support & feedback
Found a bug or need an extra field or mode? Open an issue on the Issues tab — response is usually within 24 hours. If this Actor saves you time, a ★★★★★ review on the Store page genuinely helps and is hugely appreciated. 🙏
⚖️ Legal
This Actor reads only publicly available data from the open TVMaze REST API and is intended for legitimate research, analytics and product-development use. You are responsible for complying with TVMaze's terms of service, GDPR and any applicable local laws.
📝 Changelog
2026-07-06
- ✨ README overhaul: full per-mode field reference, richer output sample, ready-to-run example scenarios (catalogue / episodes / schedule), media & entertainment cross-promo links, expanded FAQ and clearer quick-start.
2026-07-01
- Initial release: seven TVMaze modes (show index, search shows, show details, episodes, cast, schedule, people) over the open TVMaze REST API — no key, no browser.