Base de Datos de Códigos Postales de España

Se supone que Correos es una empresa con participación pública (y viene de ser una empresa completamente pública) pero eso parece que no ayuda a que sus datos sean considerables como abiertos. Esto hace que algo tan absurdo como la base de datos de Códigos Postales y calles no esté disponible de forma simple abierta y gratuita, como debería. Es por esto que hace unos años hice un primer acercamiento a tener una base de datos de códigos postales, aunque aquella vez fue hecha de forma manual.

En esta ocasión he estado rebuscando por la red de redes y gracias a varias fuentes de datos que tenían información suelta, y también gracias al portal de datos.gob.es donde hay algunos elementos del INE, he conseguido hacer un megamix de información y poder crear una base de datos en SQL relacional de provincias, poblaciones (municipios) y códigos postales.

El portal lo he lanzado en postal.cat y aunque la web está en catalán, el contenido está en las lenguas oficiales, ya que las poblaciones han de estar así. Allí encontrarás los ficheros en formato CSV, Excel y SQL, dependiendo de lo que quieras hacer.

Además, es probable que haya una siguiente actualización en la que se incluya el callejero, de forma que en las grandes ciudades donde hay más d eun código portal por municipio, se podría buscar la calle y así saber cuál es el código portal correcto que tiene. De todas formas, esto es algo que ya llegará.

NOTA agosto 2018: Este proyecto se va a recrear en las próximas semanas, por lo que si los datos no son 100% fiables, pido un poco de paciencia.

20 comentarios en “Base de Datos de Códigos Postales de España

  1. Buenos días Javier y gracias por la información, pero algo debo estar haciendo mal: selecciono un código postal de un pueblo (06600 Cabeza del Buey) y me salen muchos más ¿por qué puede ser?
    Muchas gracias de nuevo.
    Saludos

  2. Muchas gracias por compartir, tienes toda la razón en que deberían ser datos de uso público.
    He detectado algunos errores. Por ejemplo he buscado mi código postal, 50009 en Zaragoza y salen municipios de otras provincias.

  3. Hola Javier, creo que algo no está funcionando bien en la generación del fichero. Salen varias poblaciones con el mismo código de población, Melilla sale en la provincia de ALAVA,…

  4. Muchas gracias, me ha sido muy práctico, justo lo que necesitaba, muchas gracias por el esfuerzo!! :)

    @David, supongo que te habrás dado cuenta ya que el código de población no es la clave primaria, tienes que fijarte en el código de población + el código de provincia (clave primaria compuesta).

  5. Por cierto Javier, creo que en la tabla de población la latitud y la longitud están intercambiadas.

  6. No están bien los códigos. Por poner un ejemplo, Ripollet no está en Ávila y la latidud y la longitud, tampoco coincide

    Se agradece el esfuerzo, pero no es válido.

    Una pena, muchas gracias.

  7. No coinciden los códigos postales con los distritos, gracias por el esfuerzo pero no sirve de ninguna manera…

  8. Hola,

    acabo de bajarme tu excel y veo que los códigos postales no coinciden con las poblaciones :(

    Un ejemplo:
    Según tu excel:
    01001 059 Reinosa -4.137972222 43.001055560 01 Araba/Álava

    Según google maps:
    Reinosa pertenece a Cantabria, y tiene código postal 39200. Las coordenadas según google maps son (Latitud: 43.0009228, Longitud: -4.1320259)

    Tu planteamiento es genial, pero es erróneo.

    Saludos

    Dani

  9. Hola Javier:

    Me temo que en algún momento se te ha debido desordenar la información.
    Te agradecería muchísimo que pudieras revisar si la que tienes tú original es correcta y que vuelvas a subirla.

    Sería genial. :-)

    Saludos,
    Raquel

  10. Buenas tardes Javier,

    Acabo de descargar los datos y creo que hay un cruce de información importante que imposibilita la correcta manipulación.

    He intentado arreglarlo, pero el problema viene de origen.

  11. Hola,

    Se agradece el esfuerzo pero parece necesaria una mayor depuración de los datos.

    Está claro que el excel no está correcto, supongo que debe haber un mal cruce de datos, supongo que se habrá relacionado sólo por idpoblacion cuando debía ser por idpoblacion e idprovincia

    Pero partiendo de las sentencias SQL he construido las tablas y me encuentro con algunas inconsistencias, respecto a que los dos primeros dígitos del código postal no corresponde con la provincia.

    codigopostalid poblacionid provinciaid
    00240 001 01
    00548 047 05
    43421 021 08
    01118 109 09
    01211 109 09
    01427 050 09
    01427 192 09
    26212 219 09
    34260 316 09
    34260 417 09
    34260 446 09
    34492 306 09
    34492 373 09
    39232 011 09
    14449 015 13
    18312 037 14
    02636 060 16
    24512 173 16
    15489 087 18
    19680 173 18
    16160 105 19
    18140 143 19
    28190 067 19
    02100 053 20
    02170 013 21
    22400 010 21
    21193 222 24
    08281 136 25
    08289 192 25
    08697 910 25
    08717 216 25
    22583 234 25
    22584 234 25
    02438 028 30
    03010 030 30
    03657 043 30
    03659 022 30
    15201 030 30
    32131 024 30
    50686 203 31
    03392 024 33
    05519 024 33
    39250 032 34
    34570 020 35
    47428 225 37
    10701 038 41
    73820 037 43
    43900 244 46
    44630 128 46
    22808 185 50
    42221 215 50
    42269 015 50
    42269 172 50
    42269 259 50
    44591 021 50
    90007 297 50

  12. No lo he mirado muy a fondo, pero un primer vistazo a la base de datos (modo texto en el navegador) si que me parece que está bien.
    Una cosa es el id del municipio según el INE (un identificador para cada municipio) y otro es el cp de correos (un mismo cp puede ser para varias poblaciones cuando son pequeñas o un población grande puede tener distintos cp).

    Creo que la currada y que se ponga a disposición de todos merece un aplauso.

  13. Muchísimas gracias, estoy de acuerdo con todo lo que comentas respecto de una empresa pública como correos.

    Enhorabuena y mi admiración por tu trabajo.

  14. Buenas, has comentado algo sobre los datos abiertos en datos.gob.es
    Se me ocurre algún tipo de consulta tipo WFS con descripción de entidades o otros tipos de archivos GIS WMS o WCS.
    Con lo que no tendríamos que almacenar información y esta estaría siempre actualizada

    Pero estoy un poco pez para esta consulta y el lenguaje descriptivo de estos datos.

Deja un comentario