Skip to content

Data endpoints

Every figure on RealScout is served from static JSON and CSV files you can fetch directly. There is no key, no sign-up and no rate card, because there is no API service: these are files on a CDN, rebuilt monthly (current build: sales to June 2026), and licensed for reuse under the Open Government Licence v3.0.

The endpoints

/data/index.json

National, London and regional aggregates, the methodology block, the dataset version and the full district list. The entry point: everything else hangs off it. Example.

/data/districts/{OUTCODE}.json

One postcode district: median and mean price per square metre with confidence interval, p20 to p80 spread, tenure and property-type splits, quarterly and yearly trends, mix weights, ten-year growth, top sectors and 30 preview sales. Uppercase outcode in the filename. Example.

/data/sectors/{OUTCODE}.json

Every postcode sector of one district in a single bundle, each with its own statistics and trends where the sample supports them. Example.

/data/transactions/{OUTCODE}.json

Individual sales for one district over a 60-month window, columnar (a cols array plus rows arrays): date, price, price per square metre, floor area, type, tenure, new-build flag, postcode, address, coordinates. Example.

/data/regions/{slug}.json

Every district in one region with its median price per square metre, matched-sale and total sale counts, plus the post towns of the region. Example.

/data/towns/{slug}.json

Every district of one post town, for the town rollup pages. Same fields as the region file, at town grain. Example.

/data/home-lists.json

The 12 most expensive and 12 best-value districts by median price per square metre, among districts with at least 100 matched sales in a shared window. Example.

/data/rankings/{slug}.json

One league table of 50 ranked districts, self-describing: kind, scope, metric, minimum matched sales and window travel with the rows. Example.

/data/compare/summaries.json

Compact per-district summaries used to build any head-to-head comparison client-side, plus the list of curated pairs. Example.

/data/search-index.json

Compact tuples of [id, kind, name, lat, lng] for every published district and sector. Powers the search box; useful for building your own. Example.

/data/districts.csv

One row per published district: medians, quantiles, counts, window, dataset version and page URLs. Unformatted values, RFC 4180 quoting. The spreadsheet-friendly summary of the whole dataset. Example.

Conventions

  • District filenames are uppercase (SW11.json); page URLs are lowercase (/property-prices/sw11). Every prerendered page links its own JSON twin via <link rel="alternate" type="application/json">.
  • Files are immutable between monthly rebuilds and served with stale-while-revalidate caching. Please cache on your side and do not poll in a loop; dataset_version in index.json tells you when anything changed.
  • Numbers are pre-rounded to publication precision (three significant figures for price per square metre), so the JSON, the CSV and the page always agree.
  • A missing statistic is null, never zero: it means the sample was too thin to publish, and the methodology page states every threshold.

Licence and attribution

Reuse is free, including commercially, under the Open Government Licence v3.0. Reproduce the attribution line and, ideally, link the page or endpoint you drew from. The dataset page carries a ready-made citation with a copy button.

See the data rendered

Median price per square metre, sold prices and price history for any postcode district in England & Wales.