🎬

Streaming Availability APIs

Find where movies and series are available in a selected country. Resolve IMDb or TMDB IDs, browse streaming catalogs and poll catalog changes, with viewing options separated by access type and links to service title pages.

Open the standalone streaming availability demo

Your first IMDb-to-streaming-links request

Replace <API_KEY> with your authorized platform API key from the dashboard. The query URL contains your key; keep it out of shared links, screenshots and logs.

The example calls get-show with id=tt0120338, country=us, output_language=en and series_granularity=show. Inspect the single show object and streamingOptions.us for reported US viewing options. Availability changes, and a known title can have no local viewing links; this example does not guarantee a populated response.

Base URL https://api.opendata-api.com

curl -X GET 'https://api.opendata-api.com/api/project/streaming-availability/get-show?key=<API_KEY>&id=tt0120338&country=us&output_language=en&series_granularity=show'
Streaming availability request basics
  • get-show accepts a show ID, an IMDb ID such as tt0120338, or a TMDB ID such as movie/597 or tv/1396. Prefer identity lookup when you already have an ID. Title search requires title and country, returns candidates rather than an exact identity verdict, and has no cursor pagination; inspect release year, show type, cast and identifiers before saving a match.
  • Use supported lowercase two-letter country codes and inspect the selected key in streamingOptions. Omitting country on get-show requests the documented multi-country scope; title, catalog and change searches require a country. Missing or empty options mean no reported viewing option for that market, not that the title does not exist. Keep subscription, free, rent, buy and addon options separate; a service listing does not mean access is included in the viewer's subscription.
  • Discover service and add-on IDs through get-countries or get-country and genre IDs through get-genres. catalogs accepts up to 32 comma-separated selectors: a service ID such as netflix, an access-specific selector such as prime.subscription, or service.addon.addon_id. A bare service includes its supported viewing types, and multiple catalogs match any listed catalog. Returned shows can still contain viewing options beyond the catalog used to find them.
  • Within data, get-show is one show object and title search is an array. Catalog search returns shows, hasMore and nextCursor when another page is available; changes returns changes, a show-ID-keyed shows map and pagination fields. Continue only when hasMore is true, passing nextCursor unchanged with all other parameters preserved. A catalog result with shows=[] and hasMore=false is a valid empty result and need not include nextCursor. Country listings are code-keyed objects, one-country lookup is a single object, and genres is an id/name array.
  • get-changes is a polling feed, not a webhook or an unlimited historical archive. Inclusive from and to bounds use Unix seconds: new, removed and updated cover the past 31 days, while upcoming and expiring use the next 31 days. Omitted bounds use the corresponding documented window. include_unknown_dates affects future types only; an unknown date is not a confirmed deadline, and future entries are not guaranteed for every service. Preserve filters during pagination and retain your own snapshots for longer history.
  • Documented output_language values are en, es, tr and fr, with English as the default; a translated interface does not add other response languages. For series, series_granularity=show omits seasons and episodes, season includes seasons, and episode includes both. get-show defaults to episode, while title and catalog search default to show. The quick start explicitly selects show for title-level availability; output language is separate from the catalog's original-language filter.
  • Viewing-option links lead to streaming-service title pages, not playable video files, account access or regional unblocking. Display the returned access type and any supplied price or add-on context, and respect each service's subscriptions, regional rules and terms. This is an independent data product, not an official streaming-service integration. These reads need a platform API key, not a streaming-account password or session.

Check status before reading viewing options

Check HTTP status separately from the gateway's code/message/data business status: code 200 indicates gateway business success, but HTTP 200 alone does not. Then inspect the operation payload inside data. A title lookup returns one raw show object, title search returns a raw array, catalog search returns shows with hasMore and an optional nextCursor, and changes returns changes plus a shows map. Empty viewing options or a successful empty search are not request failures; validate the expected shape before interpreting absence.

