UK ADDRESS VALIDATION · ROYAL MAIL PAF
33.9 million UK delivery points, signed directly with Royal Mail. UDPRN, UPRN, and point coordinates included free with every lookup. Welsh addresses and British Forces Post Office (BFPO) addresses covered.
Paste any UK address — single-line or multi-line. We'll standardise it, snap to the point coordinate, and return UDPRN + UPRN.
Examples — 10 Downing Street, SW1A 2AA · 1 New Cathedral St, Manchester M1 1AD · Edinburgh Castle, EH1 2NG
33.9M live delivery points. Licensed directly with Royal Mail — no third-party reseller markup.
Latitude + longitude for the delivery point itself — not the postcode centroid. Where no address-level point exists we return the postcode-unit centroid and label it: accuracy_type is rooftop or postcode on every response, so you never have to guess.
Royal Mail's Unique Delivery Point Reference Number — the canonical identifier for delivery routing.
The Ordnance Survey Unique Property Reference Number, joined from OS Open UPRN — the cross-government property identifier.
Caerdydd / Cardiff, Abertawe / Swansea — Welsh-language aliases resolve to the same canonical address.
British Forces Post Office addresses covered alongside civilian deliveries — same endpoint, same credit cost.
The traditional county (Middlesex, Lancashire) and the administrative one (Westminster, Manchester). Plenty of postcodes have no traditional county at all — there the administrative one is the only answer there is.
Every UPRN ships with uprn_match_m — the measured distance between Royal Mail's delivery point and the Ordnance Survey property coordinate. 90.3% land within 5 m. You can see how good the link is instead of taking it on trust.
Same /validate endpoint and the same request shape as our 240-country API, with country: "gbr". UK addresses are served from paf.acuris-geo.com, our dedicated Royal Mail PAF host. The response carries the UK-specific extras alongside the standard validation shape.
curl -X POST 'https://paf.acuris-geo.com/validate' \ -H 'X-Acuris-Key: YOUR_KEY' \ -H 'Content-Type: application/json' \ -d '{"input":"10 Downing Street, London, SW1A 2AA","country":"gbr"}'
{
"standardized": {
"street": "DOWNING STREET",
"house_number": "10",
"city": "LONDON",
"county": "MIDDLESEX",
"administrative_county": "WESTMINSTER",
"postcode": "SW1A 2AA",
"country": "gbr",
"formatted_address": "10 DOWNING STREET\nLONDON\nSW1A 2AA\nUNITED KINGDOM",
"udprn": "23747771",
"uprn": "100023336956",
"uprn_match_m": 0.0
},
"lat": 51.503541,
"lng": -0.12767,
"accuracy_type": "rooftop",
"match_type": "rooftop",
"confidence_level": "medium",
"input_corrected": true,
"status": "verified"
}
34.8% of UK delivery points sit in a dependent locality — a village below the post town — and 0.6% carry a second tier below that. Royal Mail prints it between the street and the post town, and so do we. Type Hayden and you get Hayden back, not just Cheltenham:
{
"standardized": {
"street": "HAYDEN LANE",
"house_number": "10",
"dependent_locality": "HAYDEN",
"city": "CHELTENHAM",
"county": "GLOUCESTERSHIRE",
"postcode": "GL51 0SP",
"formatted_address": "10 HAYDEN LANE\nHAYDEN\nCHELTENHAM\nGL51 0SP\nUNITED KINGDOM",
"uprn": "200004323188",
"uprn_match_m": 1.17
},
"accuracy_type": "rooftop",
"deliverable": true
}
A dependent thoroughfare behaves the same way: 18 Latium Close, St Albans returns dependent_street LATIUM CLOSE with street HOLYWELL HILL as its parent road — 541,018 UK delivery points.
Honesty about scope:
jey, ggy, imn) on the global API, not the UK product.Free API key in under a minute. Registered accounts get up to 40 UK Royal Mail PAF lookups a day, resetting at midnight UTC — enough for a checkout integration smoke test or a small CSV cleanse. Royal Mail licenses UK data per click, which is why UK has its own daily figure rather than the 3,000 a day that non-UK validation and geocoding get.
Tell us what's working or what's missing. Sent anonymously unless you're signed in.
Your feedback went straight to the team.