Address data for new countries – required formats and structure

Several users from other countries have asked how they can help us build address data for their region. This post describes what kind of data we need, how it should be structured, and in which format it can be provided. It also explains how you can support us by pointing to suitable public data sources that we can review and use.

General structure

We need address data that covers the entire country and reflects the following hierarchical structure:

Country → Region or State → Municipality or Administrative District → City → District or Subdivision → Street

Each street must be clearly linked to its higher-level administrative units. The data should be as complete, consistent, and geographically accurate as possible.

File format

We can process various data formats, but CSV files are the simplest.
Files should:

  • be encoded in UTF-8
  • use either comma (,) or semicolon (;) as a delimiter
  • include a header row with column names

The CSV format is given as an example. We can also convert other formats (for example Excel, GeoJSON, Shapefile) as long as the contained data matches the structure and quality described here.

Column structure

The following columns form the basis. Required fields are necessary for processing, optional fields improve accuracy but are not mandatory.

Column Description Example Required
Country Name or ISO code of the country France Yes
State Name of the region or state Île-de-France Yes
Commune Name of the municipality or administrative area Paris Yes
City Name of the city Paris Yes
District Name of the district or subdivision 1er Arrondissement Yes
Zip Postal code 75001 Yes
Street Street name Rue de Rivoli Yes
StreetNumberMin Lowest house number 1 Optional
StreetNumberMax Highest house number 99 Optional
DistrictLat Latitude of the district in decimal degrees 48.85661 Yes
DistrictLng Longitude of the district in decimal degrees 2.35222 Yes
PhonePrefix Telephone prefix 01 Optional

Example dataset (comma separated):

Country,State,Commune,City,District,Zip,Street,StreetNumberMin,StreetNumberMax,DistrictLat,DistrictLng,PhonePrefix
France,Île-de-France,Paris,Paris,1er Arrondissement,75001,Rue de Rivoli,1,99,48.85661,2.35222,+33 1
Netherlands,Noord-Holland,Amsterdam,Amsterdam,Centrum,1012,Damrak,1,200,52.37312,4.89222,+31 20

Formatting rules

  • Text must be UTF-8 encoded
  • Decimal separator for coordinates must be a period (.), not a comma
  • Postal codes can be alphanumeric, leading zeros must be preserved
  • Each combination of country, district, and street should be unique
  • Empty values are allowed where specific information (such as house numbers) is not available

Data limitations

  • A street can only exist once within the same district (street name must be unique per district)
  • A district name and ZIP code combination must be unique within the same city.
  • Each address record must belong to an existing district, and each district must belong to a valid city, commune, state, and country (foreign key hierarchy must be valid).
  • Latitude and longitude are required for every district and serve as the fallback coordinates when no street-level data is available.
  • Streets that cross district or postal boundaries must be created as separate entries for each district or ZIP area.
  • Empty or duplicate key values are not allowed in the hierarchy (e.g. missing district references or repeated street names in the same district).

Coordinates and fallback behavior

Normally, address coordinates are resolved dynamically down to street or even house number level.

If this resolution is not possible for a specific area, the system falls back to the coordinates of the corresponding district.

For this reason, the latitude and longitude values for each district must be accurate and represent the geographic center of that district.

If these coordinates are imprecise, locations may be displayed incorrectly. The district coordinates are the lowest fallback level used when no more detailed coordinates are available.

Support through data sources

In addition to providing structured datasets directly, it is especially helpful if you can point us to official or open data sources that contain address information for entire countries or regions.

Suitable examples include:

  • national or regional address registers
  • municipal or governmental geodata portals
  • open administrative databases (open data)
  • freely available geodata such as OpenStreetMap

We will review these sources and prepare the data for integration into our system.

Goal

With this information, we can build complete address data packages for additional countries. Any contribution, whether in the form of structured data or references to public sources, helps us expand coverage more quickly.

If you have datasets or know of suitable sources that follow or approximate this structure, please share them here in the forum. We will review each submission and determine how it can be integrated.

Ich habe die Dateien an die EMail kontakt@xenbit.de geschickt.

Ist das so in Ordnung? Kommt das dann an der richtigen Stelle an? :slight_smile:

Vielen Dank. Wir haben die Daten hinzugefügt. Die Daten für Luxembourg sollten somit verfügbar sein, wenn das Adress-Paket ausgewählt ist.

