Open address data in Europe: which licence needs which attribution
Most European geocoders sit on open address registers. "Open" does not mean "no conditions": each register has a licence, and the licence says what you must show when you display or store a result. This guide explains the four you will meet and how Addrova hands you what you need.
This is a practical summary, not legal advice. [À VÉRIFIER : relecture juridique avant publication.]
The four licences
| Licence | Typical sources | What it asks of you |
|---|---|---|
| Licence Ouverte 2.0 (Etalab) | France: BAN | Free reuse, including commercial. Name the source and the date of the data. |
| CC0 1.0 | Netherlands: BAG; Luxembourg: BD-Adresses | Nothing. No attribution is required. |
| CC BY 4.0 | Spain: CartoCiudad; Czechia and Austria registers | Credit the source, link the licence, say if you changed the data. |
| ODbL 1.0 | OpenStreetMap | Credit the source, and share-alike: a database you derive from it must be shared under the same licence. |
The country pages list each source, its licence and its status: France, Netherlands, Spain, Czechia, Austria, Luxembourg. A country on the roadmap is not live until its data is ingested and measured. [À VÉRIFIER : licences de CZ et AT d'après le journal de conception de P2.]
Why share-alike data is kept apart
ODbL share-alike is the one condition that can spread. If open data under it were mixed into the official index, results from that index could pull your stored addresses into the share-alike obligation. Addrova's design keeps share-alike sources in a separate index that is never merged with the official one, and each result says which family it came from.
What Addrova puts in every answer
Every response carries an attribution list with the text the licence requires, and every result lists its sources. Display that text where you display the results, and keep it if you store them. You may store results permanently; the attribution is the only string attached.
The public /coverage endpoint lists, for each country, the sources, the licence and whether a source is official or share_alike:
import requests
resp = requests.get("https://api.addrova.eu/coverage", timeout=10)
resp.raise_for_status()
for country in resp.json()["countries"]:
for source in country.get("sources", []):
print(country["country"], source.get("id"), source.get("license"), source.get("family"))
The base URL https://api.addrova.eu is not live yet; the fields follow the API specification. [À VÉRIFIER : service ouvert, URL de base définitive.]
A checklist for your own product
- Read the
attributionof the response and render it near the data. - Store the
sourcesandattributionnext to each address you keep. - If a source is
share_alike, ask what the licence means for the database you build before you mix it with your own. - Update the attribution if the data date matters for your licence.
Live coverage and licences are on the coverage page.