Skip to content

API: Media

Media

Detailed information about movies and TV shows, including streaming links.

GET Media detail
GET /v1/media/{id}
Requires Authorization: Bearer header

Parameters

id path required

Media ID

string
lang query

Language code for translation overlay

string
country query

Country for content rating lookup

string default: US

Responses

200 Media detail
404 Media not found
503 Data unavailable

Response schema 200

idstringrequired
slugstringrequired
titlestringrequired
original_titlestringrequirednullable
yearintegerrequirednullable
content_typemovie | tv_showrequired
taglinestringrequirednullable
overviewstringrequirednullable
classificationstringrequirednullable
posterstringrequirednullable
backdropstringrequirednullable
popularitynumberrequirednullable
tmdb_ratingnumberrequirednullable
vote_countintegerrequirednullable
runtimeintegernullable
in_productionbooleannullable
last_air_datestringnullable
genresobject[]required
idintegerrequired
slugstringrequired
namestringrequired
ratingsobject[]required
sourcestringrequired
ratingnumberrequired
external_idsobject[]required
sourcestringrequired
idstringrequired
videosobject[]required
sourcestringrequired
idstringrequired
content_ratingstringrequirednullable
translationobject
titlestringrequirednullable
overviewstringrequirednullable
taglinestringrequirednullable
posterstringrequirednullable
backdropstringrequirednullable
Try it

Get an API key

curl -X GET 'https://popcorntime-api-production.wicked-f82.workers.dev/v1/media/EdXt2Ryx' \
  -H 'Authorization: Bearer YOUR_API_KEY'
const res = await fetch('https://popcorntime-api-production.wicked-f82.workers.dev/v1/media/EdXt2Ryx', {
  headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const data = await res.json();
import requests

res = requests.get('https://popcorntime-api-production.wicked-f82.workers.dev/v1/media/EdXt2Ryx',
    headers={'Authorization': 'Bearer YOUR_API_KEY'})
data = res.json()
// Example response
{
  "id": "string",
  "slug": "string",
  "title": "string",
  "original_title": "string",
  "year": 0,
  "content_type": "movie",
  "tagline": "string",
  "overview": "string",
  "classification": "string",
  "poster": "string",
  "backdrop": "string",
  "popularity": 0,
  "tmdb_rating": 0,
  "vote_count": 0,
  "runtime": 0,
  "in_production": false,
  "last_air_date": "string",
  "genres": [
    {
      "id": 0,
      "slug": "string",
      "name": "string"
    }
  ],
  "ratings": [
    {
      "source": "string",
      "rating": 0
    }
  ],
  "external_ids": [
    {
      "source": "string",
      "id": "string"
    }
  ],
  "videos": [
    {
      "source": "string",
      "id": "string"
    }
  ],
  "content_rating": "string",
  "translation": {
    "title": "string",
    "overview": "string",
    "tagline": "string",
    "poster": "string",
    "backdrop": "string"
  }
}
GET Seasons
GET /v1/media/{id}/seasons

Returns all seasons for a TV show, including episode counts per season.

Requires Authorization: Bearer header

Parameters

id path required

Media ID

string

Responses

200 Seasons list

Response schema 200

media_idstringrequired
seasonsobject[]required
season_numberintegerrequired
titlestringrequired
overviewstringrequirednullable
posterstringrequirednullable
air_datestringrequirednullable
episode_countintegerrequired
Try it

Get an API key

curl -X GET 'https://popcorntime-api-production.wicked-f82.workers.dev/v1/media/EdXt2Ryx/seasons' \
  -H 'Authorization: Bearer YOUR_API_KEY'
const res = await fetch('https://popcorntime-api-production.wicked-f82.workers.dev/v1/media/EdXt2Ryx/seasons', {
  headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const data = await res.json();
import requests

res = requests.get('https://popcorntime-api-production.wicked-f82.workers.dev/v1/media/EdXt2Ryx/seasons',
    headers={'Authorization': 'Bearer YOUR_API_KEY'})
data = res.json()
// Example response
{
  "media_id": "string",
  "seasons": [
    {
      "season_number": 0,
      "title": "string",
      "overview": "string",
      "poster": "string",
      "air_date": "string",
      "episode_count": 0
    }
  ]
}
GET Episodes
GET /v1/media/{id}/seasons/{season}/episodes

Returns all episodes for a specific season of a TV show.

Requires Authorization: Bearer header

Parameters

id path required

Media ID

string
season path required

Season number

string

Responses

200 Episodes list

Response schema 200

media_idstringrequired
season_numberintegerrequired
episodesobject[]required
episode_numberintegerrequired
titlestringrequired
overviewstringrequirednullable
backdropstringrequirednullable
air_datestringrequirednullable
Try it

Get an API key

curl -X GET 'https://popcorntime-api-production.wicked-f82.workers.dev/v1/media/EdXt2Ryx/seasons/1/episodes' \
  -H 'Authorization: Bearer YOUR_API_KEY'
const res = await fetch('https://popcorntime-api-production.wicked-f82.workers.dev/v1/media/EdXt2Ryx/seasons/1/episodes', {
  headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const data = await res.json();
import requests

res = requests.get('https://popcorntime-api-production.wicked-f82.workers.dev/v1/media/EdXt2Ryx/seasons/1/episodes',
    headers={'Authorization': 'Bearer YOUR_API_KEY'})
data = res.json()
// Example response
{
  "media_id": "string",
  "season_number": 0,
  "episodes": [
    {
      "episode_number": 0,
      "title": "string",
      "overview": "string",
      "backdrop": "string",
      "air_date": "string"
    }
  ]
}