Bitte testet die Daten ausgiebig. Sollte der Import falsch sein, müssen wir das korrigieren. Wenn wir später die Datensätze entfernen und neu einfügen, würden alle POI die Adressen wieder verlieren.

Hello, I have a database that include coordinates for every house number. How can i use this ? Should i choose one random number ?

Good Moringi, existe la posibilidad de hacerlo con chat GPT, no sé si funcionará para los desarrolladores. agrego el enlace a la respuesta, la primera parte está en español, creó un programa de python para ejecutar, sabe cómo usar python, así que si es el cualquiera que sabe cómo usarlo y el ordenador es el comunista

Enlace : https://chatgpt.com/share/690dde8b-a6ac-800e-a8cf-5c64ad148e23

Hello,

French database have been sent to kontakt@xenbit.de as well.
Looking forward to the integration in game.
Have a good day ! :slight_smile:

Amras

Hallo,
habe gestern Adressdaten für Südtirol an kontakt@xenbit.de gesendet.
Bekommt man eine Rückmeldung/Benachrichtigung, sobald die Adressdaten implementiert sind?

Exact coordinates for each house are currently not supported, because house numbers and coordinates may change over time. Districts, on the other hand, are mostly constant, so we only require coordinates at the district level.

Wir prüfen das gerade. Theoretisch ist es möglich, einzelne Regionen einzupflegen. Allerdings würde ein eigenes Adresspaket bedeuten, dass eine überregionale Zusammenarbeit technisch ausgeschlossen ist und das möchten wir eigentlich vermeiden. Daher versuchen wir, nur vollständige Länder einzupflegen. Ein späterer Wechsel des Adresspakets ist zwar möglich, kann jedoch dazu führen, dass die Zuordnung der Adressen zu den POIs verloren geht.

Thank you! We will check this out.

Wie ist das denn dann mit Geodaten-Updates? Ich meine man sollte die Daten generell schon alle Jahre mal aktualisieren können, ohne dass die Connection zu den POIs verloren geht.

Derzeit wird die DACH-Adressdatenbank einmal im Jahr aktualisiert. Ich glaube, die letzte Aktualisierung war Anfang 2025.

Das heißt also, aus Usersicht passiert das automatisch und ohne Risiko von Datenverlusten bzw. POI-Missmatches?

Ja genau. Auffallen würde es nur, wenn ein neuer Stadtteil entsteht. Dann müsste der manuell zum Einsatzgebiet hinzugefügt werden. Dies dürfte sehr selten der Fall sein. Wenn Straßen gelöscht werden, hat der POI keine Straße mehr, existiert aber weiterhin.

1 „Gefällt mir“

The current progress shows only the raw data. Duplicate detection will follow. But does France really have over 25 million streets?

Bildschirmaufnahme 2025-11-13 um 14.17.42

This is the only data i could find. France has probably around 25 millions adresses but there is several coordinates for each street (house numbers). I couldn’t find a safe way to just take the street coordinates so i gave you everything, hoping you can exploit this database to a satisfactory level.
I’m a beginner in data enginering.

1 „Gefällt mir“

I have now understood the data structure of the files. House numbers are assigned in a completely different system than the one we know. We will be able to add all streets, but without any house-number reference. In the future we need an additional data structure to store house numbers separately. That is not possible at the moment. I hope the missing house numbers do not have a strong negative impact on the simulation.

1 „Gefällt mir“

House number assignement in france is region dependant. The number can be related to your order in the street, or dependant of your distance from the beginning of the street. It’s hard to give min and max number. It’s okay if house number is not supported at first (it’s a lot of data). But some bugs has to be expected. For example, a street with 200 differents numbers has 100 times more chance of being concerned by an accident then a really small street with only 2 houses. This will be hard to render at first. Maybe something to think about in the future.
Thank’s for your work !

Wäre es möglich das Paket (auf Südtirol bezogen) trotzdem zu implementieren, damit man zumindest die eigene Leitstelle bauen kann, evtl. würden wir auch in kauf nehmen die POIs neu zuzuordnen…

Danke im Vorraus

I just sent the CSV file to the email kontakt@xenbit.de for the city of Turin (Italy). If I manage in the next few days, I will send you the whole Piedmont region (Italy).

1 „Gefällt mir“