Skip to main content
29M UK properties, one API call Get your API key →
GET /comparables/{uprn}/ PostGIS spatial search Enterprise · arranged per customer

Recent Comparable Sales in England and Wales

Find the nearest comparable sales for a property in England and Wales. Pass a UPRN: get back nearby sold and listed properties ordered by geographic proximity, with sold price, bedrooms, property type, and days on market. Built for AVMs, valuations, and market analysis.

The standalone comparables endpoint is arranged per customer rather than sold self-serve. The same comparable evidence is included in the complete property profile, a flat 50 tokens.

UPRN in. Comps out.

One request returns up to 200 comparable properties within 0.5 miles, ordered by distance. Filter by bedrooms, property type, or event type (sold / listed / all).

✓ Sold prices from Land Registry transactions
✓ Active UK property listings: updated daily
✓ Distance in metres from the reference property
✓ Filter by bedrooms, property type, date range
✓ 24-hour cache: fast repeated calls on same UPRN
Request
# Arranged per customer, not self-serve.
curl "https://api.homedata.co.uk/comparables/100022612238/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# Optional filters:
# ?bedrooms=3&property_type=Terraced&count=10
# ?event_type=sold&start_date=2024-01-01
Response 200 OK
{
  "reference_uprn": 100022612238,
  "filters": {
    "bedrooms": [3],
    "property_type": ["Terraced"],
    "count": 10,
    "start_date": "2024-03-14",
    "end_date": "2025-03-14",
    "event_type": "all"
  },
  "comparables": [
    {
      "uprn": 100022677605,
      "address": "14 Maple Street, M20 2BH",
      "bedrooms": 3,
      "property_type": "Terraced",
      "distance_meters": 83.4,
      "sold_let_date": "2024-11-08",
      "sold_let_price": 312000,
      "transaction_type": "Sale",
      "is_complete": true,
      "listing_price": null,
      "latest_listing": null,
      "latest_sale": {
        "sold_let_date": "2024-11-08",
        "sold_let_price": 312000,
        "is_complete": true
      }
    }
    // ... more comparables
  ],
  "total_results": 8,
  "response_time_seconds": 0.043
}

Response fields

Each comparable object contains sale and listing data where available.

Top-level

Field Type Description
reference_uprn integer The reference property UPRN
filters object Applied filters (bedrooms, type, dates)
comparables array Nearby properties, ordered by distance
total_results integer Number of comparables returned
response_time_seconds float PostGIS query execution time in seconds

Each comparable

Field Type Description
uprn integer Unique Property Reference Number
address string Full address string
bedrooms integer Number of bedrooms
property_type string Detached / Semi-Detached / Terraced / Flat
distance_meters float Distance from reference property in metres
sold_let_date date Date of completion (null if listed only)
sold_let_price integer Achieved sale price in GBP
transaction_type string Sale or Rental
is_complete boolean true if sale has completed
listing_price integer | null Asking price if currently listed
latest_listing object | null Latest listing details (status, source)
latest_sale object | null Most recent sale record

Query parameters

All parameters are optional. Combine freely.

Parameter Type Default Description
bedrooms integer (repeatable) — Filter by bedrooms. Repeat for multiple: ?bedrooms=3&bedrooms=4
property_type string (repeatable) — Detached, Semi-Detached, Terraced, or Flat. Repeat for multiple.
count integer 20 Number of comparables to return. Max 200.
start_date date 1 year ago Start of date window (YYYY-MM-DD)
end_date date today End of date window (YYYY-MM-DD)
event_type string all all (sold or listed), sold (completions only), listed (new listings only)

Who uses comparables data

Comparables are the foundation of any property valuation workflow.

🏠

Automated valuations

AVMs use nearby sold prices as the input signal. Our API returns pre-ranked comparables ready for a median or weighted model.

🏦

Mortgage underwriting

Lenders need evidence of market value. Comparable sold prices within 0.5 miles in the last 12 months is the standard RICS benchmark.

📊

Estate agent tools

Instant comparable report at point of valuation. Show vendors supporting evidence for the asking price recommendation.

🔍

Property investment

Check recent sold prices before making an offer. Filter to matching property type and bedroom count for like-for-like comparison.

Practical patterns

Common integrations in production.

Calculate median comparable price

JavaScript: AVM pattern
// Arranged per customer, not self-serve.
const data = await fetch(
  `https://api.homedata.co.uk/comparables/${uprn}/?bedrooms=3&event_type=sold`,
  { headers: { "Authorization": "Api-Key YOUR_API_KEY" } }
).then(r => r.json());

const prices = data.comparables
  .filter(c => c.sold_let_price)
  .map(c => c.sold_let_price)
  .sort((a, b) => a - b);

const mid = Math.floor(prices.length / 2);
const median = prices.length % 2
  ? prices[mid]
  : (prices[mid - 1] + prices[mid]) / 2;

console.log(`Median comp price: £${median.toLocaleString()}`);

Two-step: address → comparables

cURL: resolve address first
# Step 1: resolve address to UPRN (2 tokens)
curl -G "https://api.homedata.co.uk/address/find/" \
  --data-urlencode "q=14 Maple Street M20" \
  -H "Authorization: Api-Key YOUR_API_KEY"
# → { "suggestions": [{ "uprn": 100022612238, ... }] }

# Step 2: get comparables for that UPRN (arranged per customer, not self-serve.)
curl "https://api.homedata.co.uk/comparables/100022612238/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

Talk to us about comparables

The standalone comparables endpoint is arranged per customer rather than sold self-serve. If you want the same evidence self-serve today, it is included in the complete property profile — a flat 50 tokens, pay as you go, 100 tokens = £1.