Broadcasting · The Movie Database
The Movie Database (TMDB) API - TV Section
Datadory delivers the movie database tmdb api tv section data as normalized records across six entity levels - series, season, episode, network, company and person - with 26 documented series fields spanning air dates, structures, statuses, community scores and artwork references, worldwide coverage with language and region parameters, plus a catalogue-wide TV identifier roll - delivered daily, weekly, or hourly.
API, files, or your warehouse. Daily, weekly, or hourly.
- Where it covers
- Global catalogue with language and region parameters for localisation; origin_country rides on every series and origin_country sits inside each network entry
- How far back
- Full historical TV catalogue plus forward air dates through next_episode_to_air and last_episode_to_air, so runs carry both history and what airs next
- How fine
- Series, season, episode, network, production company and person level - one stable identifier spine across all six
What is The Movie Database (TMDB) API - TV Section?
The Movie Database (TMDB) API - TV Section is the Broadcasting catalog's breadth record: a community-built television metadata catalogue whose TV surface describes series, seasons, episodes, networks, production companies and people, delivered by Datadory as typed, joinable rows. One series record carries 26 documented fields - identity, the air-date spine, season and episode structure, network and studio attribution, lifecycle status and the community popularity-and-voting block.
Where the neighbours specialize, this one spans. TVmaze owns realtime schedules and future listings; TheTVDB owns ordering discipline and localization habit; this catalogue contributes breadth - more than 30 discovery filters and sort options across the whole TV catalogue, search that matches original, translated and also-known-as titles, and a catalogue-wide identifier roll covering every TV series and TV network, so backfills begin complete. Get a sample of this dataset to see the six entity levels laid against your use case.
What do sample rows look like?
Illustrative rows in the delivered shape - one record per series with the season tree, networks and credits hanging off the series identifier:
# delivered shape - one record per series, child entities keyed on the series id
id : <tmdb series id> name : <current title>
original_name : <title in original production language>
original_language : en origin_country : [US]
status : Returning Series | Ended | Canceled in_production : true | false
first_air_date : YYYY-MM-DD last_air_date : YYYY-MM-DD
episode_run_time : [minutes] popularity : n.nnn
vote_average : n.nn vote_count : n
number_of_seasons : n number_of_episodes : n
next_episode_to_air : {air_date, episode_number, season_number, runtime}
last_episode_to_air : {same fields, most recent aired episode}
seasons : [{air_date, episode_count, name, overview, season_number, vote_average}]
networks : [{name, origin_country}] production_companies : [{name, origin_country}]
genres : [{id, name}] created_by : [{name, gender}]
# catalogue-wide TV identifier roll - every TV series and TV network, ids only
<one compact record per series, one per network, ready to diff between pulls>Read the anatomy rather than the angle brackets. Every series resolves through one identifier to its titles, its air-date window, its next transmission, its season tree and the networks and companies behind it - which is why a guide feature, an availability scan and a catalogue audit all key off the same spine. Live values for the networks, genres and franchises you name arrive with the sample in exactly this frame.
What fields does the dataset include?
Twenty-two documented fields carry every delivered series record, grouped five ways: identity (id, name, original_name), the scheduling spine (first_air_date, last_air_date, next_episode_to_air, last_episode_to_air, episode_run_time), structure (number_of_seasons, number_of_episodes, seasons), attribution (networks, production_companies, created_by, genres, origin_country, original_language) and lifecycle-plus-reception (status, in_production, popularity, vote_average, vote_count). Definitions below were verified against the operator's own television documentation during the research pass, not inferred from sample payloads. Four further fields - poster and backdrop references, the marketing tagline and the series homepage - are defined on the same records but serve artwork and copy workflows, so they fold under additional fields on request, alongside episode-sub-resource detail.
Three groups do the analytical lifting. The scheduling spine answers when a programme ran and when it runs next: first_air_date and last_air_date bound the run, while next_episode_to_air and last_episode_to_air arrive as nested episode objects, making the record forward-looking. The attribution group carries the broadcast dimension - networks with each network's origin country, plus production_companies, created_by and genres. The reception block pairs popularity, vote_average and vote_count, where the vote count tells you how much weight the average can bear.
What does coverage look like across geography, time and granularity?
- Geography: Global. Language and region parameters localise titles and overviews,
origin_countryrides on every series, and each network entry carries its own origin country - a telenovela, a K-drama and a British sitcom resolve on the same field frame. - Temporal: The full historical television catalogue, plus forward air dates through
next_episode_to_air- rare among catalogues, which stop at what has already aired. - Granularity: Six entity levels - series, season, episode, network, production company and person - joined by stable identifiers, with the catalogue-wide TV series and network identifier roll underneath.
That combination - global spread, forward dates, catalogue-scale identifiers - is why product teams reach for it. For who actually watched, the neighbours take over: BARB Weekly Top 50 Shows and Viewing Data measures UK audiences, and the Internet Archive TV News Archive holds 4.37 million caption-searchable news broadcasts.
How is the data delivered?
API, files, or your warehouse. Daily, weekly, or hourly.
You pick the channel and the cadence; flattening the nested objects is our problem, not your pipeline's. Series records arrive with the season tree, networks and credits already typed and keyed on the series identifier, the catalogue-wide TV series and network identifier roll arrives as a flat companion extract, and consecutive deliveries diff cleanly because the field frame never moves between pulls. Warehouse loads write straight into your storage with the identifier spine intact, so a backfill and its increments always agree.
Who uses this data, and for what?
- Competitive-intelligence and product teams treat the identifier roll and the
next_episode_to_airobjects as a change feed for new and upcoming series by network - a launch surfaces here before it surfaces anywhere measured - see competitive intel product teams use cases. - Developers and data-product builders assemble guides and discovery features on the identifier spine: one series id resolves titles, artwork references, season trees and credits - mapped in developers builders use cases.
- Market researchers and consultants run content-availability landscape scans across countries and languages, using the language and region parameters to make catalogues comparable - workflows at market researchers use cases.
- Journalists, academics and students pull programme facts - first and last air dates, season counts, statuses - with the operator named, instead of citing wikis of unknown provenance.
- Data scientists prototype title-matching and catalogue-classification models on structured, multilingual metadata - see data scientists use cases.
Which personas get the most value?
Competitive-intelligence and product teams hold relevance 3 in Datadory's persona research: the identifier roll plus forward air dates behave like a change feed for new and upcoming series by network, and launches are legible before any measurement catches them.
Developers and data-product builders and market researchers and consultants sit at relevance 2 - builders wire guides and discovery onto the identifier spine once; researchers get comparable content-availability frames across markets. Sales and growth teams land at relevance 1 for account mapping against networks and studios, as do journalists, academics and students for fast programme-fact lookups and data scientists, whose training-set ambitions outrun what community-scored metadata should carry. Persona-by-persona workflows expand on the linked use-case pages above.
How does it compare within broadcasting data?
Within TV metadata, the trade-offs run on specialization versus span. TVmaze API - TV Show and Episode Database is the schedule-first option - the catalog's only quality-10 record, built around realtime grids and complete future listings. TheTVDB - TV and Film Metadata Database owns ordering discipline: absolute episode numbers, airs-before flags and the deepest alias and translation habit in the slice. This record's edge is breadth - more than 30 discovery filters, also-known-as title matching, and the identifier roll nothing else replicates.
Against the UK National Data Library / Find Open Data the contrast runs between metadata depth and government publication: 23 broadcasting-tagged UK public datasets there, global television description here - the head-to-head lives on our comparison page. The practical stack pairs this catalogue for identity and breadth with TVmaze for schedules and TheTVDB for ordering. Where everything ranks sits on the best broadcasting datasets ranking.
What should I know before requesting a sample?
Four things worth settling upfront.
- Community-built, so coverage follows contributors. Mainstream English-language television is deep; some regional or brand-new programming carries thinner translations until someone adds them. Scope the sample to your networks and territories and the gaps surface immediately.
- The scores are community signals, not measurements.
popularity,vote_averageandvote_countdescribe attention and taste; pair with Barb or Ofcom when the question is who actually watched. - The identifier roll is the quiet advantage. Starting a join from a complete catalogue-wide id list beats discovering your universe incrementally - say whether you want it in the sample.
- Six levels reward a named scope. Bring the networks, genres or countries you care about and the sample arrives cut to them; the field frame stays identical either way.
Why request this dataset through Datadory
Because a metadata catalogue is only useful once its nesting is flattened and its identifiers hold still. Datadory delivers the six entity levels keyed on the series identifier, resolves the artwork references so images load without a second lookup, keeps the forward-air-date objects intact rather than trimmed away, and ships the catalogue-wide TV series and network identifier roll as a flat extract your warehouse can diff between pulls. Start with a sample of this dataset scoped to the networks and territories you nominate, then browse the rest of the slice on the broadcasting data hub or the best broadcasting datasets ranking.
Field dictionary
Every field below is documented against real records. The full dictionary ships with the sample.
| Field | Type | Definition | Example |
|---|---|---|---|
id | integer | Operator identifier for the TV series - the stable key every season, episode, network and credit record joins through. | 1399 |
name | string | Current title of the series as the contributor community maintains it. | <current title> |
original_name | string | Title in the original production language, preserved alongside the localized name. | <original-language title> |
first_air_date | date | Date the first episode aired - the start anchor for programme lifecycles. | YYYY-MM-DD |
last_air_date | date | Date the most recent episode aired - the end-or-present anchor for run-length calculations. | YYYY-MM-DD |
next_episode_to_air | object | Nested object for the upcoming episode: air_date, episode_number, season_number, runtime and still reference. Makes the record forward-looking rather than merely historical. | {air_date, episode_number, season_number, runtime} |
last_episode_to_air | object | Nested object for the most recently aired episode, carrying the same fields as next_episode_to_air. | {air_date, episode_number, season_number, runtime} |
episode_run_time | array[integer] | Typical episode runtimes in minutes; multiple entries when a series mixes formats such as specials and standard episodes. | [42, 55] |
networks | array[object] | Broadcasting networks behind the series, each with identifier, logo reference, name and origin country - the channel dimension of the catalogue. | [{name, origin_country}] |
number_of_seasons | integer | Count of seasons in the series. | <integer> |
number_of_episodes | integer | Count of episodes across all seasons. | <integer> |
seasons | array[object] | Season objects with air_date, episode_count, name, overview, poster reference, season_number and vote_average - the full season tree on the series record. | [{season_number, episode_count, air_date}] |
genres | array[object] | Genre objects with identifier and name, drawn from the operator's controlled genre vocabulary. | [{id, name}] |
created_by | array[object] | Creators with identifier, credit id, name, gender and profile reference - the person-level attribution on the series. | [{name, gender}] |
production_companies | array[object] | Production companies with identifier, logo reference, name and origin country - the supply-side entities for studio analyses. | [{name, origin_country}] |
origin_country | array[string] | ISO 3166-1 country codes of the series' origin; networks carry their own origin_country inside the networks array. | ["US"] |
original_language | string | ISO 639-1 code of the original production language. | en |
status | enum | Production status - Returning Series, Ended or Canceled among the values - the lifecycle state of the programme. | Returning Series |
in_production | boolean | Whether the series is still in production, distinct from whether episodes remain unaired. | true | false |
popularity | number | Operator popularity score used in trending calculations - a community-attention signal, not an audience measurement. | <number> |
vote_average | number | Average user rating on the ten-point scale. | <number> |
vote_count | integer | Number of user votes contributing to vote_average - read it before quoting the average. | <integer> |
What teams do with it
- New-series change-feed monitoring Combine the catalogue-wide identifier roll with forward air dates so launches surface by network before any measurement catches them.
- Programme-guide and discovery features Build guides and search on the identifier spine - one series id resolves titles, artwork references, season trees and credits.
- Content-availability landscape scans Compare catalogue composition across countries and languages using origin_country, language and region parameters.
- Network and studio footprint analysis Aggregate series by network and production company with origin countries attached for supply-side mapping.
- Catalogue audits and completeness checks Diff the identifier roll between pulls to quantify catalogue growth and spot missing series in your own systems.
- Programme-fact citation Cite first and last air dates, season counts and statuses with the operator named rather than wikis of unknown provenance.
Questions buyers ask
What does The Movie Database (TMDB) API - TV Section contain?
Community-built metadata for television, delivered as normalized records: 26 documented fields per series covering current and original titles, first and last air dates, upcoming and most recent episodes as nested objects, runtimes, season and episode counts, the season tree, networks, production companies, creators, genres, origin countries, language, status and the community popularity and voting block.
Which entity levels does the data cover?
Six, joined by stable identifiers: series, season, episode, network, production company and person. The series record carries the season tree and network entries inline, while person and company records join back through creator, credit and company identifiers. Beneath everything sits a catalogue-wide TV series and network identifier roll covering the entire catalogue.
Does the data include upcoming air dates?
Yes. next_episode_to_air and last_episode_to_air arrive as nested episode objects carrying air date, episode number, season number and runtime, so a series record states both what aired last and what airs next. That forward-looking field is what lets teams treat the catalogue as a change feed for new and upcoming series.
How are networks and production companies represented?
As structured arrays on the series record. Each network entry carries an identifier, logo reference, name and origin country; each production company carries the same shape. Both join outward to entity-level records, so a per-network catalogue or a studio-footprint analysis builds from the series spine without string matching on names.
Can a sample be scoped to specific networks, genres or countries?
Yes - and it should be. More than 30 discovery filters and sort options exist across the catalogue, and the delivered sample honours the same scoping: name the networks, genres, languages or territories you care about and rows arrive cut to them, with the full field dictionary attached and the identifier roll filtered to match.
How does it compare with TVmaze or TheTVDB?
They specialize; it spans. TVmaze leads on realtime schedules and future listings; TheTVDB leads on episode-ordering discipline and translation habit. This catalogue leads on breadth - more than 30 discovery filters, also-known-as title matching, and the catalogue-wide identifier roll - which is why practical stacks pair all three rather than choose one.
Notes on this record
- Six entity levels, one identifier spine Series, season, episode, network, production company and person records all key through the series and entity identifiers, so artwork, credits and episode trees hang off the same id as the title.
- Forward-looking by design next_episode_to_air makes every returning series carry its own future - the reason competitive-intel teams read this catalogue as a launch radar rather than an archive.
- The identifier roll changes the backfill math A catalogue-wide TV series and network identifier roll means your universe is enumerated on day one, and later pulls diff against it instead of being discovered piecemeal.
- Community scores, stated plainly popularity, vote_average and vote_count describe community attention, with vote_count telling you how much weight the average bears - pair with Barb or Ofcom when the question is measured viewing.
- Scored 8/10 in a deep slice Eight on Datadory's rubric against a broadcasting-slice mean of 7.73 and a catalog-wide mean of 7.81 across all 1,744 datasets - strong documentation and breadth in the catalog's densest metadata neighbourhood.
See the rows before you pay anything.
Name this dataset and we send real records from it — scoped to the fields you asked for.