Replacing getAddress.io? Free drop-in replacement →
GET /api/address/find/ GET /api/address/postcode/{postcode}/ find: 2 calls · retrieve: 5 calls

Any UK Address to UPRN and Full Property Data — in One Call

Instant UK address autocomplete and postcode search. 36.6 million addresses powered by Elasticsearch — sub-50ms typeahead that works in form fields, checkout flows, and property search UIs. Every result returns a UPRN for downstream enrichment. Address find and postcode cost 2 calls each, retrieve costs 5 calls — transparent call weights that reflect real licensing costs.

Address find and postcode lookup cost 2 calls each. Retrieve costs 5 calls (Royal Mail PAF licensing). A typical find-then-retrieve workflow costs 7 calls. See call weights →

Two endpoints. One goal.

Use find for typeahead autocomplete (user types, suggestions appear). Use postcode to list all addresses at a postcode (user selects from a dropdown). Both cost 2 calls each — reflecting search licensing costs.

GET /api/address/find/ — autocomplete

Request — no API key needed
curl -G "https://api.homedata.co.uk/api/address/find/" \
  --data-urlencode "q=10 Downing Street"
Response 200 OK
{
  "suggestions": [
    {
      "uprn": 100023336956,
      "address": "10 DOWNING STREET, LONDON, SW1A 2AA",
      "postcode": "SW1A 2AA",
      "town": "LONDON"
    }
  ],
  "count": 1
}

GET /api/address/postcode/{postcode}/ — postcode lookup

Request — no API key needed
curl "https://api.homedata.co.uk/api/address/postcode/SW1A2AA/"
Response 200 OK (truncated)
{
  "postcode": "SW1A 2AA",
  "count": 7,
  "addresses": [
    {
      "uprn": 100023336956,
      "address": "10 DOWNING STREET, LONDON",
      "building_number": "10",
      "street": "DOWNING STREET",
      "town": "LONDON"
    }
  ]
}
36.6M
UK addresses indexed
<50ms
Typeahead response
2 / 5
Find: 2 calls · Retrieve: 5
UPRN
On every result

How address billing works

We follow the same model as Loqate and Stripe: search is lightweight, retrieve is where the value is. Address find costs 2 calls and doesn't require authentication — your autocomplete works before users even sign up. When the user selects an address and you call retrieve to get the enriched property data, that costs 5 calls — reflecting the Royal Mail PAF and OS licensing behind every response.

The UPRN returned in every search result is the key that unlocks everything else: EPC rating, floor area, flood risk, solar potential, price history, and 40+ more data points. All of those are billed retrieve calls.

This is the same model as Stripe (publishable key for checkout, secret key for charges) or Mapbox (free tiles, paid geocoding). Start free. Pay when you need data.

Who uses address lookup

Address autocomplete is the front door — the first API call in every integration.

📝 Checkout & registration forms

Replace manual address entry with typeahead autocomplete. User types "10 Down…" and selects their full address from a dropdown. Reduce form abandonment, eliminate typos, and get a verified UPRN for every submission.

input → /find/?q=... → select → populate form fields

🏠 Property search portals

Build a "search by address" bar with instant results. Each suggestion includes the UPRN — use it to pull property details, photos, pricing, and risk data from the retrieve and enrichment endpoints.

search bar → /find/?q=... → select → /retrieve/{uprn}/

📬 Postcode dropdown selectors

Classic "enter postcode, pick your address" pattern. The postcode endpoint returns all addresses at a postcode with building name, number, and street — ready for a <select> dropdown without any data transformation.

postcode input → /postcode/{code}/ → dropdown → selected UPRN

🔧 Data enrichment pipelines

Resolve address strings to UPRNs in batch. Take a CSV of addresses, run each through /find/, capture the UPRN, then enrich via /retrieve/ with property type, EPC, floor area, and sold prices. No manual matching.

csv addresses → /find/ → UPRNs → /retrieve/?level=property

How we compare

Address lookup is just the starting point. What happens after the user selects an address is where we're different.

Address autocomplete only
  • ✓ Address search
  • ✓ Postcode lookup
  • ✗ No UPRN
  • ✗ No property data
  • ✗ No EPC / price / risk
getAddress, Postcodes.io
Homedata
  • ✓ Address search (2 calls)
  • ✓ Postcode lookup (2 calls)
  • UPRN on every result
  • 40+ property fields via retrieve
  • EPC, risk, solar, sold prices
Address + property intelligence
Enterprise PAF/UPRN
  • ✓ Address search
  • ✓ UPRN
  • ✓ Geocoding
  • ✗ No property data
  • ✗ £5k+/year licence
Loqate, Ordnance Survey

Practical patterns

Common integration patterns — all start with a lightweight address search (2 calls).

Debounced typeahead in JavaScript

Standard pattern for a form input with autocomplete suggestions. Debounce at 200ms to avoid hammering the API on every keystroke.

let timer;
document.getElementById('address-input').addEventListener('input', (e) => {
  clearTimeout(timer);
  timer = setTimeout(async () => {
    if (e.target.value.length < 2) return;
    const res = await fetch(
      `https://api.homedata.co.uk/api/address/find/?q=${encodeURIComponent(e.target.value)}`
    );
    const { suggestions } = await res.json();
    // Render suggestions as dropdown items
    // On select: store suggestion.uprn for enrichment
  }, 200);
});

Address → EPC → flood risk in three calls

Complete property intelligence from a single address search. All three calls take under 500ms combined.

# 1. Find address (2 calls)
curl -G "https://api.homedata.co.uk/api/address/find/" --data-urlencode "q=10 Downing Street"
# → uprn: 100023336956

# 2. Get EPC (API key required)
curl "https://api.homedata.co.uk/api/epc-checker/100023336956/" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 3. Get flood risk (API key required)
curl -G "https://api.homedata.co.uk/api/risks/flood/" \
  --data-urlencode "uprn=100023336956" \
  -H "Authorization: Api-Key YOUR_API_KEY"

Or just embed it

Don't want to build the autocomplete UI yourself? Use our pre-built address widget — one script tag, zero dependencies, works on any website. Configurable field mapping, custom styling, and callbacks for form integration.

Start with a free API call

Address search needs no API key. Try it right now in your terminal. When you need property data, sign up for a free key — 100 enrichment requests/month, no credit card.

curl "https://api.homedata.co.uk/api/address/find/?q=10+Downing+Street"