Blu-ray APIblu-ray.com ↗
Search and browse Blu-ray and 4K UHD release data including video codec, HDR format, audio tracks, region coding, and distributor info via a structured API.
What is the Blu-ray API?
The blu-ray.com API gives developers structured access to physical disc release data across 3 endpoints, covering Blu-ray and 4K UHD titles with full technical specifications. get_release_detail returns per-disc fields including video codec, HDR type, aspect ratio, audio tracks, region coding, distributor, and edition name. search_releases and list_releases provide paginated browsing and keyword search with optional format and distributor filters.
curl -X GET 'https://api.parse.bot/scraper/d74a90fa-4529-420a-b15e-76e1c75d8be8/list_releases?limit=2&format=4k' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace blu-ray-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Blu-ray.com releases SDK — browse, search, and drill into disc details."""
from parse_apis.blu_ray_com_api import BluRay, Format, InputFormatInvalid
client = BluRay()
# Browse the latest 4K UHD releases, capped to 3 items.
for release in client.releases.list(format=Format._4K, limit=3):
print(release.product_title, "|", release.release_date)
# Search for a specific film and take the first hit.
hit = client.releases.search(query="inception", limit=1).first()
if hit is not None:
print(hit.movie_title, hit.year_of_film, hit.video.resolution)
# Drill into full detail using the product URL discovered above.
try:
detail = client.releases.get(product_url=hit.product_url)
except InputFormatInvalid as e:
print("Invalid URL format:", e.message)
else:
print(detail.product_title, detail.distributor)
print("Audio tracks:", len(detail.audio))
for track in detail.audio:
print(" ", track)
if detail.edition:
print("Edition:", detail.edition)
print("exercised: releases.list / releases.search / releases.get / release.refresh")
Lists physical Blu-ray and 4K UHD releases. When distributor is omitted, paginates the general new-releases feed (newest first). When distributor is provided, resolves it to the site's studio ID and paginates that distributor's full catalog directly, enabling traversal of all historical, current, and upcoming releases for that distributor. Each call fetches one page of listings and enriches each entry with full metadata from its detail page. Pagination via page parameter; each page contains up to 20 entries from the site, further bounded by limit.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-indexed). Each page contains up to 20 site entries. |
| limit | integer | Maximum number of release records to return. Clamped to 20. |
| format | string | Filter by disc format. Omit to return all formats. |
| distributor | string | Distributor/studio name to source releases from (e.g. 'Criterion', 'Warner Bros.', 'Arrow'). When provided, the endpoint resolves the name to a studio ID and paginates that distributor's catalog directly. Matching is case-insensitive; exact match is tried first, then substring. Omit to paginate the general new-releases feed. |
{
"type": "object",
"fields": {
"page": "current page number",
"count": "number of records returned",
"releases": "array of release record objects"
},
"sample": {
"data": {
"page": 1,
"count": 1,
"releases": [
{
"audio": [
"English: Dolby Atmos",
"English: Dolby TrueHD 7.1 (48kHz, 16-bit)"
],
"video": {
"hdr": "Dolby Vision, HDR10",
"codec": "HEVC / H.265 (63.24 Mbps)",
"resolution": "Native 4K (2160p)",
"aspect_ratio": "2.39:1, 1.78:1",
"original_aspect_ratio": "2.00:1"
},
"format": "4K UHD",
"rating": "Rated PG-13",
"region": "Region free",
"country": "US",
"edition": null,
"runtime": "156 min",
"distributor": "Alliance Entertainment",
"movie_title": "Project Hail Mary",
"product_url": "https://www.blu-ray.com/movies/Project-Hail-Mary-4K-Blu-ray/410570/",
"release_date": "Aug 11, 2026",
"year_of_film": 2026,
"product_title": "Project Hail Mary 4K Blu-ray",
"cover_image_url": "https://images.static-bluray.com/movies/covers/410570_large.jpg"
}
]
},
"status": "success"
}
}About the Blu-ray API
What the API Covers
All three endpoints return release records drawn from blu-ray.com product pages. Each record includes video (with codec, resolution, hdr, and aspect_ratio sub-fields), an audio array of track descriptions, format (either 4K UHD or Blu-ray), rating, region, country, runtime, distributor, edition, and movie_title. Cover image URLs are included in detail responses.
Browsing and Searching Releases
list_releases paginates the newest-first release catalog. Use the page parameter (1-indexed) to walk through pages of up to 20 entries, and the optional format parameter to restrict results to a specific disc format. The optional distributor string filters records to only those whose distributor name contains the provided substring (case-insensitive). search_releases accepts a required query keyword — typically a movie title — and applies the same format and distributor filters on top of search results. Both endpoints enrich each listing with the same full metadata returned by get_release_detail.
Fetching a Single Release
get_release_detail takes a full blu-ray.com product page URL (obtainable from list_releases or search_releases results) and returns the complete metadata for that one disc. This is the right endpoint when you already have a specific product URL and want the full spec in a single call: HDR type, audio track list, region code, distributor, and edition name are all present in the response. The edition field is null when no special edition is designated.
Pagination and Filtering Notes
Both list_releases and search_releases clamp returned records to a maximum of 20 per call via the limit parameter. Format and distributor filters are applied after the page of results is retrieved, so the effective count per page may be lower than 20 when filters are active. Plan pagination accordingly when walking large result sets with filters enabled.
The Blu-ray API is a managed, monitored endpoint for blu-ray.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when blu-ray.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official blu-ray.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a disc specification comparison tool using
video.codec,video.hdr, andaudiofields across multiple releases - Track newly released 4K UHD titles by polling
list_releaseswith theformatfilter set to4K UHD - Identify region-specific releases using the
regionandcountryfields returned byget_release_detail - Filter a distributor's catalog by passing their name to the
distributorparameter insearch_releases - Populate a home media database with structured disc metadata including edition name, runtime, and content rating
- Alert users when a specific title appears in new release listings by running periodic
search_releasesqueries against movie titles
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does blu-ray.com have an official developer API?+
What does `get_release_detail` return that the list and search endpoints don't?+
get_release_detail is simply the direct path to that data when you already have a product page URL. The response includes video (codec, resolution, hdr, aspect_ratio), the audio array, format, rating, region, country, edition, runtime, distributor, and movie_title. No additional fields are added by the detail endpoint beyond what list and search already populate per record.Do the format and distributor filters guarantee a full page of results?+
count may be well below the limit value. If you need a specific number of matching records, you may need to iterate across multiple pages.Does the API cover user reviews or community ratings for discs?+
Can I retrieve a list of all available distributors or formats to use as filter values?+
distributor or format values. The distributor filter does a case-insensitive substring match, so partial strings work. For format, the known values appearing in responses are 4K UHD and Blu-ray. You can fork the API on Parse and revise it to add a lookup endpoint that aggregates distinct distributor names from catalog results.