IMDb API endpoint
Returns IMDb advanced title-search results (imdb.com/search/title/). At least one filter is required; sort/limit alone are not enough. Limit defaults to 25 and clamps to 50; only IMDb's first page of results is returned (see `total`/`has_more`), there is no deeper cursor pagination. Genre/company/certificate/country/language/keyword/characters/role are include-only lists; there is no exclude support. Unsupported: genre exclude, three curated `groups` values (best-picture-nominee, best-director-nominee, national-film-registry), and the non-plot "page topic" search fields.
/imdb/search/titleReturns results from IMDb's advanced title search (imdb.com/search/title/). At least one filter must be set — sort/limit alone are not enough, since IMDb itself only renders a result listing once at least one real filter is present.
Query parameters:
title: title-name substring match, for example matrix.title_type: comma-separated title types. One or more of feature,
tvSeries, short, tvEpisode, tvMiniSeries, tvMovie, tvSpecial,
tvShort, videoGame, video, musicVideo, podcastSeries,
podcastEpisode.genres: comma-separated genres (include-only, no exclude support). One or
more of Action, Adventure, Animation, Biography, Comedy, Crime,
Documentary, Drama, Family, Fantasy, Film-Noir, Game-Show,
History, Horror, Music, Musical, Mystery, News, Reality-TV,
Romance, Sci-Fi, Short, Sport, Talk-Show, Thriller, War,
Western.release_date_from / release_date_to: release date range bounds, each
YYYY, YYYY-MM, or YYYY-MM-DD. Either side may be omitted for an
open-ended range.min_user_rating / max_user_rating: IMDb user rating range, 0-10.min_votes / max_votes: user rating vote-count range.min_popularity / max_popularity: IMDb popularity rank range (1 is most
popular).min_runtime / max_runtime: runtime range in minutes.groups: comma-separated awards/curated-list groups. One or more of
oscar_winner, oscar_nominee, emmy_winner, emmy_nominee,
golden_globe_winner, golden_globe_nominee, best_picture_winner,
best_director_winner, razzie_winner, razzie_nominee, top_100,
top_250, top_1000, bottom_100, bottom_250, bottom_1000.keywords: comma-separated plot keywords, for example superhero.companies: comma-separated IMDb company ids, format co########, for
example co0000756.certificates: comma-separated COUNTRY:RATING pairs, for example
US:PG-13. Any ISO country code and rating string is accepted — this is
not a closed enum.colors: comma-separated color info. One or more of color,
black_and_white, colorized, aces.countries: comma-separated ISO country codes, for example US. Any
2-3 letter code is accepted — not a closed enum.languages: comma-separated ISO language codes, for example en. Any
2-3 letter code is accepted — not a closed enum.sound_mixes: comma-separated sound mix names. One or more of
12-Track Digital Sound, 3 Channel Stereo, 4-Track Stereo,
6-Track Stereo, 70 mm 6-Track, AGA Sound System, Auro 11.1, CDS,
Chronophone, Cinematophone, Cinephone, Cinerama 7-Track,
Cinesound, D-Cinema 48kHz 5.1, Datasat, De Forest Phonofilm,
Digitrac Digital Audio System, Dolby, Dolby Atmos, Dolby Digital,
Dolby Digital EX, Dolby SR, Dolby Stereo, Dolby Surround 7.1, DTS,
DTS 70 mm, DTS Stereo, DTS-ES, IMAX 6-Track, Kinoplasticon,
LC-Concept Digital Sound, Matrix Surround, Mono, Perspecta Stereo,
Phono-Kinema, SDDS, Sensurround, Silent, Sonics-DDP, Sonix,
Stereo, Ultra Stereo, Vitaphone.role: comma-separated cast/crew IMDb name ids, format nm########, for
example nm0634240.characters: comma-separated character names, for example Neo.plot: plot text search term, for example hacker.include_adult: include adult titles. Defaults to excluded.sort: one of moviemeter, alpha, user_rating, num_votes,
boxoffice_gross_us, runtime, year, release_date.sort_order: asc or desc. Defaults to asc when sort is set;
rejected if set without sort.limit: rows to return. Defaults to 25; maximum 50.Notable response behavior:
data.results contains title rows: id, title, url, title_type, year, release_date, genres, certificate, metascore, rating_value, rating_count, runtime_minutes, plot, image_url.data.total is IMDb's own full hit count for the filter set, not just the
number of rows returned. data.has_more is true whenever total exceeds
the returned rows.total: 0 and an empty results
list.sort, results are ordered by popularity, as on IMDb.groups values (best-picture-nominee,
best-director-nominee, national-film-registry — no accepted slug found),
and the non-plot "page topic" search fields (alternate versions, crazy
credits, goofs, locations, quotes, soundtracks, trivia).| Field | Filled in, of 25 checked | Values in the sample |
|---|---|---|
| id | 25 | |
| title | 25 | “The Matrix” and 23 other values |
| url | 25 | imdb.com |
| title_type | 25 | movie (8), video (5), videoGame (5) and 5 more |
| year | 24 | 1,993 to 2,026, median 2,004 |
| release_date | 20 | 1993-03-01 to 2026-01-27 |
| genres | 25 | median 2 entries |
| certificate | 14 | R (5), T (4), Not Rated (3) and 2 more |
| metascore | 5 | 47 to 73, median 62 |
| rating_value | 23 | 3.8 to 8.7, median 6.8 |
| rating_count | 23 | 26 to 2,286,068, median 1,127 |
| runtime_minutes | 17 | 6 to 148, median 81 |
| plot | 23 | median 184 characters |
| image_url | 24 | m.media-amazon.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| title | string | No | Title-name substring match | matrix | |
| title_type | string | No | Comma-separated title types: `feature`, `tvSeries`, `short`, `tvEpisode`, `tvMiniSeries`, `tvMovie`, `tvSpecial`, `tvShort`, `videoGame`, `video`, `musicVideo`, `podcastSeries`, `podcastEpisode` | feature | |
| genres | string | No | Comma-separated genres (include-only): `Action`, `Adventure`, `Animation`, `Biography`, `Comedy`, `Crime`, `Documentary`, `Drama`, `Family`, `Fantasy`, `Film-Noir`, `Game-Show`, `History`, `Horror`, `Music`, `Musical`, `Mystery`, `News`, `Reality-TV`, `Romance`, `Sci-Fi`, `Short`, `Sport`, `Talk-Show`, `Thriller`, `War`, `Western` | Action,Adventure | |
| release_date_from | string | No | Release date lower bound: YYYY, YYYY-MM, or YYYY-MM-DD | 2020-01-01 | |
| release_date_to | string | No | Release date upper bound: YYYY, YYYY-MM, or YYYY-MM-DD | 2021-12-31 | |
| min_user_rating | number | No | Minimum IMDb user rating, 0-10 | 7 | |
| max_user_rating | number | No | Maximum IMDb user rating, 0-10 | 9.5 | |
| min_votes | integer | No | Minimum number of user rating votes | 25000 | |
| max_votes | integer | No | Maximum number of user rating votes | ||
| min_popularity | integer | No | Minimum IMDb popularity rank (1 is most popular) | ||
| max_popularity | integer | No | Maximum IMDb popularity rank | ||
| min_runtime | integer | No | Minimum runtime in minutes | ||
| max_runtime | integer | No | Maximum runtime in minutes | ||
| groups | string | No | Comma-separated awards/curated-list groups: `oscar_winner`, `oscar_nominee`, `emmy_winner`, `emmy_nominee`, `golden_globe_winner`, `golden_globe_nominee`, `best_picture_winner`, `best_director_winner`, `razzie_winner`, `razzie_nominee`, `top_100`, `top_250`, `top_1000`, `bottom_100`, `bottom_250`, `bottom_1000` | ||
| keywords | string | No | Comma-separated plot keywords | superhero | |
| companies | string | No | Comma-separated IMDb company ids, format `co########` | co0000756 | |
| certificates | string | No | Comma-separated `COUNTRY:RATING` certificate pairs, e.g. `US:PG-13` | US:PG-13 | |
| colors | string | No | Comma-separated color info: `color`, `black_and_white`, `colorized`, `aces` | ||
| countries | string | No | Comma-separated ISO country codes | US | |
| languages | string | No | Comma-separated ISO language codes | en | |
| sound_mixes | string | No | Comma-separated sound mix names: `12-Track Digital Sound`, `3 Channel Stereo`, `4-Track Stereo`, `6-Track Stereo`, `70 mm 6-Track`, `AGA Sound System`, `Auro 11.1`, `CDS`, `Chronophone`, `Cinematophone`, `Cinephone`, `Cinerama 7-Track`, `Cinesound`, `D-Cinema 48kHz 5.1`, `Datasat`, `De Forest Phonofilm`, `Digitrac Digital Audio System`, `Dolby`, `Dolby Atmos`, `Dolby Digital`, `Dolby Digital EX`, `Dolby SR`, `Dolby Stereo`, `Dolby Surround 7.1`, `DTS`, `DTS 70 mm`, `DTS Stereo`, `DTS-ES`, `IMAX 6-Track`, `Kinoplasticon`, `LC-Concept Digital Sound`, `Matrix Surround`, `Mono`, `Perspecta Stereo`, `Phono-Kinema`, `SDDS`, `Sensurround`, `Silent`, `Sonics-DDP`, `Sonix`, `Stereo`, `Ultra Stereo`, `Vitaphone` | ||
| role | string | No | Comma-separated cast/crew IMDb name ids, format `nm########` | nm0634240 | |
| characters | string | No | Comma-separated character names | Neo | |
| plot | string | No | Plot text search term | hacker | |
| include_adult | boolean | No | excluded | Include adult titles. Defaults to excluded | |
| sort | string | No | One of `moviemeter`, `alpha`, `user_rating`, `num_votes`, `boxoffice_gross_us`, `runtime`, `year`, `release_date` | user_rating | |
| sort_order | string | No | `asc` when sort is set | `asc` or `desc`. Defaults to `asc` when sort is set | desc |
| limit | integer | No | Rows to return, default 25, max 50 | 25 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/imdb/search/title?include_adult=true&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"source_url": "https://www.imdb.com/search/title/?genres=Action&title_type=feature&sort=user_rating%2Cdesc&num_votes=25000%2C",
"fetched_at": "2026-08-01T12:00:00Z",
"limit": 25,
"total": 1968,
"has_more": true,
"results": [
{
"id": "tt33175825",
"title": "Attack on Titan: The Last Attack",
"url": "https://www.imdb.com/title/tt33175825/",
"title_type": "movie",
"year": 2024,
"release_date": "2024-11-08",
"genres": [
"Animation",
"Action",
"Adventure"
],
"rating_value": 9,
"rating_count": 33724,
"runtime_minutes": 145,
"plot": "The fate of the world hangs in the balance as Eren unleashes the ultimate power of the Titans."
}
]
}
}Request schema
No body schema
Response schema
#/definitions/imdb.searchTitleResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | imdb.SearchTitleResponse | No | ||||
| data.fetched_at | string | No | 2026-06-07T14:46:16Z | |||
| data.has_more | boolean | No | true | |||
| data.limit | integer | No | 25 | |||
| data.results | array | No | ||||
| data.results[].certificate | string | No | PG-13 | |||
| data.results[].genres | array | No | Action | |||
| data.results[].id | string | No | tt1375666 | |||
| data.results[].image_url | string | No | ||||
| data.results[].metascore | integer | No | 74 | |||
| data.results[].plot | string | No | ||||
| data.results[].rating_count | integer | No | 2600000 | |||
| data.results[].rating_value | number | No | 8.8 | |||
| data.results[].release_date | string | No | 2010-07-16 | |||
| data.results[].runtime_minutes | integer | No | 148 | |||
| data.results[].title | string | No | Inception | |||
| data.results[].title_type | string | No | movie | |||
| data.results[].url | string | No | https://www.imdb.com/title/tt1375666/ | |||
| data.results[].year | integer | No | 2010 | |||
| data.source_url | string | No | https://www.imdb.com/search/title/?genres=Action&title_type=feature | |||
| data.total | integer | No | 1968 | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/imdb/search/title?include_adult=true&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"