IMDb API endpoint
Returns public IMDb episode rows for a series title. Limit defaults to 10 and clamps to 20. Optional `season` filters the episodes returned. Pass exactly one of `id` or `url`.
/imdb/title/episodesQuery parameters:
id: IMDb title ID, for example tt0944947.url: absolute IMDb title URL, for example
https://www.imdb.com/title/tt0944947/.season: optional season number to request, for example 1.limit: rows to return, default 10, maximum 20.Notable response behavior:
data.episodes contains public episode IDs, titles, season/episode numbers,
air dates, ratings, vote counts, and plot snippets when IMDb exposes them.data.total is the number of episodes IMDb lists for the requested season,
and data.has_more is true when the response returns fewer than that.season, the first season is returned.air_date, rating_value, and
rating_count.| Field | Filled in, of 10 checked | Values in the sample |
|---|---|---|
| id | 10 | |
| title | 10 | “Game of Thrones: Unaired Original Pilot” and 9 other values |
| url | 10 | imdb.com |
| season | 10 | 1 |
| plot | 10 | median 114 characters |
| public_signals | 10 | 3 to 6, median 6 |
| episode | 9 | 1 to 9, median 5 |
| air_date | 9 | “17 Apr 2011” and 8 other values |
| rating_value | 9 | 8.5 to 9.6, median 8.9 |
| rating_count | 9 | 55,518 to 82,565, median 59,443 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | string | No | IMDb title id | tt0944947 | |
| url | string | No | Absolute https://www.imdb.com/title/<id>/ URL | https://www.imdb.com/title/tt0944947/ | |
| season | integer | No | Season number to request | 1 | |
| limit | integer | No | Rows to return, default 10, max 20 | 10 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/imdb/title/episodes?limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"id": "tt0944947",
"season": 1,
"limit": 10,
"episodes": [
{
"id": "tt1480055",
"title": "Winter Is Coming",
"url": "https://www.imdb.com/title/tt1480055/",
"season": 1,
"episode": 1,
"air_date": "17 Apr 2011",
"rating_value": 8.9,
"rating_count": 52000
}
],
"public_page_derived": true
}
}Request schema
No body schema
Response schema
#/definitions/imdb.episodesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | imdb.EpisodesResponse | No | ||||
| data.episodes | array | No | Episodes of the requested season, or of the first season when none was requested. | |||
| data.episodes[].air_date | string | No | 17 Apr 2011 | Air date as IMDb shows it, for example `17 Apr 2011`, or just the year when only that is known. Omitted when IMDb has no date. | ||
| data.episodes[].episode | integer | No | 1 | Episode number within the season. | ||
| data.episodes[].id | string | No | tt1480055 | IMDb title ID of the episode. | ||
| data.episodes[].plot | string | No | Plot summary of the episode. | |||
| data.episodes[].public_signals | integer | No | 6 | Number of details filled in on this episode, counted across title, season, episode number, rating, vote count and plot. | ||
| data.episodes[].rating_count | integer | No | 52000 | Number of votes behind the episode rating. | ||
| data.episodes[].rating_value | number | No | 8.9 | Average IMDb user rating of the episode. | ||
| data.episodes[].season | integer | No | 1 | Season number of the episode. | ||
| data.episodes[].title | string | No | Winter Is Coming | Title of the episode as shown on IMDb. | ||
| data.episodes[].url | string | No | https://www.imdb.com/title/tt1480055/ | IMDb page URL of the episode. | ||
| 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 episodes for the season than were returned. | ||
| data.id | string | No | tt0944947 | IMDb title ID of the series, for example `tt0944947`. | ||
| data.limit | integer | No | 10 | Maximum number of episodes requested. | ||
| data.public_page_derived | boolean | No | true | Always `true`. The data comes from IMDb's public pages. | ||
| data.season | integer | No | 1 | Season number that was requested. Omitted when no season was requested. | ||
| data.source_url | string | No | https://www.imdb.com/title/tt0944947/episodes/?season=1 | URL the data was read from. | ||
| data.total | integer | No | 11 | Number of episodes IMDb lists for the season. | ||
| data.url | string | No | https://www.imdb.com/title/tt0944947/episodes/ | IMDb episodes page of the series. | ||
| 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/episodes?limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"