- Home
- API
- UK PostCode API
- UPRN lookup API: free guide fo ...

Every UK address has a postcode. But postcodes are shared between multiple properties, sometimes covering an entire street or building. If you’re building anything that needs to identify a specific property—whether it’s a property risk platform, delivery system, or planning tracker—you need something more precise: a UPRN.
The challenge is that most UPRN APIs either cost money, require licensing agreements, or provide minimal data with no useful context. In this guide, you’ll learn exactly what a UPRN is, how to look it up for free, and how to enrich it with the data your application actually needs.
What is a UPRN?
UPRN stands for Unique Property Reference Number. It is issued by Ordnance Survey and represents a persistent 12-digit identifier assigned to every addressable location in Great Britain.
Unlike postcodes, which are shared across multiple properties, a UPRN is unique to a single building or location. Even if a postcode changes or a building is renumbered, the UPRN remains the same.
As of April 2024, there are over 42 million UPRNs available in the OS Open UPRN dataset. These cover residential properties, commercial buildings, land parcels, and infrastructure.
There are also related identifiers you may encounter:
- UDPRN: Issued by Royal Mail, used for delivery points (not freely available)
- USRN: Identifies streets rather than properties
- TOID: Represents topographic features in OS datasets
Quick reference
| Identifier | Issued by | What it references | Freely available |
|---|---|---|---|
| UPRN | Ordnance Survey | Single addressable property | Yes |
| UDPRN | Royal Mail | PAF delivery point | No |
| USRN | OS | Street | Yes |
| TOID | OS | Topographic feature | Partial |
Why UPRNs matter for developers
UPRNs are essential if you’re building applications that depend on accurate property-level data.
Property risk
Insurance platforms and PropTech tools rely on precise location data. A postcode might cover 10–20 homes, but flood risk can vary significantly between properties. UPRNs act as the join key between an address and datasets like flood risk.
Delivery and logistics
Address inconsistencies are common (“Flat 1, 14 High Street” vs “14A High Street Flat 1”). These variations resolve to the same UPRN. Using UPRNs eliminates duplication and reduces failed deliveries.
Planning and compliance
Planning applications, EPC records, and listed building data are all linked to UPRNs. For GovTech or property platforms, UPRNs serve as the backbone of data integration.
How to look up a UPRN for free
There are three main ways to access UPRN data, depending on your use case.
Method 1: OS Open UPRN bulk dataset
This is the official dataset from Ordnance Survey.
- Source: OS Open UPRN (updated quarterly)
- Licence: Open Government Licence v3 (free with attribution)
- Format: CSV
- Size: ~6GB uncompressed
It contains:
- UPRN
- Coordinates (X/Y, latitude, longitude)
Example:
curl -O https://api.os.uk/downloads/v1/products/OpenUPRN/downloads?area=GB&format=CSV&redirect
head -5 osopenuprn_202404.csvUse Case: High-scale systems with their own database
Limitation: No address, postcode, or enrichment
Method 2: Postcodes.io
A simple and free API for postcode data.
Example (Node.js):
const res = await fetch('https://api.postcodes.io/postcodes/SW1A2AA');
const data = await res.json();
console.log(data.result.latitude, data.result.longitude);Use case: Prototyping and basic geo lookups
Limitation:
- Does NOT return UPRN
- No enrichment
- Postcode-level only
Method 3: APITier Address API (recommended)
This method provides the most complete dataset in a single call.
https://www.apitier.com
https://docs.apitier.com
Returns:
- UPRN
- Full address
- Postcode
- LSOA, LAD
- Flood risk
- Deprivation index
Free tier: 500 requests/month
Python example:
import requests
API_KEY = "your_api_key_here"
postcode = "SW1A 2AA"
response = requests.get(
f"https://postcode.apitier.com/v1/postcodes/{postcode}",
params={"x-api-key": API_KEY}
)
data = response.json()
for addr in data.get("addresses", []):
print(addr["uprn"], addr["formatted_address"])
Node.js example:
const axios = require('axios');
const API_KEY = 'your_api_key_here';
const postcode = 'SW1A 2AA';
axios.get(`https://postcode.apitier.com/v1/postcodes/${postcode}`, {
params: { 'x-api-key': API_KEY }
}).then(res => console.log(res.data));cURL:
curl "https://postcode.apitier.com/v1/postcodes/SW1A2AA?x-api-key=your_api_key_here"Use case: Real-world applications needing enriched data
Reverse UPRN lookup (UPRN → address)
Sometimes you already have a UPRN and need the address.
uprn = "100023336956"
response = requests.get(
f"https://postcode.apitier.com/v1/udprn/{uprn}",
params={"x-api-key": API_KEY}
)
print(response.json())OS dataset only gives coordinates
APIs are required for full address resolution
UPRN in production: key considerations
1. Leading zeros
Always store UPRNs as 12-digit strings:
uprn = str(uprn).zfill(12)2. UPRN vs UDPRN
These are different identifiers. They cannot be used interchangeably.
3. Deleted UPRNs
Some UPRNs become inactive. Handle missing data gracefully.
4. Multiple UPRNs per property
A building may split into multiple units, each with its own UPRN.
What data can you enrich with UPRN?
Once you have a UPRN, it becomes a powerful join key.
| Dataset | What it adds |
|---|---|
| Flood Risk | Flood Risk band |
| IMD | Deprivation score |
| ONSPD | Area codes |
| Land Registry | Sale data |
| EPC | Energy rating |
This is where UPRNs become truly valuable.
Frequently asked questions
Is OS Open UPRN free for commercial use?
Yes. It is available under the Open Government Licence v3 with attribution.
How often is it updated?
Quarterly (January, April, July, October).
Does it include Northern Ireland?
No. It covers England, Scotland, and Wales only.
Is UPRN personal data?
No. UPRNs identify properties, not people.
Conclusion
UPRNs are one of the most powerful yet underused identifiers in UK property data. They allow you to connect multiple datasets—flood risk, deprivation, planning, and more—at the property level.
Getting a UPRN is free. The real value comes from enriching it with additional datasets.
The APITier address API provides UPRN, address details, flood risk, and deprivation data in a single call—making it easier to build accurate and scalable applications.
👉 Try the free tier → https://docs.apitier.com/


