IMDb API endpoint
Returns the plot keywords IMDb lists for a title. Pass exactly one of `id` or `url`. Each keyword has its text and an IMDb search URL for that keyword. `total` is the count IMDb lists, so a short list is normal on popular titles.
/imdb/title/keywordsReturns public IMDb keyword rows for a title.
Query parameters:
id: IMDb title ID, for example tt1375666.url: absolute IMDb title URL, for example
https://www.imdb.com/title/tt1375666/.Notable response behavior:
data.type is keywords.data.keywords contains public keyword text, IMDb keyword search URL, and
public signal counts when present.keywords[].url is an absolute IMDb search URL with tracking parameters
removed.data.total is the number of rows IMDb lists for the title, and data.has_more
is true when the response returns fewer than that. IMDb server-renders only
the first slice of these lists, so a short list is normal on popular titles.| Field | Filled in, of 462 checked | Values in the sample |
|---|---|---|
| keyword | 462 | “prison” and 461 other values |
| url | 462 | imdb.com |
| public_signals | 462 | 2 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | string | No | IMDb title id | tt1375666 | |
| url | string | No | Absolute https://www.imdb.com/title/<id>/ URL | https://www.imdb.com/title/tt1375666/ | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/imdb/title/keywords" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"id": "tt1375666",
"type": "keywords",
"keywords": [
{
"keyword": "dream",
"url": "https://www.imdb.com/search/keyword/?keywords=dream",
"public_signals": 2
}
],
"public_page_derived": true
}
}Request schema
No body schema
Response schema
#/definitions/imdb.titlePublicFactsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | imdb.TitlePublicFactsResponse | No | ||||
| data.company_credits | array | No | Company credits grouped by section. Filled when `type` is `company_credits`. | |||
| data.company_credits[].companies | array | No | Companies listed in this section. | |||
| data.company_credits[].companies[].name | string | No | Warner Bros. | Company name as listed on IMDb. | ||
| data.company_credits[].companies[].note | string | No | presents | Note shown next to the company, for example `presents`. | ||
| data.company_credits[].companies[].public_signals | integer | No | 2 | Number of details filled in on this entry, counted across name, URL and note. | ||
| data.company_credits[].companies[].url | string | No | https://www.imdb.com/company/co0002663/ | IMDb page URL of the company. | ||
| data.company_credits[].name | string | No | Production Companies | Section heading, for example `Production Companies`. | ||
| data.company_credits[].slug | string | No | production-companies | Lowercase, hyphenated form of the section name, for example `production-companies`. | ||
| data.facts | array | No | Trivia, goof or quote entries. Filled when `type` is `trivia`, `goofs` or `quotes`. | |||
| data.facts[].category | string | No | Continuity | Category is IMDb's own grouping for the row, e.g. "Continuity" or "Revealing mistakes" for goofs. Empty when IMDb files the row under an unnamed group, which is the usual case for trivia. | ||
| data.facts[].public_signals | integer | No | 1 | Number of details filled in on this entry, counted across text and spoiler marker. | ||
| data.facts[].spoiler | boolean | No | false | `true` when IMDb marks the entry as a spoiler. | ||
| data.facts[].text | string | No | The hallway fight was filmed with a rotating set. | Text of the trivia, goof or quote entry. | ||
| data.fetched_at | string | No | 2026-06-07T14:46:16Z | Time the data was fetched, in UTC (RFC 3339). | ||
| data.has_more | boolean | No | true | `true` when IMDb lists more entries of this type than were returned. | ||
| data.id | string | No | tt1375666 | IMDb title ID, for example `tt1375666`. | ||
| data.keywords | array | No | Keywords tagged on the title. Filled when `type` is `keywords`. | |||
| data.keywords[].keyword | string | No | dream | Keyword IMDb has tagged the title with. | ||
| data.keywords[].public_signals | integer | No | 2 | Number of details filled in on this entry, counted across keyword and URL. | ||
| data.keywords[].url | string | No | https://www.imdb.com/search/keyword/?keywords=dream | IMDb page that lists titles with this keyword. | ||
| data.locations | array | No | Filming locations of the title. Filled when `type` is `filming_locations`. | |||
| data.locations[].location | string | No | Paris, France | Filming location name, for example `Paris, France`. | ||
| data.locations[].note | string | No | Ariadne learns to build dreams | Note IMDb adds about the location, such as the scene shot there. | ||
| data.locations[].public_signals | integer | No | 2 | Number of details filled in on this entry, counted across location and note. | ||
| data.public_page_derived | boolean | No | true | Always `true`. The data comes from IMDb's public pages. | ||
| data.source_url | string | No | https://www.imdb.com/title/tt1375666/trivia/ | URL the data was read from. | ||
| data.total | integer | No | 21 | Number of entries IMDb lists for this type. | ||
| data.type | string | No | trivia | Kind of data returned: `trivia`, `goofs`, `quotes`, `keywords`, `filming_locations` or `company_credits`. | ||
| data.url | string | No | https://www.imdb.com/title/tt1375666/trivia/ | IMDb page of the title for this kind of data. | ||
| 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/title/keywords" \
-H "x-api-key: $CRAWLORA_API_KEY"