Local elections datasets
Published by
Covers
Years
Areas
Measures
Each measure is one kind of value you can request, using its id.
| Measure | Unit | Combining areas |
|---|---|---|
Local election effective voteslocal-election-effective-votes | votes | Adds up |
Local election turnoutlocal-election-turnout | percent | Not combined |
Local election votes for Conservativelocal-election-con-votes | votes | Adds up |
Local election votes for Greenlocal-election-green-votes | votes | Adds up |
Local election votes for Independentlocal-election-ind-votes | votes | Adds up |
Local election votes for Labourlocal-election-lab-votes | votes | Adds up |
Local election votes for Liberal Democratlocal-election-ld-votes | votes | Adds up |
Local election votes for Other candidateslocal-election-other-votes | votes | Adds up |
Local election votes for Plaid Cymrulocal-election-pc-votes | votes | Adds up |
Local election votes for Reformlocal-election-ref-votes | votes | Adds up |
Local election votes for UKIPlocal-election-ukip-votes | votes | Adds up |
Local election winning partylocal-election-winning-party | party | Not combined |
“Adds up” means you can total it over areas or convert it to other areas. See Measures and periods for why some can't be combined.
Areas and years
Request each of these with its geography and code year as geography and boundaryYear.
| Areas | Code year | Periods | Covers | Records |
|---|---|---|---|---|
| Wards | 2016 | 2016 | England and Wales | 2,210 |
| Wards | 2017 | 2017 | England and Wales | 1,392 |
| Wards | 2018 | 2018 | England | 2,748 |
| Wards | 2019 | 2019 | England | 5,273 |
| Wards | 2021 | 2021 | England | 2,497 |
| Wards | 2022 | 2022 | England and Wales | 3,531 |
| Wards | 2023 | 2023 | England | 4,792 |
| Wards | 2024 | 2024 | England | 1,903 |
| Wards | 2025 | 2025 | England | 513 |
Things to know
- The sum across parties of each party's highest-polling candidate's votes in each ward, the House of Commons Library's basis for vote share in multi-member wards, applied to every polling year. It is not a count of ballot papers, and not every candidate's votes added up.
- 3981 source rows with county-electoral-division codes is excluded from this ward measure. Historical county-electoral-division boundary vintages are not yet published by the API.
- Turnout is a percentage of the electorate, so it does not add across areas. A combined turnout needs the summed electorate as its denominator.
- The Local Elections Archive Project files for 2016–2019 do not publish electorate or turnout, so those polling years are deliberately absent rather than represented as zero turnout.
- Votes for Conservative. An area where the party did not stand is recorded as zero votes; this is a count, not a vote share.
- Only the party's highest-polling candidate in a ward counts, so a party fielding several candidates in a multi-member ward is counted once. Independents are counted the same way, and every other party or group as its own party within Other candidates.
Show 10 moreShow fewer
- Votes for Green. An area where the party did not stand is recorded as zero votes; this is a count, not a vote share.
- Votes for Independent. An area where the party did not stand is recorded as zero votes; this is a count, not a vote share.
- Votes for Labour. An area where the party did not stand is recorded as zero votes; this is a count, not a vote share.
- Votes for Liberal Democrat. An area where the party did not stand is recorded as zero votes; this is a count, not a vote share.
- Votes for Other candidates. An area where the party did not stand is recorded as zero votes; this is a count, not a vote share.
- Votes for Plaid Cymru. An area where the party did not stand is recorded as zero votes; this is a count, not a vote share.
- Votes for Reform. An area where the party did not stand is recorded as zero votes; this is a count, not a vote share.
- Votes for UKIP. An area where the party did not stand is recorded as zero votes; this is a count, not a vote share.
- The label records the party that won the source area. It is not a numeric score, and a group of areas can have a distribution of winners rather than one additive outcome.
- A winning-party label has no numeric order and cannot be summed, averaged, ranked or converted across areas.
Corrections and improvements
These reviewed changes apply to what the API serves for this data. The publisher's source files are not changed; when a code correction applies, the served record retains the publisher's code as sourceAreaCode.
| Change | What the API serves | Applies when |
|---|---|---|
| Historical local-election ward-code repairs | The API serves 12 same-extent wards on the polling-year code and retains the LEAP code as sourceAreaCode; all values and winning-party labels are unchanged. | GET /v1/data/local-election-{measure}?period={period}&geography=ward&boundaryYear={boundaryYear} |
| Opt-in canonical measure-unit presentation | On the explicit canonical request, each numeric value and any publisher-supplied interval bound is multiplied by the measure's declared scale; the response names the resulting unit and calculation. | GET /v1/data/{measure-id}?units=canonical |
curl "https://api.ukdataatlas.com/v1/corrections?measure=local-election-effective-votes"/correctionsList reviewed correctionsRequest it
Get the first page of local-election-effective-votes for wards:
curl "https://api.ukdataatlas.com/v1/data/local-election-effective-votes?period=2016&geography=ward&boundaryYear=2016&limit=5"Read the measure's full definition, including every period it's published for:
curl "https://api.ukdataatlas.com/v1/measures/local-election-effective-votes"/data/{measure-id}Get observationsget/data/{measure-id}/seriesGet a time seriesSource and licence
| Dataset | Publisher | Licence |
|---|---|---|
| Local Election Results | House of Commons Library (2021–2025); Local Elections Archive Project (2016–2019) | Open Parliament Licence (2021–2025); CC BY-SA 3.0 (2016–2019) |
Using this data in something you publish? Get attribution text with measure=local-election-effective-votes returns the credit line to include.
Downloads
Download complete publisher-observation files instead of paging through the API. Each file has a stable hash and covers one measure, period set and source geography. Any reviewed served code correction is documented and retains its publisher code on the affected record. The source and licence information above applies to these files too; preserve the attribution and note any cleaning or reformatting when you redistribute one.
| Measure | Coverage | Records | Download |
|---|---|---|---|
Local election votes for Conservativelocal-election-con-votes | Wards · 2016 · code year 2016 | 2,210 | JSON |
Local election votes for Conservativelocal-election-con-votes | Wards · 2017 · code year 2017 | 1,392 | JSON |
Local election votes for Conservativelocal-election-con-votes | Wards · 2018 · code year 2018 | 2,748 | JSON |
Local election votes for Conservativelocal-election-con-votes | Wards · 2019 · code year 2019 | 5,273 | JSON |
Local election votes for Conservativelocal-election-con-votes | Wards · 2021 · code year 2021 | 2,497 | JSON |
Local election votes for Conservativelocal-election-con-votes | Wards · 2022 · code year 2022 | 3,531 | JSON |
Local election votes for Conservativelocal-election-con-votes | Wards · 2023 · code year 2023 | 4,792 | JSON |
Local election votes for Conservativelocal-election-con-votes | Wards · 2024 · code year 2024 | 1,903 | JSON |
Local election votes for Conservativelocal-election-con-votes | Wards · 2025 · code year 2025 | 513 | JSON |
Local election effective voteslocal-election-effective-votes | Wards · 2016 · code year 2016 | 2,210 | JSON |
Local election effective voteslocal-election-effective-votes | Wards · 2017 · code year 2017 | 1,392 | JSON |
Local election effective voteslocal-election-effective-votes | Wards · 2018 · code year 2018 | 2,748 | JSON |
Local election effective voteslocal-election-effective-votes | Wards · 2019 · code year 2019 | 5,273 | JSON |
Local election effective voteslocal-election-effective-votes | Wards · 2021 · code year 2021 | 2,497 | JSON |
Local election effective voteslocal-election-effective-votes | Wards · 2022 · code year 2022 | 3,531 | JSON |
Local election effective voteslocal-election-effective-votes | Wards · 2023 · code year 2023 | 4,792 | JSON |
Local election effective voteslocal-election-effective-votes | Wards · 2024 · code year 2024 | 1,903 | JSON |
Local election effective voteslocal-election-effective-votes | Wards · 2025 · code year 2025 | 513 | JSON |
Local election votes for Greenlocal-election-green-votes | Wards · 2016 · code year 2016 | 2,210 | JSON |
Local election votes for Greenlocal-election-green-votes | Wards · 2017 · code year 2017 | 1,392 | JSON |
Local election votes for Greenlocal-election-green-votes | Wards · 2018 · code year 2018 | 2,748 | JSON |
Local election votes for Greenlocal-election-green-votes | Wards · 2019 · code year 2019 | 5,273 | JSON |
Local election votes for Greenlocal-election-green-votes | Wards · 2021 · code year 2021 | 2,497 | JSON |
Local election votes for Greenlocal-election-green-votes | Wards · 2022 · code year 2022 | 3,531 | JSON |
Local election votes for Greenlocal-election-green-votes | Wards · 2023 · code year 2023 | 4,792 | JSON |
Local election votes for Greenlocal-election-green-votes | Wards · 2024 · code year 2024 | 1,903 | JSON |
Local election votes for Greenlocal-election-green-votes | Wards · 2025 · code year 2025 | 513 | JSON |
Local election votes for Independentlocal-election-ind-votes | Wards · 2016 · code year 2016 | 2,210 | JSON |
Local election votes for Independentlocal-election-ind-votes | Wards · 2017 · code year 2017 | 1,392 | JSON |
Local election votes for Independentlocal-election-ind-votes | Wards · 2018 · code year 2018 | 2,748 | JSON |
Local election votes for Independentlocal-election-ind-votes | Wards · 2019 · code year 2019 | 5,273 | JSON |
Local election votes for Independentlocal-election-ind-votes | Wards · 2021 · code year 2021 | 2,497 | JSON |
Local election votes for Independentlocal-election-ind-votes | Wards · 2022 · code year 2022 | 3,531 | JSON |
Local election votes for Independentlocal-election-ind-votes | Wards · 2023 · code year 2023 | 4,792 | JSON |
Local election votes for Independentlocal-election-ind-votes | Wards · 2024 · code year 2024 | 1,903 | JSON |
Local election votes for Independentlocal-election-ind-votes | Wards · 2025 · code year 2025 | 513 | JSON |
Local election votes for Labourlocal-election-lab-votes | Wards · 2016 · code year 2016 | 2,210 | JSON |
Local election votes for Labourlocal-election-lab-votes | Wards · 2017 · code year 2017 | 1,392 | JSON |
Local election votes for Labourlocal-election-lab-votes | Wards · 2018 · code year 2018 | 2,748 | JSON |
Local election votes for Labourlocal-election-lab-votes | Wards · 2019 · code year 2019 | 5,273 | JSON |
Local election votes for Labourlocal-election-lab-votes | Wards · 2021 · code year 2021 | 2,497 | JSON |
Local election votes for Labourlocal-election-lab-votes | Wards · 2022 · code year 2022 | 3,531 | JSON |
Local election votes for Labourlocal-election-lab-votes | Wards · 2023 · code year 2023 | 4,792 | JSON |
Local election votes for Labourlocal-election-lab-votes | Wards · 2024 · code year 2024 | 1,903 | JSON |
Local election votes for Labourlocal-election-lab-votes | Wards · 2025 · code year 2025 | 513 | JSON |
Local election votes for Liberal Democratlocal-election-ld-votes | Wards · 2016 · code year 2016 | 2,210 | JSON |
Local election votes for Liberal Democratlocal-election-ld-votes | Wards · 2017 · code year 2017 | 1,392 | JSON |
Local election votes for Liberal Democratlocal-election-ld-votes | Wards · 2018 · code year 2018 | 2,748 | JSON |
Local election votes for Liberal Democratlocal-election-ld-votes | Wards · 2019 · code year 2019 | 5,273 | JSON |
Local election votes for Liberal Democratlocal-election-ld-votes | Wards · 2021 · code year 2021 | 2,497 | JSON |
Local election votes for Liberal Democratlocal-election-ld-votes | Wards · 2022 · code year 2022 | 3,531 | JSON |
Local election votes for Liberal Democratlocal-election-ld-votes | Wards · 2023 · code year 2023 | 4,792 | JSON |
Local election votes for Liberal Democratlocal-election-ld-votes | Wards · 2024 · code year 2024 | 1,903 | JSON |
Local election votes for Liberal Democratlocal-election-ld-votes | Wards · 2025 · code year 2025 | 513 | JSON |
Local election votes for Other candidateslocal-election-other-votes | Wards · 2016 · code year 2016 | 2,210 | JSON |
Local election votes for Other candidateslocal-election-other-votes | Wards · 2017 · code year 2017 | 1,392 | JSON |
Local election votes for Other candidateslocal-election-other-votes | Wards · 2018 · code year 2018 | 2,748 | JSON |
Local election votes for Other candidateslocal-election-other-votes | Wards · 2019 · code year 2019 | 5,273 | JSON |
Local election votes for Other candidateslocal-election-other-votes | Wards · 2021 · code year 2021 | 2,497 | JSON |
Local election votes for Other candidateslocal-election-other-votes | Wards · 2022 · code year 2022 | 3,531 | JSON |
Local election votes for Other candidateslocal-election-other-votes | Wards · 2023 · code year 2023 | 4,792 | JSON |
Local election votes for Other candidateslocal-election-other-votes | Wards · 2024 · code year 2024 | 1,903 | JSON |
Local election votes for Other candidateslocal-election-other-votes | Wards · 2025 · code year 2025 | 513 | JSON |
Local election votes for Plaid Cymrulocal-election-pc-votes | Wards · 2016 · code year 2016 | 2,210 | JSON |
Local election votes for Plaid Cymrulocal-election-pc-votes | Wards · 2017 · code year 2017 | 1,392 | JSON |
Local election votes for Plaid Cymrulocal-election-pc-votes | Wards · 2018 · code year 2018 | 2,748 | JSON |
Local election votes for Plaid Cymrulocal-election-pc-votes | Wards · 2019 · code year 2019 | 5,273 | JSON |
Local election votes for Plaid Cymrulocal-election-pc-votes | Wards · 2021 · code year 2021 | 2,497 | JSON |
Local election votes for Plaid Cymrulocal-election-pc-votes | Wards · 2022 · code year 2022 | 3,531 | JSON |
Local election votes for Plaid Cymrulocal-election-pc-votes | Wards · 2023 · code year 2023 | 4,792 | JSON |
Local election votes for Plaid Cymrulocal-election-pc-votes | Wards · 2024 · code year 2024 | 1,903 | JSON |
Local election votes for Plaid Cymrulocal-election-pc-votes | Wards · 2025 · code year 2025 | 513 | JSON |
Local election votes for Reformlocal-election-ref-votes | Wards · 2016 · code year 2016 | 2,210 | JSON |
Local election votes for Reformlocal-election-ref-votes | Wards · 2017 · code year 2017 | 1,392 | JSON |
Local election votes for Reformlocal-election-ref-votes | Wards · 2018 · code year 2018 | 2,748 | JSON |
Local election votes for Reformlocal-election-ref-votes | Wards · 2019 · code year 2019 | 5,273 | JSON |
Local election votes for Reformlocal-election-ref-votes | Wards · 2021 · code year 2021 | 2,497 | JSON |
Local election votes for Reformlocal-election-ref-votes | Wards · 2022 · code year 2022 | 3,531 | JSON |
Local election votes for Reformlocal-election-ref-votes | Wards · 2023 · code year 2023 | 4,792 | JSON |
Local election votes for Reformlocal-election-ref-votes | Wards · 2024 · code year 2024 | 1,903 | JSON |
Local election votes for Reformlocal-election-ref-votes | Wards · 2025 · code year 2025 | 513 | JSON |
Local election turnoutlocal-election-turnout | Wards · 2021 · code year 2021 | 2,497 | JSON |
Local election turnoutlocal-election-turnout | Wards · 2022 · code year 2022 | 3,531 | JSON |
Local election turnoutlocal-election-turnout | Wards · 2023 · code year 2023 | 4,792 | JSON |
Local election turnoutlocal-election-turnout | Wards · 2024 · code year 2024 | 1,903 | JSON |
Local election turnoutlocal-election-turnout | Wards · 2025 · code year 2025 | 513 | JSON |
Local election votes for UKIPlocal-election-ukip-votes | Wards · 2016 · code year 2016 | 2,210 | JSON |
Local election votes for UKIPlocal-election-ukip-votes | Wards · 2017 · code year 2017 | 1,392 | JSON |
Local election votes for UKIPlocal-election-ukip-votes | Wards · 2018 · code year 2018 | 2,748 | JSON |
Local election votes for UKIPlocal-election-ukip-votes | Wards · 2019 · code year 2019 | 5,273 | JSON |
Local election votes for UKIPlocal-election-ukip-votes | Wards · 2021 · code year 2021 | 2,497 | JSON |
Local election votes for UKIPlocal-election-ukip-votes | Wards · 2022 · code year 2022 | 3,531 | JSON |
Local election votes for UKIPlocal-election-ukip-votes | Wards · 2023 · code year 2023 | 4,792 | JSON |
Local election votes for UKIPlocal-election-ukip-votes | Wards · 2024 · code year 2024 | 1,903 | JSON |
Local election votes for UKIPlocal-election-ukip-votes | Wards · 2025 · code year 2025 | 513 | JSON |
Local election winning partylocal-election-winning-party | Wards · 2016 · code year 2016 | 2,210 | JSON |
Local election winning partylocal-election-winning-party | Wards · 2017 · code year 2017 | 1,392 | JSON |
Local election winning partylocal-election-winning-party | Wards · 2018 · code year 2018 | 2,748 | JSON |
Local election winning partylocal-election-winning-party | Wards · 2019 · code year 2019 | 5,273 | JSON |
Local election winning partylocal-election-winning-party | Wards · 2021 · code year 2021 | 2,497 | JSON |
Local election winning partylocal-election-winning-party | Wards · 2022 · code year 2022 | 3,531 | JSON |
Local election winning partylocal-election-winning-party | Wards · 2023 · code year 2023 | 4,792 | JSON |
Local election winning partylocal-election-winning-party | Wards · 2024 · code year 2024 | 1,903 | JSON |
Local election winning partylocal-election-winning-party | Wards · 2025 · code year 2025 | 513 | JSON |