Choose a where-to-watch workflow
Resolve a known title or disambiguate a name

Use get-show with a required show ID, tt-prefixed IMDb ID or movie/ or tv/ TMDB ID. Its country filter is optional. If you only have a title, search-shows-by-title requires both title and country; compare release year, cast and identifiers before choosing a candidate. A title match is not proof of local availability.

Browse a country's streaming catalogs

search-shows-by-filters requires country. Discover regional service and add-on IDs from the country directory and genre IDs from get-genres before applying optional catalog, genre, year, rating or original-language filters. Keep every filter unchanged when continuing with a returned nextCursor.

Track additions, removals and reported future availability

get-changes requires country, change_type and item_type. Choose new, removed or updated for past changes, or upcoming or expiring for reported future entries; select show, season or episode detail. Optional time bounds use Unix seconds within the documented 31-day window. Join change.showId to the response's shows map and build polling or notifications in your own application.

Discover countries, services, add-ons and genres

get-countries and get-genres require no operation inputs; output_language is optional. Select a supported country code from the directory, then pass it as the required country-code to get-country for that market's services and add-ons. Use returned IDs, not translated display labels, in catalog and genre filters.

Title Lookup

GET /api/project/streaming-availability/get-show

Find Where to Watch by IMDb, TMDB or Show ID

Full docs β†’
Details

Resolve one known movie or series using a show ID, an IMDb ID such as tt0120338, or a TMDB ID such as movie/597 or tv/1396. Set country to a supported lowercase two-letter code to restrict viewing options to that market; omit it to request availability across supported countries. The response is a single raw show object, not a result list. The observed Titanic lookup returned itemType, showType, id, imdbId, tmdbId, title, originalTitle, overview, releaseYear, genres, directors, cast, rating, runtime, imageSet and streamingOptions.us. Viewing-option entries included service, type, link, audio and subtitle information, with quality, price, add-on or availability dates where supplied. Group links by type rather than treating rentals, purchases and add-ons as included subscriptions. A known title may have no viewing options in a particular country. series_granularity controls documented series detail: show omits season and episode data, season includes seasons, and episode includes both. The default here is episode; use show when only title-level availability is needed. Links lead to streaming-service pages and do not bypass their access requirements.

Test this streaming availability endpoint 1 required Β· 3 optional
ParameterInValue
path
query
Optional filters and detail controls (2)
ParameterInValue
query
query

Request cost is temporarily unavailable. No price is assumed.

View pricing
curl -X GET 'https://api.opendata-api.com/api/project/streaming-availability/get-show?key=<API_KEY>&id=<id>&output_language=en&series_granularity=episode'
GET /api/project/streaming-availability/search-shows-by-title

Search Movies and Series by Title

Full docs β†’
Details

Provide a title phrase and a supported lowercase country code to find candidate movies and series. Optionally restrict show_type to movie or series; leaving it unset searches both. The response is a raw array of show objects, with no shows wrapper or cursor pagination. The observed Titanic movie search returned 20 candidates, including Titanic (1997), with id, imdbId, tmdbId, title, originalTitle, releaseYear, overview, genres, directors, cast, rating, runtime, imageSet and country-keyed streamingOptions. Matching uses title and show type, so a result can exist without being streamable in the requested country. Check each candidate's identity and streamingOptions before displaying a where-to-watch link. The documented limit is normally 20 results, except that all exact-title matches can be returned when there are more than 20. series_granularity affects series only: show omits season and episode detail, season includes seasons, and episode includes both. Use the catalog search instead when you need paginated browsing.

Test this streaming availability endpoint 2 required Β· 3 optional
ParameterInValue
query
query
query
Optional filters and detail controls (2)
ParameterInValue
query
query

Request cost is temporarily unavailable. No price is assumed.

View pricing
curl -X GET 'https://api.opendata-api.com/api/project/streaming-availability/search-shows-by-title?key=<API_KEY>&country=<country>&title=<title>&output_language=en&series_granularity=show'

