National Statistics Postcode Lookup UK
This dataset contains the National Statistics Postcode Lookup (NSPL) for the United Kingdom. The NSPL relates current postcodes to a range of current statutory administrative, electoral, health and other statistical geographies via ‘-fit’ allocation from the 2021 Census output areas. It supports the production of area based statistics from postcoded data. The NSPL is produced by ONS Geography, which provides geographic support to the Office for National Statistics (ONS) and geographic services used by other organisations.
Trust score
How is this computed?Composite of 5 axes from our methodology (proof-based officialness, live verification, metadata completeness, license clarity, agent readiness).
- Officialnessweight 25%50/100
Not public-sector → neutral score; not subject to the proof checker.
- Availabilityweight 25%100/100
Latest verification succeeded.
- Metadata completenessweight 20%40/100
4 of 10 recommended metadata fields populated.
- License clarityweight 15%50/100
License info not yet tracked for APIs (datasets only).
- Agent readinessweight 15%20/100
Spec format known (rest) · Topic tags assigned
Data schema (41 fields)
| Field | Type | Description |
|---|---|---|
| :id | text | — |
| :version | text | — |
| :created_at | datetime | — |
| :updated_at | datetime | — |
| postcode_1 | text | — |
| postcode_2 | text | — |
| postcode_3 | text | — |
| date_introduced | text | — |
| user_type | text | — |
| easting | text | — |
| northing | text | — |
| positional_quality | text | — |
| county_code | text | — |
| county_name | text | — |
| local_authority_code | text | — |
| local_authority_name | text | — |
| ward_code | text | — |
| ward_name | text | — |
| country_code | text | — |
| country_name | text | — |
| region_code | text | — |
| region_name | text | — |
| parliamentary_constituency_code | text | — |
| parliamentary_constituency_name | text | — |
| european_electoral_region_code | text | — |
| european_electoral_region_name | text | — |
| primary_care_trust_code | text | — |
| primary_care_trust_name | text | — |
| lsoa_code | text | — |
| lower_super_output_area | text | — |
| msoa_code | text | — |
| middle_super_output_area | text | — |
| output_area_classification_code | text | — |
| output_area_classification_name | text | — |
| longitude | text | — |
| latitude | text | — |
| spatial_accuracy | text | — |
| last_uploaded | datetime | — |
| socrata_id | text | — |
| :@computed_region_6i9a_26nj | text | — |
| :@computed_region_hxwp_gyfc | text | — |
Schema inferred from the distribution file's first records 2 days ago. Column types are sampled estimates, not source-declared.
Query the data
Pick columns and a sort, then fetch a live preview straight from the source.
Sample data (5 records)
Record 1:id: row-uy6a-75j6_bry2 · easting: —
{
":id": "row-uy6a-75j6_bry2",
"easting": null,
":version": "rv-9da5.7r7x.9wac",
"latitude": "100",
"northing": null,
"longitude": "0",
"lsoa_code": null,
"msoa_code": null,
"user_type": "1",
"ward_code": null,
"ward_name": null,
"postcode_1": "AB559AA",
"postcode_2": "AB55 9AA",
"postcode_3": "AB55 9AA",
"socrata_id": "16753",
":created_at": "2026-06-22T08:32:19.856Z",
":updated_at": "2026-06-22T08:38:27.097Z",
"county_code": null,
"county_name": null,
"region_code": null,
"region_name": null,
"country_code": null,
"country_name": null,
"last_uploaded": "2026-06-22T08:18:04.000",
"date_introduced": "201906",
"spatial_accuracy": "Postcode Level",
"positional_quality": "9",
"local_authority_code": null,
"local_authority_name": null,
"lower_super_output_area": null,
"primary_care_trust_code": "obsolete",
"primary_care_trust_name": "obsolete",
"middle_super_output_area": null,
":@computed_region_6i9a_26nj": null,
":@computed_region_hxwp_gyfc": null,
"european_electoral_region_code": "obsolete",
"european_electoral_region_name": "obsolete",
"output_area_classification_code": null,
"output_area_classification_name": null,
"parliamentary_constituency_code": null,
"parliamentary_constituency_name": null
}Record 2:id: row-vr9v.adiu.qupg · easting: 512145
{
":id": "row-vr9v.adiu.qupg",
"easting": "512145",
":version": "rv-e3kd_jwip_gvdg",
"latitude": "51.706436",
"northing": "202099",
"longitude": "-0.378405",
"lsoa_code": "E01023732",
"msoa_code": "E02004943",
"user_type": "0",
"ward_code": "E05013965",
"ward_name": "St Stephen",
"postcode_1": "AL2 3UF",
"postcode_2": "AL2 3UF",
"postcode_3": "AL2 3UF",
"socrata_id": "20103",
":created_at": "2026-06-22T08:32:19.856Z",
":updated_at": "2026-06-22T08:38:31.500Z",
"county_code": "E10000015",
"county_name": "Hertfordshire",
"region_code": "E12000006",
"region_name": "East of England",
"country_code": "E92000001",
"country_name": "England",
"last_uploaded": "2026-06-22T08:18:04.000",
"date_introduced": "199301",
"spatial_accuracy": "Postcode Level",
"positional_quality": "1",
"local_authority_code": "E07000240",
"local_authority_name": "St Albans",
"lower_super_output_area": "St Albans 020D",
"primary_care_trust_code": "obsolete",
"primary_care_trust_name": "obsolete",
"middle_super_output_area": "St Albans 020",
":@computed_region_6i9a_26nj": null,
":@computed_region_hxwp_gyfc": null,
"european_electoral_region_code": "obsolete",
"european_electoral_region_name": "obsolete",
"output_area_classification_code": "5B1",
"output_area_classification_name": "Urbanites;Ageing urban living;Delayed retirement",
"parliamentary_constituency_code": "E14001507",
"parliamentary_constituency_name": "St Albans"
}Record 3:id: row-ecek-zzgx.2t78 · easting: 403033
{
":id": "row-ecek-zzgx.2t78",
"easting": "403033",
":version": "rv-9qg9.7j8w.8r88",
"latitude": "52.54067",
"northing": "293645",
"longitude": "-1.956706",
"lsoa_code": "E01010014",
"msoa_code": "E02002054",
"user_type": "0",
"ward_code": "E05001271",
"ward_name": "Newton",
"postcode_1": "B43 5DU",
"postcode_2": "B43 5DU",
"postcode_3": "B43 5DU",
"socrata_id": "42627",
":created_at": "2026-06-22T08:32:19.856Z",
":updated_at": "2026-06-22T08:38:36.132Z",
"county_code": "E11000005",
"county_name": "West Midlands",
"region_code": "E12000005",
"region_name": "West Midlands",
"country_code": "E92000001",
"country_name": "England",
"last_uploaded": "2026-06-22T08:18:07.000",
"date_introduced": "198001",
"spatial_accuracy": "Postcode Level",
"positional_quality": "1",
"local_authority_code": "E08000028",
"local_authority_name": "Sandwell",
"lower_super_output_area": "Sandwell 012D",
"primary_care_trust_code": "obsolete",
"primary_care_trust_name": "obsolete",
"middle_super_output_area": "Sandwell 012",
":@computed_region_6i9a_26nj": null,
":@computed_region_hxwp_gyfc": null,
"european_electoral_region_code": "obsolete",
"european_electoral_region_name": "obsolete",
"output_area_classification_code": "5B1",
"output_area_classification_name": "Urbanites;Ageing urban living;Delayed retirement",
"parliamentary_constituency_code": "E14001574",
"parliamentary_constituency_name": "West Bromwich"
}Record 4:id: row-tz6q~r6i3-9m4s · easting: 393178
{
":id": "row-tz6q~r6i3-9m4s",
"easting": "393178",
":version": "rv-b76f.d2c6-3rvi",
"latitude": "52.30369",
"northing": "267289",
"longitude": "-2.101464",
"lsoa_code": "E01034326",
"msoa_code": "E02006748",
"user_type": "0",
"ward_code": "E05015446",
"ward_name": "Dodderhill",
"postcode_1": "B61 7EP",
"postcode_2": "B61 7EP",
"postcode_3": "B61 7EP",
"socrata_id": "48036",
":created_at": "2026-06-22T08:32:19.856Z",
":updated_at": "2026-06-22T08:38:36.132Z",
"county_code": "E10000034",
"county_name": "Worcestershire",
"region_code": "E12000005",
"region_name": "West Midlands",
"country_code": "E92000001",
"country_name": "England",
"last_uploaded": "2026-06-22T08:18:07.000",
"date_introduced": "198001",
"spatial_accuracy": "Postcode Level",
"positional_quality": "1",
"local_authority_code": "E07000238",
"local_authority_name": "Wychavon",
"lower_super_output_area": "Wychavon 001F",
"primary_care_trust_code": "obsolete",
"primary_care_trust_name": "obsolete",
"middle_super_output_area": "Wychavon 001",
":@computed_region_6i9a_26nj": null,
":@computed_region_hxwp_gyfc": null,
"european_electoral_region_code": "obsolete",
"european_electoral_region_name": "obsolete",
"output_area_classification_code": "1B1",
"output_area_classification_name": "Rural residents;Rural tenants;Rural life",
"parliamentary_constituency_code": "E14001441",
"parliamentary_constituency_name": "Redditch"
}Record 5:id: row-9vwe_mbh4.4cqa · easting: 399031
{
":id": "row-9vwe_mbh4.4cqa",
"easting": "399031",
":version": "rv-t82v.v2xp-pbwv",
"latitude": "52.454266",
"northing": "284033",
"longitude": "-2.015681",
"lsoa_code": "E01009802",
"msoa_code": "E02002035",
"user_type": "0",
"ward_code": "E05015912",
"ward_name": "Halesowen South",
"postcode_1": "B62 0DU",
"postcode_2": "B62 0DU",
"postcode_3": "B62 0DU",
"socrata_id": "48503",
":created_at": "2026-06-22T08:32:19.856Z",
":updated_at": "2026-06-22T08:38:36.132Z",
"county_code": "E11000005",
"county_name": "West Midlands",
"region_code": "E12000005",
"region_name": "West Midlands",
"country_code": "E92000001",
"country_name": "England",
"last_uploaded": "2026-06-22T08:18:07.000",
"date_introduced": "198001",
"spatial_accuracy": "Postcode Level",
"positional_quality": "1",
"local_authority_code": "E08000027",
"local_authority_name": "Dudley",
"lower_super_output_area": "Dudley 036B",
"primary_care_trust_code": "obsolete",
"primary_care_trust_name": "obsolete",
"middle_super_output_area": "Dudley 036",
":@computed_region_6i9a_26nj": null,
":@computed_region_hxwp_gyfc": null,
"european_electoral_region_code": "obsolete",
"european_electoral_region_name": "obsolete",
"output_area_classification_code": "6B1",
"output_area_classification_name": "Suburbanites;Semi-detached suburbia;Multi-ethnic suburbia",
"parliamentary_constituency_code": "E14001261",
"parliamentary_constituency_name": "Halesowen"
}Live sample captured at profiling time — values may have changed upstream.
Verification Status
Using the API
Configuration
- Base URL
- https://opendata.camden.gov.uk
- Format
- rest
Query examples
curl -sL 'https://opendata.camden.gov.uk/api/v3/views/tr8t-gqz7/query.geojson?accessType=DOWNLOAD' -o data.geojsonFull geojson file download — the schema shown was inferred from the file's first records.