Search Netflix titles
Films and series on Netflix in a country that match a search, with filters for type, genre, release years and age rating, and a sort order. Each title has its Netflix id and link, type, title, original title, year, release date, description, runtime, age rating, genres, production countries, IMDb and TMDB ids and scores, Rotten Tomatoes Tomatometer, poster, video qualities on Netflix (SD, HD, 4K), the date it leaves Netflix when announced, and audio and subtitle languages. Pass next_cursor back as cursor; null on the last page.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
qrequired | string | Search words (title). Example: dark |
country | string | Two-letter country code of the Netflix catalogue (US, GB, DE, IN, BR, JP, KR ...). Default US. Example: US |
type | movie | show | movie or show. Default both. |
genres | string | Comma-separated genre codes: act (action), ani (animation), cmy (comedy), crm (crime), doc (documentary), drm (drama), eur (European), fml (family), fnt (fantasy), hrr (horror), hst (history), msc (music), rly (reality TV), rma (romance), scf (sci-fi), spt (sport), trl (thriller), war, wsn (western). |
year_min | integer | Earliest release year. |
year_max | integer | Latest release year. |
age_certifications | string | Comma-separated age ratings of the country, e.g. TV-MA,R or 12,16. |
sort | popular | trending | release_year | alphabetical | imdb_score | tmdb_popularity | random | last_added | Order: popular (default), trending, release_year, alphabetical, imdb_score, tmdb_popularity, random, last_added. Example: popular |
language | string | Two-letter language of titles and descriptions. Default en. Example: en |
limit | integer | Titles per page, 1-40. Default 20. Example: 20 |
cursor | string | Paging cursor: pass next_cursor back; it is null on the last page. |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/netflix/v1/search?q=dark" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/netflix/v1/search",
params={"q": "dark"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/netflix/v1/search");
url.searchParams.set("q", "dark");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).