BYTETOOLS

TVmaze API

Free TV show API with no key: series info, full episode guides, cast, air dates and daily schedules with images. Genuinely open, no signup. Tested example.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 19 Aug 2026

What is the TVmaze API?

TVmaze is a free, key-free TV database API providing show information, complete episode guides, cast and crew, air dates, images and daily broadcast schedules across international networks.

TVmaze is the most practical free TV metadata API, chiefly because it needs no key at all — unlike TMDB and OMDb, which both require registration. Show search, episode lists, cast and schedules are all immediately available.

The schedule endpoints are its standout feature: request what is airing on a given date in a given country and you get every episode with its network and time. That is awkward to assemble from other TV APIs and trivial here.

Quick facts

Base URL
https://api.tvmaze.com
Authentication
No API key required for public endpoints. A premium subscription exists for extra features.
Rate limit
About 20 requests per 10 seconds per IP.
Pricing
Free. Data is CC BY-SA licensed and attribution is required.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the TVmaze API

Every request below was executed against the live API on 19 Aug 2026, and the response shown is the real body it returned — not an illustration.

1. Search for a TV show by name

GET https://api.tvmaze.com/singlesearch/shows?q=breaking%20bad

curl
curl 'https://api.tvmaze.com/singlesearch/shows?q=breaking%20bad'
JavaScript (fetch)
const res = await fetch("https://api.tvmaze.com/singlesearch/shows?q=breaking%20bad");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.tvmaze.com/singlesearch/shows?q=breaking%20bad", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "id": 169,
  "url": "https://www.tvmaze.com/shows/169/breaking-bad",
  "name": "Breaking Bad",
  "type": "Scripted",
  "language": "English",
  "genres": [
    "Drama",
    "Crime",
    "Thriller"
  ],
  "status": "Ended",
  "runtime": 60,
  "averageRuntime": 60,
  "premiered": "2008-01-20",
  "ended": "2019-10-11",
  "officialSite": "http://www.amc.com/shows/breaking-bad",
  "schedule": {
    "time": "22:00",
    "days": [
      "Sunday"
    ]
  },
  "rating": {
    "average": 9.2
  },
  "weight": 100,
  "network": {
    "id": 20,
    "name": "AMC",
    "country": {
      "name": "United States",
      "code": "US",
      "timezone": "America/New_York"
    },
    "officialSite": null
  },
  "webChannel": null,
  "dvdCountry": null,
  "externals": {
    "tvrage": 18164,
    "thetvdb": 81189,
    "imdb": "tt0903747"
  },
  "image": {
    "medium": "https://static.tvmaze.com/uploads/images/medium_portrait/501/1253519.jpg",
    "original": "https://static.tvmaze.com/uploads/images/original_untouched/501/1253519.jpg"
  },
  "summary": "<p><b>Breaking Bad</b> 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. The series explores how a fatal diagnosis such as White's releases a typical man from

2. Fetch today's TV schedule for a country

GET https://api.tvmaze.com/schedule?country=US

