UK Postcode Bulk Validator & Geocoder

A free bulk UK postcode validator that takes a CSV. Paste a list or drop in a spreadsheet export, and every postcode is checked for a valid format in your browser, then looked up for real: latitude and longitude, admin ward, parliamentary constituency and LSOA. Export the lot as CSV. No API key, no account, no row limit worth worrying about.

Postcodes go straight from your browser to postcodes.io - they never touch our server, and nothing is stored. postcodes.io is free, open source and needs no API key.

Nothing checked yet

Paste a list or a CSV above. Every postcode is checked for a valid format in your browser first - badly formed ones are never sent to the API - and the rest come back with coordinates, ward, constituency and LSOA.

Data source and attribution

  • postcodes.ioFree, open-source, keyless UK postcode and geolocation API. No registration, no API key, no rate limit.
  • postcodes.io - source and data licensingBuilt on the ONS Postcode Directory. Contains OS data © Crown copyright and database right, Royal Mail data © Royal Mail copyright and database right, and National Statistics data © Crown copyright and database right.

Valid format and real postcode are two different questions

Most “postcode validators” only run a regular expression. That catches QW1 1AA - Q is never a first letter of a UK postcode - but it happily passes SW1A 1ZZ, which is perfectly well-formed and has never been issued to anybody. A typo that stays inside the pattern is exactly the kind that survives into a mailing list.

This tool does both. The format check runs locally first, so malformed entries never cost a network request, and everything that survives is looked up against the live postcode database. You get three distinct outcomes per row - Found, Not found (well-formed, but no such postcode) and Bad format - because they need different fixes.

What comes back for each postcode

FieldExample (SW1A 1AA)
latitude, longitude51.50101, -0.141563
eastings, northings529090, 179645 (OS National Grid)
admin_wardSt James's
parliamentary_constituencyCities of London and Westminster
lsoaWestminster 018C
msoa, admin_district, admin_county, parishWestminster, …
country, regionEngland, London
outcode, incodeSW1A, 1AA

Every one of those columns is in the CSV export, alongside your original input string and the row's status, so you can join the results back onto your own spreadsheet.

الأسئلة الشائعة

How do I bulk validate UK postcodes from a CSV?

Paste the CSV straight into the box or upload the file. The tool works out which column holds the postcodes - by a header called postcode, post code, zip or similar, or failing that by whichever column has the most postcode-shaped cells - so you can drop in a full customer export without stripping it down first. Duplicates are collapsed automatically, and the results download as a CSV you can join back onto your original data.

Is there an API key, a sign-up or a row limit?

None of those. Lookups go to postcodes.io, a free and open-source UK postcode API that needs no key and imposes no rate limit. Requests go in batches of 100, which is that API's documented maximum per call, and the tool handles the batching and the progress bar for you. This page caps a single run at 5,000 postcodes to keep the browser responsive - split a larger file and run it twice.

Do my postcodes get uploaded to your server?

No. postcodes.io sends permissive CORS headers, so the request goes directly from your browser to their API - it never passes through this site, and nothing is logged or stored here. If you are handling a customer address list, that is one fewer party touching it.

What does "not found" mean if the format was fine?

It means the postcode is correctly shaped but is not in the current postcode database. Usually that is a typo that happened to stay inside the pattern, a postcode that has since been terminated (postcodes do get retired when an area is redeveloped), or a genuinely fictional one such as those used in test data. Those rows are worth a human look rather than an automatic delete.

What is an LSOA, and why would I want it?

A Lower Layer Super Output Area is a small census geography of roughly 1,000 to 3,000 people, used across UK statistics - most usefully as the unit that the Index of Multiple Deprivation is published against. If you are doing catchment analysis, service planning, funding bids or any kind of demographic segmentation, the LSOA is the key that joins your postcodes to published open datasets. The admin ward and parliamentary constituency serve the same purpose for local-government and political geography.

Where does the location data come from?

postcodes.io builds on the ONS Postcode Directory. That contains OS data © Crown copyright and database right, Royal Mail data © Royal Mail copyright and database right, and National Statistics data © Crown copyright and database right. The coordinates are the centroid of the postcode unit, not a rooftop-level address fix, so treat them as accurate to the postcode rather than to the door.

أدوات ذات صلة