JustWatch API endpoint
Looks up one JustWatch episode by its raw `id` (`tse` followed by digits, such as `tse5550494`), in the `country` (default `US`) and `language` (default `en`) you choose. Returns the title, year, episode number, description, poster, paths, and streaming offers with provider, monetization type, presentation type, price and currency. A valid id with no match returns `404`.
/justwatch/episode/by-idLooks up a JustWatch episode by raw id and returns metadata plus offers.
id required string. Raw JustWatch episode id matching tse[0-9]+, for example tse5550494.country optional string. Two-letter country code. Defaults to US.language optional string. Two-letter language code. Defaults to en.id, country, or language values return 400.node: null returns 404.503.| Field | Filled in, of 19 checked | Values in the sample |
|---|---|---|
| provider | 19 | “fuboTV” and 8 other values |
| provider_id | 19 | |
| provider_short | 19 | “fuv” and 8 other values |
| provider_technical | 19 | “fubotv” and 8 other values |
| monetization_type | 19 | FLATRATE (13), BUY (6) |
| presentation_type | 19 | HD (9), SD (9), 4K (1) |
| currency | 19 | USD in all 19 |
| url | 19 | fubo.tv and 7 other hosts |
| price | 6 | 1.99 to 2.99, median 2.99 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | string | Yes | Raw JustWatch episode id matching tse[0-9]+ | tse5550494 | |
| country | string | No | Two-letter country code | US | |
| language | string | No | Two-letter language code | en | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/justwatch/episode/by-id?id=tse5550494&country=us&language=en" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"country": "US",
"language": "en",
"episode": {
"id": "tse5550494",
"object_type": "SHOW_EPISODE",
"title": "Long Day's Journey Into Night",
"year": 2022,
"episode_number": 1,
"offers": [
{
"provider": "Amazon Video",
"monetization_type": "BUY",
"presentation_type": "HD",
"price": 1.99,
"currency": "USD"
}
]
}
}
}Request schema
No body schema
Response schema
#/definitions/justwatch.episodeByIDResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | justwatch.EpisodeByIDResponse | No | ||||
| data.country | string | No | US | Two-letter ISO country code the results are for. | ||
| data.episode | object | No | Episode that matches the requested id. | |||
| data.episode.description | string | No | Short synopsis of the episode. | |||
| data.episode.episode_number | integer | No | 1 | Number of the episode within its season. | ||
| data.episode.id | string | No | tse5550494 | JustWatch episode id, for example `tse5550494`. | ||
| data.episode.object_id | integer | No | 5550494 | Numeric JustWatch id of the episode. | ||
| data.episode.object_type | string | No | SHOW_EPISODE | JustWatch object type, `SHOW_EPISODE` for episodes. | ||
| data.episode.offers | array | No | Offers for the episode, when requested. | |||
| data.episode.offers[].availability | string | No | https://schema.org/InStock | Availability of the offer as a schema.org URL, for example `https://schema.org/InStock`. | ||
| data.episode.offers[].category | string | No | Blu-Ray | Format label shown for the offer, for example `Blu-Ray`. | ||
| data.episode.offers[].currency | string | No | USD | Currency of `price`, as an ISO 4217 code such as `USD`. | ||
| data.episode.offers[].monetization_type | string | No | RENT | How the title is offered: `FLATRATE`, `FREE`, `ADS`, `RENT` or `BUY`. | ||
| data.episode.offers[].presentation_type | string | No | 4K | Picture format of the offer, for example `HD` or `4K`. | ||
| data.episode.offers[].price | number | No | 4.99 | Price of the offer in `currency`. Omitted for free and subscription offers without a price. | ||
| data.episode.offers[].provider | string | No | Amazon Video | Name of the provider offering the title, for example `Amazon Video`. | ||
| data.episode.offers[].provider_id | integer | No | 10 | JustWatch id of the provider. | ||
| data.episode.offers[].provider_short | string | No | amz | Short provider code, for example `amz`. | ||
| data.episode.offers[].provider_technical | string | No | amazon | Technical provider name used by JustWatch, for example `amazon`. | ||
| data.episode.offers[].url | string | No | Link to watch or buy the title at the provider. | |||
| data.episode.path | string | No | JustWatch page path of the episode. | |||
| data.episode.poster_url | string | No | URL of the still or poster image for the episode. | |||
| data.episode.title | string | No | Long Day's Journey Into Night | Episode title in the requested language. | ||
| data.episode.url | string | No | Full JustWatch page URL of the episode. | |||
| data.episode.year | integer | No | 2022 | Release year of the episode. | ||
| data.language | string | No | en | Two-letter language code used for titles and descriptions. | ||
| 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 |
| 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/justwatch/episode/by-id?id=tse5550494&country=us&language=en" \
-H "x-api-key: $CRAWLORA_API_KEY"