curl
curl 'https://api.tvmaze.com/schedule?country=US'
JavaScript (fetch)
const res = await fetch("https://api.tvmaze.com/schedule?country=US");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.tvmaze.com/schedule?country=US", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
[
  {
    "id": 3698770,
    "url": "https://www.tvmaze.com/episodes/3698770/the-pulse-2026-08-18-episode-163",
    "name": "Episode 163",
    "season": 2026,
    "number": 163,
    "type": "regular",
    "airdate": "2026-08-18",
    "airtime": "04:00",
    "airstamp": "2026-08-19T08:00:00+00:00",
    "runtime": 60,
    "rating": {
      "average": null
    },
    "image": null,
    "summary": null,
    "show": {
      "id": 15680,
      "url": "https://www.tvmaze.com/shows/15680/the-pulse",
      "name": "The Pulse",
      "type": "News",
      "language": "English",
      "genres": [],
      "status": "Running",
      "runtime": 60,
      "averageRuntime": 60,
      "premiered": "2015-08-13",
      "ended": null,
      "officialSite": "https://www.bloomberg.com/btv/series/the-pulse-francine-lacqua",
      "schedule": {
        "time": "04:00",
        "days": [
          "Monday",
          "Tuesday",
          "Wednesday",
          "Thursday",
          "Friday"
        ]
      },
      "rating": {
        "average": null
      },
      "weight": 71,
      "network": {
        "id": 172,
        "name": "Bloomberg TV",
        "country": {
          "name": "United States",
          "code": "US",
          "timezone": "America/New_York"
        },
        "officialSite": null
      },
      "webChannel": null,
      "dvdCountry": null,
      "externals": {
        "tvrage": 51924,
        "thetvdb": null,
        "imdb": "tt4507312"
      },
      "image": {
        "medium": "https://static.tvmaze.com/uploads/images/medium_portrait/53/132577.jpg",
        "original":

Parameters

ParameterTypeRequiredDescription
singlesearch/shows?q=stringOptionalBest single match for a show name. breaking bad
search/shows?q=stringOptionalAll matching shows with relevance scores. girls
shows/<id>/episodespathOptionalFull episode list for a show. 169
schedule?country=&date=stringOptionalWhat is airing on a date in a country. US
embedstringOptionalEmbed related resources such as cast or episodes. cast

Response fields

idinteger
TVmaze show identifier.
namestring
Show title.
genresarray
Genre tags.
statusstring
Running, Ended or To Be Determined.
premiered / endedstring
First and last air dates.
rating.averagenumber
Community rating out of 10, or null.
imageobject
Medium and original poster image URLs.
summarystring
Synopsis as HTML — sanitise before rendering.

What you can build with the TVmaze API

  • Build a TV show tracker with full episode guides
  • Show what is airing tonight using the schedule endpoints
  • Add show metadata and posters to a media library
  • Create a watchlist app with air date notifications

Common errors and how to fix them

404 on singlesearch

No show matched closely enough.

Fix: Use /search/shows for fuzzy matching with scores; singlesearch returns 404 rather than an empty result.

Summary contains HTML tags

The summary field is HTML.

Fix: Sanitise before rendering; it typically contains <p> and <b> tags.

429

Rate limit exceeded.

Fix: Stay under roughly 20 requests per 10 seconds; use `embed` to fetch related data in one request instead of several.

TVmaze API — frequently asked questions

Is the TVmaze API free?

Yes, completely free with no API key or registration — which sets it apart from TMDB and OMDb, both of which require signup.

How do I get a show's full episode list?

Request /shows/{id}/episodes, or use ?embed=episodes on the show endpoint to fetch both in a single request.

Can I find out what is on TV tonight?

Yes. The /schedule endpoint takes a country and date and returns every episode airing, with network and time — one of its most useful features.

Do I need to attribute TVmaze?

Yes. The data is CC BY-SA licensed, so attribution and a link back are required when you display it.

Tools that pair with this API

Alternatives to TVmaze API

If TVmaze does not fit, these video & streaming apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
NoembedFree oEmbed proxy API with no key: get embed HTML, thumbnails and metadata for YouTube, Vimeo, Twitter and 200+ other sites from one endpoint. Tested.No keyYes19 Aug 2026
IPTV-orgFree IPTV-org API with no key: 10,000+ TV channels worldwide with countries, languages, categories, logos and stream metadata as static JSON. Tested example.No keyYes19 Aug 2026
YouTube oEmbedFree YouTube oEmbed endpoint with no API key: video title, author, thumbnail and embed HTML from any video URL. No quota, unlike the Data API. Tested.No keyNo20 Aug 2026
DailymotionFree Dailymotion API with no key for public data: search videos, channels and playlists with views, duration, thumbnails and embed URLs. Tested example.No keyYes20 Aug 2026
AniListFree AniList GraphQL API with no key for public data: anime, manga, characters, staff and studios with precise field selection in one query. Tested POST.No keyYes20 Aug 2026
Anime News Network EncyclopediaAnime News Network's encyclopedia API returns full anime and manga records as XML with no key: staff, cast, genres, themes, ratings and release history. Live example included.No keyYes21 Aug 2026
All Video & Streaming APIs

TVmaze is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 19 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.