Confinia API
EU administrative boundaries with full historical versioning — any commune, as it existed at any date, as GeoJSON.
Typical uses: joining a 2015 dataset (health, tax, elections…) to today's map without losing the ~1,800 communes that merged since; resolving which commune an address or GPS point belonged to at the time of the event (insurance claims, property history, epidemiology); keeping INSEE-coded time series consistent across COG vintages when codes get reused or renamed.
« Which commune was here on 2018-06-01? » — codes get reused, names change, municipalities merge: GET /v1/communes?code=01033&at=2018-06-01 → Bellegarde-sur-Valserine GET /v1/communes?code=01033&at=2020-06-01 → Valserhône (merged 2019) GET /v1/communes/01033/history → every version since 1943 GET /v1/communes?dept=01&at=2019-06-01 → a whole département (FeatureCollection) Any European municipality (EU + EFTA + UK + candidates), and New Zealand: GET /v1/units?lat=52.52&lon=13.405&at=2020-06-01 → Berlin (point, any country) GET /v1/units?nuts=ITC4C&at=2020-06-01 → all comuni of the Milano province GET /v1/units?nuts=DE2&at=2019-06-01 → all Gemeinden of Bavaria GET /v1/units/GM0363/history → Amsterdam through time NUTS regions, 7 versions (2003→2024) — e.g. the 2016 French région reform (the 13 new régions became NUTS 1; the 22 old ones survive as NUTS 2 — the kind of divergence that silently breaks time series): GET /v1/nuts?level=1&country=FR&at=2015-06-01 → 9 ZEAT super-regions (pre-reform NUTS 1) GET /v1/nuts?level=1&country=FR&at=2018-06-01 → the 13 post-2016 régions (+ DROM) GET /v1/nuts?lat=45.46&lon=9.19&level=3&at=2020-06-01 → which province am I in?