Skip to main content
Free UK property data API Start free →
Our Data / Market Activity

Market Activity

Homedata is the only UK API exposing the full listing-event chain — Added, Reduced, Sold STC, Withdrawn, Re-listed — matched to a UPRN and a normalised address, queryable by date range over 30 years of history. Government feeds cover completions only; portals don't expose APIs; no other commercial UK property data API exposes live market signals at this depth.

Every step of every UK property's journey through the market. Not just the final sale price — the full timeline from listing to completion, including the ones that never completed. 30 years of data, UPRN-linked.

The full property journey

Land Registry only records completions. We record everything — including the ones that went under offer and then fell through. Each event is timestamped and priced.

14 Maple Avenue, Bristol BS8 3AJ
Most recent listing cycle · UPRN: 100023336956
property_sale_events
Added event_type: "Added"
12 Jan 2024 · Savills Bristol
£595,000
Reduced event_type: "Reduced"
28 Feb 2024 · 47 days on market
£575,000 −3.4%
Under Offer event_type: "Under Offer"
15 Mar 2024 · 63 days on market
Sold STC event_type: "Sold STC"
22 Mar 2024 · offer accepted
£568,000
Completed event_type: "Completed"
14 Jun 2024 · Land Registry confirmed
£568,000
Total journey: 154 days from listing to completion · 3.4% price reduction before sale

Event types

Every state change is tracked with a timestamp and price where applicable.

Added
Property first listed — initial asking price and listing date
Reduced
Asking price lowered — new price and reduction percentage
Under Offer
Offer received — property reserved pending survey
Sold STC
Sale agreed subject to contract — accepted offer price
Withdrawn
Listing removed without completing — deal fell through
Completed
Sale completed and registered at Land Registry
Let
Property let agreed (rental market)
Sale Cancelled
Sale cancelled after Sold STC — chain collapsed
30 years of history
Events going back to 1995. Land Registry only records completions — we capture every listing event including withdrawals and cancellations that never appear in official data.
GET /api/property_sale_events/?uprn={uprn}

Pass any UPRN to get the full listing event timeline. Filter by event_type to isolate specific state changes.

Get a free key →
Request cURL
curl "https://api.homedata.co.uk/api/property_sale_events/
  ?uprn=100023336956" \
  -H "Authorization: Api-Key YOUR_KEY"
Response JSON
{
  "count": 5,
  "results": [
    {
      "id": 84912,
      "event_type": "Added",
      "date": "2024-01-12",
      "price": 595000,
      "source": "Home.co.uk",
      "listing": 4821
    },
    {
      "id": 84913,
      "event_type": "Reduced",
      "date": "2024-02-28",
      "price": 575000,
      "source": "Home.co.uk",
      "listing": 4821
    },
    {
      "id": 84914,
      "event_type": "Sold STC",
      "date": "2024-03-22",
      "price": 568000,
      "source": "Home.co.uk",
      "listing": 4821
    }
  ]
}

What this data unlocks

Deal flow intelligence

Track properties going under offer and watch for Withdrawn events — the signal that a deal fell through. Portfolio managers and investors use this to spot buying opportunities before they're re-listed.

AVM velocity signals

Time-to-offer, price reduction frequency, and listing churn are leading indicators of market velocity. Weight your AVM models with current market conditions rather than historic completions alone.

Cross-cycle property tracking

Events are UPRN-linked, so you can trace the same physical address across decades of listing cycles. See how many times a property has been listed, at what prices, and how long it typically takes to sell.

Why not Land Registry, government feeds, or other property APIs?

Data point Land Registry Homedata
Completed sales ✓ Yes (3–6 month lag) ✓ Yes (real-time)
Properties that were listed but never sold ✗ No ✓ Yes
Price reductions during listing ✗ No ✓ Yes
Time between listing and offer accepted ✗ No ✓ Yes
Withdrawn listings / failed deals ✗ No ✓ Yes
History depth 1990s–present 1995–present (30 years)
UPRN-linked for cross-cycle tracking ✗ No ✓ Yes
Full event chain via REST API (other commercial APIs) ✗ Partial slices only ✓ Full chain, UPRN-matched

Field reference

Field Type Description
id integer Unique event identifier
event_type string State change type: Added, Reduced, Under Offer, Sold STC, Withdrawn, Completed, Let, Sale Cancelled
date date When this event occurred (YYYY-MM-DD)
price integer Price at this event in pence (divide by 100 for pounds). 0 for events without a price change.
source string Always "Home.co.uk" (30 years of continuous data collection), or "Land registry" for completed sales sourced from HM Land Registry.
listing integer PropertyListing ID — groups events belonging to the same listing cycle. Use with /api/property_sales/ to get full sale context.
sale integer | null PropertySale ID if this event is associated with a confirmed sale. Null for listings that did not complete.

Code examples

Python — full listing timeline requests
import requests

API_KEY = "your_api_key"
UPRN = "100023336956"

resp = requests.get(
    "https://api.homedata.co.uk/api/property_sale_events/",
    params={"uprn": UPRN},
    headers={"Authorization": f"Api-Key {API_KEY}"}
)

events = resp.json()["results"]
for event in events:
    price = f"£{event['price']:,}" if event['price'] else "—"
    print(f"{event['date']}  {event['event_type']:<15}  {price}")
JavaScript — filter by event type fetch
const API_KEY = 'your_api_key';
const UPRN = '100023336956';

// Get only Withdrawn events (fallen-through deals)
const res = await fetch(
  `https://api.homedata.co.uk/api/property_sale_events/` +
  `?uprn=${UPRN}&event_type=Withdrawn`,
  { headers: { 'Authorization': `Api-Key ${API_KEY}` } }
);

const { results } = await res.json();
console.log(`${results.length} withdrawn listings found`);
cURL — get Sold STC events curl
curl "https://api.homedata.co.uk/api/property_sale_events/
  ?uprn=100023336956
  &event_type=Sold+STC" \
  -H "Authorization: Api-Key YOUR_KEY"
Python — detect fallen-through deals deal flow signal
import requests

API_KEY = "your_api_key"

def get_withdrawn_listings(uprn: str) -> list:
    """Properties that went Sold STC then Withdrawn"""
    resp = requests.get(
        "https://api.homedata.co.uk/api/property_sale_events/",
        params={"uprn": uprn},
        headers={"Authorization": f"Api-Key {API_KEY}"}
    )
    events = resp.json()["results"]
    types = [e["event_type"] for e in events]
    # Deal fell through: Sold STC followed by Withdrawn
    if "Sold STC" in types and "Withdrawn" in types:
        return [e for e in events if e["event_type"] == "Withdrawn"]
    return []

Start tracking market activity

Free tier includes 100 API calls. No credit card required. The market activity endpoint is available on all plans.

30 years of history UPRN-linked cross-cycle tracking Withdrawn listings included 1 API call per request

Data sources

  • Homemove completions data — proprietary market activity (listing status changes, price reductions, sold STC) sourced from UK estate agent platforms across 30 years.
  • HM Land Registry — UK Price Paid Data used to confirm completions and cross-reference transaction history.