Catalog Discovery

GET /api/project/streaming-availability/search-shows-by-filters

Browse Streaming Catalogs by Service and Filters

Full docs β†’
Details

Search available movies and series in one required country. catalogs accepts up to 32 comma-separated filters: a service ID such as netflix, a service plus access type such as prime.subscription, or service.addon.addon_id using an add-on ID from the country directory. A bare service ID includes its supported viewing types, not just subscription-included titles; multiple catalogs match any listed catalog. Omit catalogs to search all available catalogs in that country. Combine genre IDs from get-genres using genres_relation=and or or, match a keyword in the title or overview, restrict original language, and set year or rating bounds. order_by supports title, release date, rating and the listed popularity periods; use order_direction=desc for highest-rated results first. The observed US Netflix movie request returned a raw object with shows, hasMore and nextCursor. Each show contained identifiers, title, releaseYear, overview, genres, cast, rating, runtime, imageSet and streamingOptions.us, potentially including services beyond the selected catalog. Follow nextCursor only when hasMore is true and preserve every other filter. The observed nonexistent keyword returned exactly shows:[] and hasMore:false, with no nextCursor. Movie or show-level pages contain 20 results; documented series page sizes vary with series_granularity. This endpoint returns discovery metadata and service links, not playable media.

Test this streaming availability endpoint 1 required Β· 15 optional
ParameterInValue
query
query
query
query
query
Optional filters and detail controls (11)
ParameterInValue
query
query
query
query
query
query
query
query
query
query
query

Request cost is temporarily unavailable. No price is assumed.

View pricing
curl -X GET 'https://api.opendata-api.com/api/project/streaming-availability/search-shows-by-filters?key=<API_KEY>&country=<country>&genres_relation=and&order_by=original_title&output_language=en&series_granularity=show'

Catalog Changes

GET /api/project/streaming-availability/get-changes

Track Streaming Catalog Additions and Changes

Full docs β†’
Details

Poll catalog changes for a required country, change_type and item_type. Documented change types are new, removed, updated, expiring and upcoming; item types are show, season and episode. Use show_type to narrow show-level changes to movies or series. Optional catalogs uses the same service, service.access_type and service.addon.addon_id syntax as catalog search, with up to 32 comma-separated catalogs. The observed new/show request for Netflix US returned a raw object containing changes, a shows map keyed by show ID, hasMore and nextCursor. Change entries included changeType, itemType, showId, showType, streamingOptionType, service, link and timestamp; join showId to the shows map for title metadata and viewing options. Pages contain up to 25 changes ordered by timestamp, with order_direction selecting ascending or descending order. Pass from and to as inclusive Unix timestamps in seconds: new, removed and updated changes are limited to the past 31 days, while expiring and upcoming changes use the next 31 days. Omitted bounds span the corresponding documented window. Future dates may be unknown; include_unknown_dates controls whether those entries are included and does not affect past changes. Continue with nextCursor only when hasMore is true, keeping all other parameters unchanged. This is a polling feed, not a webhook or an unlimited historical archive; future-date coverage is not guaranteed for every service.

Test this streaming availability endpoint 3 required Β· 8 optional
ParameterInValue
query
query
query
query
Optional filters and detail controls (7)
ParameterInValue
query
query
query
query
query
query
query

Request cost is temporarily unavailable. No price is assumed.

View pricing
curl -X GET 'https://api.opendata-api.com/api/project/streaming-availability/get-changes?key=<API_KEY>&country=<country>&include_unknown_dates=false&output_language=en'

Reference Data

GET /api/project/streaming-availability/get-countries

List Supported Countries and Regional Services

Full docs β†’
Details

