Skip to main content
GET
/
v1
/
movies
/
{id}
Get streaming sources for a movie
const options = {method: 'GET'};

fetch('https://api.example.com/v1/movies/{id}', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
{
  "responseId": "bdfa40a7-a468-461c-8563-7a0c165f252c",
  "expiresAt": "2026-01-15T18:00:00Z",
  "sources": [
    {
      "url": "/v1/proxy?data=%7B%22url%22%3A%22https%3A%2F%2Fcdn.example.com%2Fstream.m3u8%22%7D",
      "type": "hls",
      "quality": "1080p",
      "audioTracks": [
        {
          "language": "en",
          "label": "English"
        }
      ],
      "provider": {
        "id": "prov_1",
        "name": "Provider One"
      }
    }
  ],
  "subtitles": [
    {
      "url": "/v1/proxy?data=%7B%22url%22%3A%22https%3A%2F%2Fcdn.example.com%2Fsub.vtt%22%7D",
      "label": "English",
      "format": "vtt"
    }
  ],
  "diagnostics": []
}

Path Parameters

id
string
required

TMDB movie ID (numeric, max 20 characters)

Pattern: ^\d{1,20}$

Response

Streaming sources and subtitles found

responseId
string<uuid>
required

Unique identifier for this response (UUID v4)

Example:

"bdfa40a7-a468-461c-8563-7a0c165f252c"

expiresAt
string<date-time>
required

ISO 8601 timestamp when sources expire and cache is invalidated. Recommended default: 2 hours from response time for sources.

Example:

"2026-01-15T18:00:00Z"

sources
object[]
required

Array of available streaming sources

subtitles
object[]
required

Array of available subtitles

diagnostics
object[]
required

Optional diagnostics for partial scrapes, warnings, or metadata inferred from filenames. Useful for understanding why certain fields may have incomplete or inferred values.