Skip to content

Epguides API

Free REST API for TV show data, episode lists, and air dates

Try the API Swagger

Python 3.14 FastAPI License: MIT GitHub Stars


A high-performance TV show API providing access to metadata for thousands of television series. Get episode lists, air dates, plot summaries, and more. Perfect for building TV tracking apps, media centers, or AI assistants.

No API key required

The public API is free to use with no authentication needed. Start making requests immediately!


✨ What You Can Do

Feature Description
πŸ“Ί Browse TV Shows Access metadata for thousands of TV series
πŸ” Search Shows Find shows by title with instant results
πŸ“… Seasons & Episodes Browse by season or get full episode lists
πŸ–ΌοΈ Images Show posters, season posters, episode stills
⏭️ Track New Episodes Get next/upcoming episode for any show
πŸ€– AI-Powered Search Natural language queries like "finale episodes"
πŸ”Œ MCP for AI Assistants JSON-RPC endpoint for Claude, ChatGPT, etc.

πŸš€ Quick Start

# Search for TV shows
curl "https://epguides.frecar.no/shows/search?query=breaking+bad"

# Get show details (with poster)
curl "https://epguides.frecar.no/shows/BreakingBad"

# List seasons (with posters & summaries)
curl "https://epguides.frecar.no/shows/BreakingBad/seasons"

# Get episodes for a season (with episode stills)
curl "https://epguides.frecar.no/shows/BreakingBad/seasons/1/episodes"

# Get all episodes with filtering
curl "https://epguides.frecar.no/shows/BreakingBad/episodes?season=5"

# Get next upcoming episode
curl "https://epguides.frecar.no/shows/Severance/episodes/next"
Python Example
import httpx

async with httpx.AsyncClient() as client:
    # Search for shows
    response = await client.get(
        "https://epguides.frecar.no/shows/search",
        params={"query": "breaking bad"}
    )
    shows = response.json()

    # Get episodes
    response = await client.get(
        "https://epguides.frecar.no/shows/BreakingBad/episodes"
    )
    episodes = response.json()
JavaScript Example
// Search for shows
const response = await fetch(
  "https://epguides.frecar.no/shows/search?query=breaking+bad"
);
const shows = await response.json();

// Get episodes
const episodesResponse = await fetch(
  "https://epguides.frecar.no/shows/BreakingBad/episodes"
);
const episodes = await episodesResponse.json();

πŸ“Š Data Provided

Data Source Description
Shows epguides.com Title, network, country, start/end dates
Episodes epguides.com Season, episode number, title, air date
Summaries TVMaze Episode and season descriptions
Images TVMaze Show posters, season posters, episode stills
IMDB IDs IMDB Cross-reference with IMDB

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ REST API  β”‚   β”‚    MCP    β”‚   β”‚  Health   β”‚
β”‚ /shows/*  β”‚   β”‚   /mcp    β”‚   β”‚  /health  β”‚
β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
      β”‚               β”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
              β–Ό
      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
      β”‚Service Layer β”‚
      β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
             β”‚
     β”Œβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”
     β–Ό       β–Ό       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”
β”‚ Redis β”‚ β”‚ EPG β”‚ β”‚TVMaze β”‚
β”‚ Cache β”‚ β”‚.com β”‚ β”‚  API  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“š Documentation

Guide Description
Getting Started Quick setup for using the API
REST API Reference All endpoints with examples
MCP Server AI assistant integration
Configuration Environment variables & caching
Development Contributing & self-hosting