Concepts
Crosswalks
A crosswalk connects one set of areas to another: the wards inside a council, or the 2024 constituency that replaced a 2010 one. Whenever the API moves between geographies, it does it through a crosswalk you can see and name.
Three kinds
| Kind | What it says | Example |
|---|---|---|
| Clean containment | Each area sits wholly inside exactly one larger area. | Wards within local authorities |
| Historical lookup | Which new areas replaced which old ones, as published by the official source. | 2010 constituencies to 2024 constituencies |
| Area overlap | How much areas that don't nest overlap each other, with weights that add up to 1. | Constituencies and local authorities |
Every crosswalk is checked before it's published. Containment must give each area exactly one parent, and overlap weights must add up. Get checks for a crosswalk shows the results.
What they're used for
- Finding an area's parents and children.
- Translating a code from one geography or year to another.
- Converting data onto different areas, such as ward counts up to councils.
- Listing the areas inside a named location.
The API never picks a crosswalk for you when it matters. When you convert data, you name the crosswalk, and the response repeats how it was made.
Translating a code
Here's a ward translated into the local authority it belongs to. purpose=membership asks for containment:
curl "https://api.ukdataatlas.com/v1/translations?from=ward/2024-12-uk-bgc&code=E05000932&to=localAuthority/2024-12-uk-bgc&purpose=membership"{
"apiVersion": "v1",
"atlasRelease": "sha256:5c4aa4529cbfbd5e4c844c55cddba1ef04a7bf76f3eaa085a357fff401af6d0c",
"data": {
"source": {
"geography": "ward",
"boundaryRelease": "2024-12-uk-bgc",
"code": "E05000932"
},
"target": {
"geography": "localAuthority",
"boundaryRelease": "2024-12-uk-bgc"
},
"purpose": "membership",
"paths": [
{
"id": "ward-2024-12-uk-bgc-to-local-authority-2024-12-uk-bgc-clean-containment/forward/membership",
"purpose": "membership",
"from": {
"geography": "ward",
"boundaryRelease": "2024-12-uk-bgc"
},
"to": {
"geography": "localAuthority",
"boundaryRelease": "2024-12-uk-bgc"
},
"quality": "publisher-supplied",
"origin": "crosswalk",
"steps": [
{
"crosswalkId": "ward-2024-12-uk-bgc-to-local-authority-2024-12-uk-bgc-clean-containment",
"direction": "forward",
"method": "clean-containment",
"purpose": "membership"
}
]
}
],
"matches": [
{
"crosswalk": {
"id": "ward-2024-12-uk-bgc-to-local-authority-2024-12-uk-bgc-clean-containment",
"method": "clean-containment",
"quality": "publisher-supplied",
"weighting": {
"status": "not-applicable"
},
"provenance": {
"input": "boundaries/ward/2024-12-uk-bgc/Wards_December_2024_Boundaries_UK_BGC_-2654605954884295357.geojson",
"inputHash": "sha256:8d74542cadd4da4801c5ed0f6db1a3eb4437327cdd7b77030c4fbcf01e0d9177"
},
"direction": "forward"
},
"source": {
"code": "E05000932",
"labels": [
"Ainsdale"
]
},
"targets": [
{
"code": "E08000014",
"labels": [
"Sefton"
]
}
]
}
]
},
"meta": {
"nextCursor": null
}
}Useful endpoints
get/crosswalksList crosswalksget/translationsTranslate an area codeget/areas/{geography}/{release}/{code}/relationshipsGet an area's relationships