How LPD collates LEGO data
LPD builds one accurate record per LEGO set by merging several public sources, tagging every field with where it came from, dating every value, and grading how complete the record is — so people and AI agents can cite a single, trustworthy, timestamped answer.
Sources & precedence
lego.com is the backbone; Rebrickable and Brickset fill the gaps. When sources disagree, lego.com wins any field it can supply.
- lego.com — name, current price & availability, official image, age range, piece count and the customer rating (harvested from public theme listings).
- Rebrickable — the catalog spine: theme, minifigures and inventory (from sanctioned data dumps, with attribution).
- Brickset — recommended retail price, barcodes (EAN/UPC), designer, dimensions and a second rating.
Per-field provenance
Every value on a product page names its source on hover (e.g. Source: lego.com). The API returns the same provenance map. Nothing is presented without saying where it came from.
Freshness — every value is dated
Each source records when it was fetched; the page shows a "Verified as of" date and emits dateModified in its structured data. The review aggregate carries its own "as of" date and the span of contributing dates — so you always know how current the answer is.
The review aggregate
Ratings from each site are fused into one count-weighted score (more ratings → more weight), kept within the range of the underlying sources, with a confidence band and a timestamp. It's an honest "aggregate of aggregates", not a number we invent — and it's something no single source publishes.
Completeness grade
Each set is graded on how much of the record we've been able to collate:
The grade weights the lego.com backbone, specs, inventory, reviews and related content. Retired sets (no current lego.com listing) are graded on what's obtainable from Rebrickable and Brickset.
For machines
Every product page has a Markdown twin and structured data. The full catalog is at /products, indexed in llms.txt and the sitemap; agents can call the read-only MCP server. See auth.md for the API.