TV Shows Scraper
Pricing
from $6.80 / 1,000 results
TV Shows Scraper
Scrape TV shows with genres, language, network, country, status, runtime, premiere and end dates, rating and summary. Search by title or browse the catalog. Export to JSON, CSV or Excel.
Pricing
from $6.80 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 hours ago
Last modified
Categories
Share
TV Shows Scraper
Here is one real result, with every field the actor returns:
{"id": 169,"name": "Breaking Bad","type": "Scripted","language": "English","genres": ["Drama", "Crime", "Thriller"],"status": "Ended","runtime": 60,"premiered": "2008-01-20","ended": "2019-10-11","rating": 9.2,"networkName": "AMC","networkCountry": "United States","officialSite": "http://www.amc.com/shows/breaking-bad","summary": "Breaking Bad follows protagonist Walter White, a chemistry teacher who lives in New Mexico with his wife and teenage son who has cerebral palsy. White is diagnosed with Stage III cancer and given a prognosis of two years left to live. With a new sense of fearlessness based on his medical prognosis, and a desire to secure his family's financial security, White chooses to enter a dangerous world of drugs and crime and ascends to power in this world.","imageUrl": "https://static.tvmaze.com/uploads/images/original_untouched/501/1253519.jpg","url": "https://www.tvmaze.com/shows/169/breaking-bad","weight": 99,"averageRuntime": 60,"scheduleTime": "22:00","scheduleDays": ["Sunday"],"networkCountryCode": "US","networkTimezone": "America/New_York","imdbId": "tt0903747","imdbUrl": "https://www.imdb.com/title/tt0903747/","thetvdbId": 81189,"tvrageId": 18164,"source": "TVmaze","observedAt": "2026-08-10T14:19:08.378Z"}
The most complete TV show catalog scraper available. It returns every field the show record exposes, from genres, status and rating to network, schedule and official site, plus cross-reference IDs for IMDb, TheTVDB and TVRage, and lets you search by title or browse the full catalog.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor searches the TVmaze TV show catalog by title, or browses the full catalog when you leave the search empty, and writes one normalized record per show to the run's dataset. Each record carries the show name, type, language, genres, status, premiere and end dates, runtime, rating, network and country, schedule, official site, summary, cover image and cross-reference IDs for IMDb, TheTVDB and TVRage. Dates are normalized to YYYY-MM-DD, missing values are returned as null, and each record carries an observedAt timestamp.
Quickstart
Open the actor, paste this into the input, and press Run. It searches for the show "breaking bad" and returns the matches.
{"searchQuery": "breaking bad","maxShows": 10}
Leave searchQuery empty to browse the full show catalog instead of searching for a title.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchQuery | string | no | breaking bad | Title to search for, for example breaking bad. Leave empty to browse the full show catalog instead of searching. |
maxShows | integer | no | 10 | Maximum number of shows to collect. Free Apify plans are capped at 10 per run. |
Both fields are optional. With an empty input the actor browses the catalog and returns the most popular shows up to maxShows.
Output reference
One dataset item per show. Types: string, number, integer, string[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
id | integer | Show ID (unique per show). |
name | string | Show title. |
type | string | Show type, for example Scripted, Reality, Animation. |
language | string | Primary language. |
genres | string[] | Genre tags. |
status | string | Show status, for example Running, Ended, In Development. |
runtime | integer | Episode runtime in minutes. |
averageRuntime | integer | Average episode runtime in minutes. |
premiered | string | Premiere date (YYYY-MM-DD). |
ended | string | End date (YYYY-MM-DD), or null if still running. |
rating | number | Average rating out of 10. |
weight | integer | Popularity weight (0 to 100). |
networkName | string | Broadcast or streaming network. |
networkCountry | string | Network country name. |
networkCountryCode | string | Network country code (ISO 2-letter). |
networkTimezone | string | Network timezone. |
scheduleTime | string | Air time (24-hour). |
scheduleDays | string[] | Days the show airs. |
officialSite | string | Official site URL. |
summary | string | Plot summary. |
imageUrl | string | Cover image URL. |
url | string | TVmaze show URL. |
imdbId | string | IMDb title ID. |
imdbUrl | string | IMDb title URL. |
thetvdbId | integer | TheTVDB ID. |
tvrageId | integer | TVRage ID. |
source | string | Data source label. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | Present only on a failed run: a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"searchQuery": "breaking bad", "maxShows": 10}):
{"id": 169,"name": "Breaking Bad","type": "Scripted","language": "English","genres": ["Drama", "Crime", "Thriller"],"status": "Ended","runtime": 60,"premiered": "2008-01-20","ended": "2019-10-11","rating": 9.2,"networkName": "AMC","networkCountry": "United States","officialSite": "http://www.amc.com/shows/breaking-bad","summary": "Breaking Bad follows protagonist Walter White, a chemistry teacher who lives in New Mexico with his wife and teenage son who has cerebral palsy. White is diagnosed with Stage III cancer and given a prognosis of two years left to live.","imageUrl": "https://static.tvmaze.com/uploads/images/original_untouched/501/1253519.jpg","url": "https://www.tvmaze.com/shows/169/breaking-bad","weight": 99,"averageRuntime": 60,"scheduleTime": "22:00","scheduleDays": ["Sunday"],"networkCountryCode": "US","networkTimezone": "America/New_York","imdbId": "tt0903747","imdbUrl": "https://www.imdb.com/title/tt0903747/","thetvdbId": 81189,"tvrageId": 18164,"source": "TVmaze","observedAt": "2026-08-10T14:19:08.378Z"}
The summary is trimmed here for brevity; the full plot summary is returned in every record. All values are real and unmodified.
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~tvmaze-shows-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchQuery":"the office","maxShows":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~tvmaze-shows-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"maxShows":100}'
Apify CLI:
apify call scrapers_lat/tvmaze-shows-scraper \--input '{"searchQuery":"breaking bad","maxShows":10}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per record returned (
resultevent). See the pricing tab for the current per-result price. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxShows.
FAQ and troubleshooting
A run returned 0 records. Why?
The title matched no show in the catalog. Check the spelling, or leave searchQuery empty to browse the full catalog. Zero-result runs are not charged.
How do I browse instead of searching a title?
Leave searchQuery empty. The actor then returns catalog shows up to maxShows.
Why is ended null?
The show is still running, so there is no end date. Missing values are returned as null, never invented.
Which cross-reference IDs are included?
Each record carries imdbId, thetvdbId and tvrageId (plus an IMDb URL) so you can join to other datasets.
Is this an official TVmaze tool? No. This actor is independent and has no affiliation with TVmaze. It reads only publicly available show catalog data. Use the results in accordance with the source's terms.
Related scrapers
- IMDb Titles Scraper: movie and TV title data from IMDb.
- IMDb Reviews Scraper: user reviews for IMDb titles.
- Google Play Apps Scraper: app metadata from Google Play.
- App Store Reviews Scraper: user reviews from the Apple App Store.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with TVmaze. Accesses only publicly available show catalog data. Use in accordance with the source's terms.
