IMDb API endpoint
Returns the IMDb parental guide for a title. Pass exactly one of `id` or `url`. Categories such as violence, profanity and frightening scenes carry a severity of `none`, `mild`, `moderate` or `severe` and the guide text. A `summary` gives counts and the highest severity. Spoiler items are excluded.
/imdb/title/parental-guideReturns public IMDb parental-guide categories and severity signals.
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.categories contains public guide categories such as violence, profanity,
alcohol/drugs, frightening scenes, and sex/nudity when present.data.summary contains category counts, item counts, severity counts, and the
highest observed severity.categories[].severity is one of none, mild, moderate, or severe,
and is omitted when IMDb has recorded no community vote.categories[].items holds the public guide text. Items IMDb files as
spoilers are not included.404 with imdb title "<id>" has no parental guide yet. It is not billed. The missing result may be reused for up to one hour, so
a guide filed since can take that long to appear; upstream failures are not
reused and remain retryable.| Field | In the sample | Value in the sample |
|---|---|---|
| id | Has a value | |
| url | Has a value | imdb.com |
| categories | Has a value | 5 entries |
| summary.categories_count | Has a value | 5 |
| summary.item_count | Has a value | 29 |
| summary.severity_counts | Has a value | |
| summary.highest_severity | Has a value | “severe” |
| summary.present_categories | Has a value | 5 entries |
| summary.public_page_signals | Has a value | |
| public_page_derived | Has a value |
| 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/parental-guide" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"id": "tt1375666",
"categories": [
{
"name": "Violence & Gore",
"slug": "violence-gore",
"severity": "moderate",
"items": [
"Action scenes include gunfire and explosions."
]
}
],
"summary": {
"categories_count": 5,
"item_count": 24,
"highest_severity": "moderate"
},
"public_page_derived": true
}
}Request schema
No body schema
Response schema
#/definitions/imdb.parentalGuideResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | imdb.ParentalGuideResponse | No | ||||
| data.categories | array | No | Parental guide categories IMDb lists for the title. | |||
| data.categories[].items | array | No | Guide entries for this category. Entries IMDb files as spoilers are not included. | |||
| data.categories[].name | string | No | Violence & Gore | Category name, for example `Violence & Gore`. | ||
| data.categories[].severity | string | No | moderate | Community severity vote: `none`, `mild`, `moderate` or `severe`. Omitted when IMDb has no vote. | ||
| data.categories[].slug | string | No | violence-gore | Lowercase, hyphenated form of the category name, for example `violence-gore`. | ||
| data.fetched_at | string | No | 2026-06-07T14:46:16Z | Time the data was fetched, in UTC (RFC 3339). | ||
| data.id | string | No | tt1375666 | IMDb title ID, for example `tt1375666`. | ||
| 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/parentalguide/ | URL the data was read from. | ||
| data.summary | object | No | Counts and highest severity across all returned categories. | |||
| data.summary.categories_count | integer | No | 5 | Number of guide categories returned. | ||
| data.summary.highest_severity | string | No | severe | Highest severity among the categories: `none`, `mild`, `moderate` or `severe`. | ||
| data.summary.item_count | integer | No | 24 | Total number of guide entries across all categories. | ||
| data.summary.present_categories | array | No | Slugs of the categories returned. | |||
| data.summary.public_page_signals | integer | No | 12 | Count of details in the guide: entries, named categories and categories that have a severity. | ||
| data.summary.severity_counts | object | No | Number of categories at each severity level, keyed by severity. | |||
| data.url | string | No | https://www.imdb.com/title/tt1375666/parentalguide/ | IMDb parental guide page of the title. | ||
| 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/parental-guide" \
-H "x-api-key: $CRAWLORA_API_KEY"