Fetch the supported-country directory, optionally choosing output_language from en, es, tr or fr. The response is a raw object keyed by lowercase country code, not an array or a countries wrapper. Each entry contains countryCode, name and a services array. Observed service objects contained id, name, homePage, themeColorCode, imageSet, streamingOptionTypes and addons; add-ons supplied their own IDs, names, home pages and artwork metadata. The observed directory included the United States with Netflix, Prime Video, Disney+, Hulu and other services. Use the returned country and service IDs when building catalog requests rather than freezing a country count or assuming that a service operates in every market. streamingOptionTypes describes a service's supported access types, not the availability of an individual movie or series. This directory does not return title-level catalogs or viewing links for a selected show.

Test this streaming availability endpoint 0 required Β· 1 optional
ParameterInValue
query

Request cost is temporarily unavailable. No price is assumed.

View pricing
curl -X GET 'https://api.opendata-api.com/api/project/streaming-availability/get-countries?key=<API_KEY>&output_language=en'
GET /api/project/streaming-availability/get-country

Get Services and Add-on Channels for One Country

Full docs β†’
Details

Pass a supported lowercase country-code path value, such as us, to retrieve one market's service directory. output_language selects en, es, tr or fr, with English as the default. The response is a single raw object with countryCode, name and services. The observed US response identified United States and included Netflix plus other regional services. Service entries contained id, name, homePage, themeColorCode, imageSet, a streamingOptionTypes object with boolean access-type flags, and an addons array. Add-on entries contained id, name, homePage, themeColorCode and imageSet. Use these service and add-on IDs to construct catalog selectors such as service.subscription or service.addon.addon_id. An empty addons array means no channels are listed for that service in this response. A supported access type is a directory capability, not evidence that a particular title is watchable. For a movie or series, resolve its identity and read its own streamingOptions.

Test this streaming availability endpoint 1 required Β· 1 optional
ParameterInValue
path
Optional filters and detail controls (1)
ParameterInValue
query

Request cost is temporarily unavailable. No price is assumed.

View pricing
curl -X GET 'https://api.opendata-api.com/api/project/streaming-availability/get-country?key=<API_KEY>&country-code=<country-code>&output_language=en'
GET /api/project/streaming-availability/get-genres

List Movie and TV Genre Filter IDs

Full docs β†’
Details

Fetch the supported movie and TV genre taxonomy with optional output_language set to en, es, tr or fr. The response is a raw array of objects containing id and name, with no pagination or enclosing genres field. The observed English response contained 21 pairs, including action/Action, comedy/Comedy, drama/Drama and scifi/Science Fiction. Use id values in the catalog search's comma-separated genres parameter, and use name for display rather than submitting translated labels as filter values. This endpoint returns the genre reference only, not matching titles, popularity rankings or per-genre catalog counts. A separately translated Chinese interface can display its own labels, but Chinese is not one of the documented output_language options.

Test this streaming availability endpoint 0 required Β· 1 optional
ParameterInValue
query

Request cost is temporarily unavailable. No price is assumed.

View pricing
curl -X GET 'https://api.opendata-api.com/api/project/streaming-availability/get-genres?key=<API_KEY>&output_language=en'

Title lookup, regional catalogs and coverage boundaries

Find where movies and TV series are available to watch in a chosen country, with descriptive metadata and direct streaming-service title links. Build discovery experiences around the services viewers actually use.

  • Known-title lookup: resolve a show ID, IMDb ID or TMDB ID to metadata and country-keyed viewing options
  • Title search: distinguish similarly named movies and series using release years, identifiers and cast
  • Catalog discovery: filter by service, viewing option type, genre, original language, year and rating, with cursor pagination
  • Catalog changes: poll new, removed or updated entries within the documented time window; request upcoming or expiring entries where dates are supplied
  • Integration directories: discover supported countries, regional services, add-on channels and genre IDs

Designed for watchlists, recommendation tools, entertainment publishers and regional catalog research. Viewing options vary by market and may require a subscription, rental, purchase or add-on. Responses provide metadata and service links, not video files, account access or regional unblocking.

Guides