Download UK Postcodes with Latitude and Longitude
Download a list of UK out code postcodes with their latitude and longitude coordinates.
The UK postal system uses postcodes to help with automating the sorting and delivery of mail. This is made up of a 2-part code, an out code and an in code. As the out code is the most significant part of the system, it can be used to obtain a rough area level break up of the UK. There are approximately 2971 out codes and approximately 1812402 full postcodes (out code + in code).
The uses of these out codes and lat/long values include mapping applications such as:
- Rough distance calculation
- Plot the rough location of a postcode on a map
- Simple postcode validation for input forms
Outcode Postcodes Current List : 2974
Full UK Postcode Current List : 1812402
Non Geographic Postcodes
AB99, BT58, CA99, CM92, CM98, CR44, CR90, GIR, IM99, IV99, JE5, M61, ME99, N1C, N81, NR99, NW26, PA80, PE99, RH77, SL60, SO97, SW95, SY99, WD99, WF90
Full UK Postcode Latitude Longitude Download
- MSSQL ukpostcodesmssql.zip (32MB zipped, 228MB unzipped)
- Uses a table called [postcodelatlng]
- Script to create table ukpostcodes_tablemssql.sql (1 KB)
- MySQL ukpostcodesmysql.zip (37MB zipped, 234MB unzipped)
- Uses a table called postcodelatlng
- Script to create table ukpostcodes_tablemysql.sql (1 KB)
- CSV ukpostcodes.zip (33MB zipped, 96MB unzipped)
- Header is in the first row : id,postcode,latitude,longitude
Outcode Area Postcodes (AB1,B2,BT7 etc..)
- MSSQL postcode-outcodes-mssql.sql (293 KB)
- Uses a table called [postcodelatlng]
- Script to create table postcode-outcodes_tablemssql (1 KB)
- MySQL postcode-outcodes-mysql (280 KB)
- Uses a table called postcodelatlng
- Script to create table postcode-outcodes_tablemysql.sql (1 KB)
- CSV postcode-outcodes.csv (82 KB)
- Header is in the first row : id,outcode,latitude,longitude
Contains Ordnance Survey data © Crown copyright and database right 201
Contains Royal Mail data © Royal Mail copyright and database right 2015
Contains National Statistics data © Crown copyright and database right 2015
Using This Data
To import to a web based MySQL database we would recommend BigDump: Staggered MySQL Dump Importer
- MySQL UK post code table with corresponding longitude and latitude
- Calculating the distance between a set of postcodes and ranking them in order
- 16th November 2015 - November 2015 update
- 19th October 2015 - Removed some duplicates
- 23rd September 2015 - Postcode column now has a space in the appropriate place
- 7th May 2015 - Some no loner used postcodes removed. Around 3000 corrections based on feedback
- 29th April 2015 - New update engine in place. Now provides MS SQL and MySQL script
- 5th March 2015 - Added B37 7FP
- 16th July 2014 - Added BB12 7BF
- 9th February 2014 - Added S1 4DE
- 9th February 2014 - Updated Full postcode list. 222 duplicates removed
- 9th February 2014 - Updated Outcode data. SQL script is for MSSQL
- 20th January 2014 - Removed 2 rows of incorrect data. Rows 1699835 and 1699836
- 11th September 2013 - Removed Duplicate BD98 And M60
- 1st August 2013 - Added full postcode list CSV and SQL (SQL insert) format with 1703751 rows
- 15th September 2011 - Added E20 (Olympic Park Postcodes)
- 23rd February 2011 - Added AB24, B99, BB94, BD97, BD98, BD98, BD99, BL11, BL78, BN50, BN51, BN52, BN88, BN99, BS80, BS98, CA95, CF30, CF91, CF95, CF99, CH25, CH26, CH27, CH28, CH29, CH30, CH31, CH32, CH33, CH34, CH70, CH88, CH99, CM77, CM99, CR9, CT50, CW98, DE99, DH97, DH98, DH99, DN55, E77, E98, EC1P, EC2P, EC4P, EC50, EH91, EH95, EH99, FY0, G58, G70, G75, G79, G9, G90, GU95, IP98, KY99, L67, L68, L71, L72, L73, L74, L75, LE19, LE21, LE41, LE55, LE87, LE94, LE95, LS88, LS98, LS99, M50, M60, M99, MK77, N1P, NE82, NE83, NE85, NE88, NE92, NE98, NG70, NG80, NG90, NW1W, OL95, PL95, PR0, PR11, S49, S96, S97, S98, S99, SA80, SA99, SE1P, SL95, SN38, SN99, SS22, SS99, ST55, SW99, TR93, UB18, W1A, WA55, WA88, WR78, WR99, YO90, YO91
- 27th June 2009 - Added NR7
- 22nd October 2008 - Added some Isle of Man and Jersey Postcodes. XLS format is no longer provided.
- 24th August 2008 - Added some new postcodes
- 1st July 2008 - Added List Status
- 10th June 2008 - Added SQL, CSV and XLS formats each with 2821 rows
Previous Comments For This Page
Hi Daniel, the point is an estimated center point of the postcode area.
By Free Map Tools on 01/02/2016
Hi Great resource by the way. What point in the postcode area do the longitude and latitude represent. Thanks
By Daniel O'Hara on 01/02/2016
looking for this exact list, but with town names too?
By mm on 14/01/2016
Hi Bill, do you mean postcodes that are no longer in use (terminated)?
By Free Map Tools on 24/12/2015
Is it possible to get older versions? I'd be interested in linking current postcodes to their closest analogy at prior dates (ie: for Census data, outstanding mortgage data, annual population survey, etc)
By Bill on 24/12/2015
Hi, Yes Guernsey postcodes are not included. I have made attempts to source this data but to no avail unfortunately.
By Free Map Tools on 09/12/2015
Hi I downloaded the CSV but cannot see post codes for prefix GY ? Guernsey how can I get these?
Hi Roy, BA1, BA2 ... do seem to be in the 3 variations of the file. Can you see BA1 or BA2?
By Free Map Tools on 18/11/2015
Hi - just downloaded the outcodes file
looks like BA (Bath) is missing
By Roy on 18/11/2015
Hi Alex, [https://en.wikipedia.org/wiki/Postcodes_in_the_United_Kingdom] states 1.7M and [http://www.poweredbypaf.com/] (Royal Mail Group) states 1.8M so there is varying differences in opinion about how many there are, 1.9M being the highest figure. I believe there is a constant flux when some old postcodes become inactive, but still used in legacy address databases and other new postcodes are created.
By Free Map Tools on 28/10/2015
The total number of UK postcodes is approx 1.9M.
Please verify here at this commercial provider:
You have stated 1.7M records, which 200k records are missing in your db?
By Alex on 28/10/2015
Thanks Alex, these duplicates have now been addressed and resolved.
By Free Map Tools on 19/10/2015
Duplicate post codes (the last 4 lat / long are 30 minutes away from the post code, however the first is correct.
INSERT INTO postcodelatlng (id,postcode,latitude,longitude) VALUES (55414, 'WF9 5WX', '53.612923821452000','-1.354428417665460');
INSERT INTO postcodelatlng (id,postcode,latitude,longitude) VALUES (55415, 'WF9 5WX', '53.668845402587500','-1.526845867639980');
INSERT INTO postcodelatlng (id,postcode,latitude,longitude) VALUES (55416, 'WF9 5WX', '53.668845402587500','-1.526845867639980');
INSERT INTO postcodelatlng (id,postcode,latitude,longitude) VALUES (55417, 'WF9 5WX', '53.668845402587500','-1.526845867639980');
INSERT INTO postcodelatlng (id,postcode,latitude,longitude) VALUES (55418, 'WF9 5WX', '53.668845402587500','-1.526845867639980');
By Alex on 19/10/2015
Hi Luis, I have done a quick search and found EC2R 8AH in ukpostcodes.csv on line 1235647. Can you re-download the file and have another look? It has been updated recently and this may have been one of the changes.
By Free Map Tools on 12/10/2015
Hello I am using the csv full UK postcodes list. I am looking the ones that start with the letter E (e.g. EC2R 8AH), but there is none. why this could be?
By Luis on 12/10/2015
Hi Jack, it should be considered out of date as it was based on a previous version of CPO, but has been updated (and still is) on an independent basis since.
By Free Map Tools on 22/09/2015
Does this data exist for postcode sectors? I can find full codes and outcodes, but not sectors.
By Mike on 21/09/2015
Hi, has your MySQL database of all full postcodes been created from the latest codepoint csv file of postcodes from 2015 ? Or is it an older outdated version? Thanks
By Jack on 14/09/2015
Hi, S98 1EE appears to be no longer in use. B65 ODA was in the wrong location, but should now be correct. Thanks for the feeback.
By Free Map Tools on 03/09/2015
These two entries in ukpostcodes.csv seem to have wrong lat and long?
Showing the most recent 20 out of 181 comments. Click to see all the comments.
Add your own comment below and let others know what you think: