Developers

Free · Beta

Realvian API

Read-only JSON access to the same area data that powers realvian.co.uk — scores, prices, yields and the six liveability dimensions for every area we cover. Free, with an optional API key for a higher rate limit.

Beta status, honestly stated: this API is public and free. Every endpoint is rate-limited — 30 requests/minute for unauthenticated callers, 120/minute with a free API key from your account. The limiter is a single in-memory counter, not a distributed one: it resets on every deploy, and if this service ever runs as more than one instance the limit is enforced per-instance, not globally. Reasonable for where this project is today; don't build infrastructure that assumes today's exact numbers are permanent.

API keys: generate one free from your account page — no billing, no approval step. Send it as Authorization: Bearer rv_... on any request. The raw key is shown once at generation and never stored — if you lose it, revoke it and generate a new one.

Endpoints

Prefer to generate a client, or import into Postman/Insomnia? Full OpenAPI 3.0 spec covering every endpoint below.

GET/api/v1/areas

List every area Realvian covers. Supports optional city and region filters, and format=csv for a spreadsheet-ready download instead of JSON.

curl https://realvian.co.uk/api/v1/areas?city=Manchester

Try it live — this calls the real API, right now, from your browser.

?city=

Response

{
  "data": [
    {
      "slug": "didsbury-m20",
      "district": "Didsbury",
      "city": "Manchester",
      "region": "North West",
      "outcode": "M20",
      "realvianScore": 87,
      "investmentScore": 79,
      "avgPrice": 412500,
      "avgRent": 1450,
      "grossYield": 5.2,
      "fiveYearGrowth": 18.4,
      "dataStatus": "geography-live"
    }
  ],
  "meta": { "count": 4, "generatedAt": "2026-08-22T12:00:00.000Z" }
}

Or as CSV, for Excel/Sheets

curl -O -J https://realvian.co.uk/api/v1/areas?format=csv
GET/api/v1/areas/{slug}

Full detail for a single area, including all six liveability dimensions, editorial summary, and strengths/watchouts. Returns 404 with a JSON error body if the slug doesn't exist.

curl https://realvian.co.uk/api/v1/areas/didsbury-m20
GET/api/v1/reports

List every market report on the site — metadata only (title, description, tags, which areas it covers), not the full article body. Supports optional area and kind filters. Visit the linked slug on realvian.co.uk for the full report.

curl https://realvian.co.uk/api/v1/reports?area=didsbury-m20
GET/api/v1/compare

Full detail for two areas side by side in a single request — the same data the public comparison tool uses. Requires both ?a= and ?b= slugs. Returns 400 if either is missing, 404 if either slug doesn't exist.

curl https://realvian.co.uk/api/v1/compare?a=didsbury-m20&b=chorlton-m21

Try it live — this calls the real API, right now, from your browser.

?a=
&b=
GET/api/v1/areas/batch

Full detail for up to 50 specific areas in one request, instead of one call per area. Partial success by design — an unknown slug is reported in meta.notFound rather than failing the whole request.

curl https://realvian.co.uk/api/v1/areas/batch?slugs=didsbury-m20,chorlton-m21

meta shape

{ "requested": 2, "found": 2, "notFound": [], "generatedAt": "..." }
GET/api/v1/lookup

Resolve any UK postcode or outcode to its Realvian area, if we cover it. Falls back to city/region from a neighbouring covered outcode when the exact one isn't in our dataset yet, same logic the listing and watchlist forms use.

curl https://realvian.co.uk/api/v1/lookup?postcode=M20+2RN

Try it live — this calls the real API, right now, from your browser.

?postcode=
GET/api/v1/status

API health and honest data-coverage numbers — how many of our areas currently have live liveability dimensions versus live geography only versus fully illustrative data. Useful for monitoring, and for knowing how much of the dataset to trust today.

curl https://realvian.co.uk/api/v1/status

The dataStatus field

Realvian is upfront on the site about which figures are drawn from live public data sources and which are still illustrative while we build out full coverage — this field carries that same honesty into the API rather than presenting every number with equal confidence.

Authentication & rate limits

Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers — check these to self-throttle before hitting a 429. An exceeded limit returns 429 with a Retry-After header telling you how many seconds to wait.

curl -H "Authorization: Bearer rv_your_key_here" \
  https://realvian.co.uk/api/v1/areas

Pagination

/api/v1/areas and /api/v1/reports accept limit (default 50, max 100) and offset query params. Every paginated response includes a meta.hasMore boolean — page until it's false rather than guessing from the total.

curl https://realvian.co.uk/api/v1/areas?limit=10&offset=10

Usage