Sourcing Package · Pay as you go
Property data API for sourcers.
Comps, price distributions, agent market data, and full property records in one licensed API. Build automated deal finders and BMV screeners without maintaining your own data pipelines.
Homedata holds the full listing-event chain (Added, Reduced, Withdrawn, Sold STC, Re-listed) UPRN-matched across the market. That's the signal sourcers need, property by property. Work it in Explore, or talk to us about enterprise access. Pay as you go: 100 tokens = £1. First top-up matched 100%.
What you get
What's in the Sourcing Package
Core Property + Market & Pricing modules. Everything a sourcer needs to find, screen, and evaluate deals, without manual portal research.
Sourcing for development potential? Pro gives you the headroom. Planning & Land (planning application history, approval rates by LPA, and Land Registry title data) is included for every account. A monthly subscription earns up to 75% bonus tokens to run it at scale. Find permitted development opportunities and screen for consent before they hit the market.
Comparable sales
0.5-mile radius search. Up to 200 comps per call, sorted by bedroom match. Filter by type, date, and event type to build tighter comp sets. Arranged per customer rather than sold self-serve.
GET /comparables/{uprn}/ Arranged per customer Price distributions
5-bucket price histogram for any outcode. Know exactly where a property sits in the market: top 20%, bottom 20%, median. Quantify the discount.
GET /price_distributions/{outcode}/ Price trends
Monthly median prices by outcode, 12-month rolling window with volatility score. Know if an area is rising, falling, or stagnant before you commit.
GET /price_trends/{outcode}/ Live market & event chain
Active inventory by postcode with Sold STC status, plus the listing-event chain (Added, Reduced, Withdrawn, Sold STC) UPRN-matched. Identify stale listings, motivated sellers, and properties that have been reduced before the rest of the market. Browse it in Explore, or arrange a feed with us.
Property record
Bedrooms, bathrooms, property type, floor area, construction year, garden, parking, and sold price history. The due diligence layer for every deal you evaluate.
GET /properties/{uprn}/ Agent market stats
Days on market, price reduction rates, and active stock levels by postcode. Spot areas where seller motivation is high and time-on-market is long.
GET /agent_stats/{uprn}/ See pricing →Worked example
Build a BMV screener in three calls
Address → UPRN → comparables + price distributions. Is the asking price genuinely below market? Answer that in one function call.
# Step 1: resolve address to UPRN (2 tokens) curl "https://api.homedata.co.uk/address/find/?q=14+Oak+Avenue+Manchester" \ -H "Authorization: Api-Key YOUR_API_KEY" # Step 2: comparable sales within 0.5 miles (arranged per customer, not self-serve) curl "https://api.homedata.co.uk/comparables/100023456789/" \ -H "Authorization: Api-Key YOUR_API_KEY" \ # filter to same type, sold in last 18 months # returns sold_let_price, distance_meters, epc_floor_area # Step 3: price distribution for the outcode (1 token) curl "https://api.homedata.co.uk/price_distributions/M20/" \ -H "Authorization: Api-Key YOUR_API_KEY" # returns 5 buckets with min/max/count: plot where asking price sits
import requests
API_KEY = "YOUR_API_KEY"
BASE = "https://api.homedata.co.uk"
HEADERS = {"Authorization": f"Api-Key {API_KEY}"}
def bmv_screen(address: str, asking_price: int) -> dict:
# Step 1: UPRN lookup
r = requests.get(f"{BASE}/address/find/", params={"q": address}, headers=HEADERS)
prop = r.json()["suggestions"][0]
uprn, postcode = prop["uprn"], prop["postcode"]
# Step 2: comparable sales (arranged per customer, not self-serve)
comps = requests.get(
f"{BASE}/comparables/{uprn}/",
headers=HEADERS,
params={"count": 20, "event_type": "sold"}
).json().get("comparables", [])
avg_comp = sum(c["sold_let_price"] for c in comps) / len(comps) if comps else None
# Step 3: price distribution for outcode (1 token)
outcode = postcode.split()[0]
dist = requests.get(f"{BASE}/price_distributions/{outcode}/", headers=HEADERS).json()
buckets = dist.get("buckets", [])
# Find which bucket the asking price falls into
bucket_label = next(
(b["label"] for b in buckets if b["min"]
const API_KEY = 'YOUR_API_KEY';
const BASE = 'https://api.homedata.co.uk';
const headers = { 'Authorization': `Api-Key ${API_KEY}` };
async function bmvScreen(address, askingPrice) {
// Step 1: UPRN lookup
const findResp = await fetch(`${BASE}/address/find/?q=${encodeURIComponent(address)}`, { headers });
const { suggestions } = await findResp.json();
const { uprn, postcode } = suggestions[0];
const outcode = postcode.split(' ')[0];
// Steps 2 + 3: comps (arranged per customer, not self-serve) and distribution in parallel
const [compsResp, distResp] = await Promise.all([
fetch(`${BASE}/comparables/${uprn}/?count=20&event_type=sold`, { headers }),
fetch(`${BASE}/price_distributions/${outcode}/`, { headers }),
]);
const { comparables } = await compsResp.json();
const { buckets } = await distResp.json();
const avgComp = comparables.reduce((s, c) => s + c.sold_let_price, 0) / comparables.length;
const discountPct = ((1 - askingPrice / avgComp) * 100).toFixed(1);
const bucket = buckets.find(b => askingPrice >= b.min && askingPrice
console.log(`Discount: ${r.discountPct}% | Bucket: ${r.bucket}`)
);
Lead Source
Scan live listings without writing a line of code
Explore gives you a visual deal-finder for any UK area. See listing events (new instructions, price reductions, sales agreed) filtered by property type and area. When you spot something worth pursuing, reveal the full address for your outreach.
Search free · reveals 20 tokens from your shared token balance
Explore and API: one token balance pays for both, 100 tokens = £1. Use both together or just one.
- Filter by price reductions, long DOM, new instructions, spot motivated sellers instantly
- Reveal the full address + UPRN for 20 tokens, ready for direct contact or letter drop
- Reveal event details (reduction amount, original price, days on market) for 20 tokens
- Powered by 30 years of Home.co.uk data
Try Explore → · See how Explore works
What tokens get you
Pricing
Sourcing Package pricing
Transparent token weights: most property data costs 1 token, address find is 2 tokens, retrieve is 5 tokens. Know your costs before you write a line of code. Pay as you go with one-off top-ups of any amount from £20, or add tokens every month. A monthly subscription earns up to 75% bonus tokens: change the amount or stop any time.
Pay as you go
100 tokens = £1Every endpoint · First top-up matched 100%
- Address lookup (find 2 tokens, retrieve 5)
- Property records
- Build and test locally
Monthly
£250 a month30,000 tokens a month
+20% bonus tokens · Every endpoint
- Same full endpoint access as every account
- Comparable sales
- Price distributions + trends
- Agent market stats
- 30,000 tokens a month · unused tokens roll over
Monthly
£500 a month67,500 tokens a month
+35% bonus tokens · Every endpoint
- Same full endpoint access as every account
- Planning applications
- Risk & environment data
- Development plays included
What property data does Homedata provide for property sourcers?
The Sourcing Package gives you comparable sales, price distributions, price trends, agent market stats, and full property records: everything needed to identify undervalued properties, run BMV screens, and evaluate potential deals. Live market inventory and the listing-event chain (Added, Reduced, Withdrawn, Sold STC, Re-listed) sit outside the self-serve package: browse them in Explore, or contact us to arrange enterprise access.
How much does the property sourcing API package cost?
The Sourcing Package is pay as you go: 100 tokens = £1, most calls 1 token. Your first top-up is matched 100%: enough to build, test and evaluate the data. No contracts, cancel anytime. Every account reaches every self-serve endpoint: you only pay for what you call, in tokens. For development plays needing heavy planning-data volume, a monthly subscription of £500 earns 35% bonus tokens.
Can I identify below-market-value properties with this API?
Yes. The comparables endpoint returns up to 200 recent sales within 0.5 miles, sorted by similarity and proximity. Compare against price_distributions for the outcode to quantify the discount. Check price_trends for direction. Three calls to build a complete BMV score.
Is planning application data included?
Yes: for every account. Planning application history by postcode and radius is available throughout; a monthly subscription simply earns bonus tokens to run it at scale. Identify development opportunities before they go to market, check permitted development constraints, and screen for consent status.
Start building today.
Pay as you go, 100 tokens = £1, first top-up matched. Get your key and test with real data.