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
lang query Language code for translation overlay
country query Country for content rating lookup
Responses
200 Media detail
404 Media not found
503 Data unavailable
Response schema 200
idstringrequiredslugstringrequiredtitlestringrequiredoriginal_titlestringrequirednullableyearintegerrequirednullablecontent_typemovie | tv_showrequiredtaglinestringrequirednullableoverviewstringrequirednullableclassificationstringrequirednullableposterstringrequirednullablebackdropstringrequirednullablepopularitynumberrequirednullabletmdb_ratingnumberrequirednullablevote_countintegerrequirednullableruntimeintegernullablein_productionbooleannullablelast_air_datestringnullablegenresobject[]requiredidintegerrequiredslugstringrequirednamestringrequiredratingsobject[]requiredsourcestringrequiredratingnumberrequiredexternal_idsobject[]requiredsourcestringrequiredidstringrequiredvideosobject[]requiredsourcestringrequiredidstringrequiredcontent_ratingstringrequirednullabletranslationobjecttitlestringrequirednullableoverviewstringrequirednullabletaglinestringrequirednullableposterstringrequirednullablebackdropstringrequirednullable Try it
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 Streaming links
GET
/v1/media/{id}/links Requires
Authorization: Bearer header Parameters
id path required Media ID
country query required ISO 3166-1 alpha-2 country code
Responses
200 List of streaming links
400 Missing required parameter
Response schema 200
provider_idstringrequiredProvider slug
addon_provider_idstringrequirednullableAdd-on channel provider
link_tokenstringrequiredEncrypted redirect token
price_typesflatrate | rent | buy | free | cinema | ads | fast | flatrate_and_buy[]requirednullableMonetization types
formatssd | hd | uhd | 4k[]requirednullableVideo quality formats
audio_languagesstring[]requirednullableAudio languages (ISO 639-1)
subtitle_languagesstring[]requirednullableSubtitle languages (ISO 639-1)
available_fromstringrequirednullableLaunch date
available_tostringrequirednullableExpiry date
platformsweb | ios | android | android_tv | fire_tv | roku | webos[]requirednullablePlatform deep links
Try it
curl -X GET 'https://popcorntime-api-production.wicked-f82.workers.dev/v1/media/EdXt2Ryx/links?country=US' \
-H 'Authorization: Bearer YOUR_API_KEY' const res = await fetch('https://popcorntime-api-production.wicked-f82.workers.dev/v1/media/EdXt2Ryx/links?country=US', {
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/links?country=US',
headers={'Authorization': 'Bearer YOUR_API_KEY'})
data = res.json() // Example response
[
{
"provider_id": "string",
"addon_provider_id": "string",
"link_token": "string",
"price_types": [
"flatrate"
],
"formats": [
"sd"
],
"audio_languages": [
"string"
],
"subtitle_languages": [
"string"
],
"available_from": "string",
"available_to": "string",
"platforms": [
"web"
]
}
] 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
Responses
200 Seasons list
Response schema 200
media_idstringrequiredseasonsobject[]requiredseason_numberintegerrequiredtitlestringrequiredoverviewstringrequirednullableposterstringrequirednullableair_datestringrequirednullableepisode_countintegerrequired Try it
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
season path required Season number
Responses
200 Episodes list
Response schema 200
media_idstringrequiredseason_numberintegerrequiredepisodesobject[]requiredepisode_numberintegerrequiredtitlestringrequiredoverviewstringrequirednullablebackdropstringrequirednullableair_datestringrequirednullable Try it
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"
}
]
}