API · accès sur demande
Unités foncières
des personnes morales
Qui possède quoi autour d'une adresse ? Cette API renvoie les unités foncières — parcelles contiguës d'un même propriétaire — détenues par des personnes morales : sociétés, collectivités, associations.
- Accès sur demande
- GeoJSON · EPSG:4326
- Données DGFiP
- Licence Ouverte 2.0
Essayer
Tapez une adresse
La requête envoyée à l'API s'affiche en dessous ; les résultats apparaissent sur la carte et dans le tableau.
Tapez une adresse dans l’invite ci-dessus et appuyez sur Entrée.
Sans adresse : Hôtel de Ville, Paris, 300 m.
| Propriétaire | Forme juridique | SIREN | Parcelle |
|---|
Documentation
Point d'accès
https://yosegeo.net/apiufl/unitsParamètres
| Paramètre | Type | Description |
|---|---|---|
lat | nombre | Latitude du point (WGS 84), ex. 48.8566 |
lon | nombre | Longitude du point (WGS 84), ex. 2.3522 |
buffer_m | nombre | Rayon de recherche en mètres (5 000 au plus). Les trois paramètres s'utilisent ensemble. |
limit | entier | Nombre maximal d'unités foncières renvoyées : 50 par défaut, 500 au plus. |
D'autres filtres (commune, département, emprise) existent mais sont encore en cours d'optimisation : préférez la recherche autour d'un point.
Réponse
Une FeatureCollection GeoJSON de 50 unités foncières au maximum (jusqu'à 500 avec limit). Chaque entité porte notamment les propriétés suivantes :
| Propriété | Contenu |
|---|---|
id_uf | Identifiant de l'unité foncière |
nom_proprio | Dénomination de la personne morale propriétaire |
siren_proprio | SIREN du propriétaire |
forme juridique de la personne morale | Ex. : société civile immobilière, commune, association… |
groupe_personne_morale | Grand groupe de personnes morales (DGFiP) |
type_proprietaire_complet | Type de droit : propriétaire, usufruitier… |
idparc | Identifiant cadastral de la parcelle (14 caractères) |
codeinsee | Code INSEE de la commune |
type | Source : fichier des « locaux » ou des « parcelles » |
parc_bati | Parcelle bâtie : oui / non |
nature de culture | Occupation du sol : artificialisé, terres, bois… |
neighbors | Unités foncières voisines (identifiants) |
Exemples
curl "https://yosegeo.net/apiufl/units?lat=48.8566&lon=2.3522&buffer_m=300"
import geopandas as gpd
url = "https://yosegeo.net/apiufl/units?lat=48.8566&lon=2.3522&buffer_m=300"
ufl = gpd.read_file(url) # GeoDataFrame en EPSG:4326
print(ufl[["nom_proprio", "siren_proprio", "idparc"]])
const url = "https://yosegeo.net/apiufl/units?lat=48.8566&lon=2.3522&buffer_m=300";
const geojson = await fetch(url).then(r => r.json());
// Avec Leaflet :
L.geoJSON(geojson).addTo(map);
Couche › Ajouter une couche › Ajouter une couche vecteur
Type de source : Protocole HTTP(S), cloud, etc.
Type : GeoJSON
URI : https://yosegeo.net/apiufl/units?lat=48.8566&lon=2.3522&buffer_m=300
Bon usage
- Une requête peut prendre quelques secondes : gardez des rayons raisonnables (quelques centaines de mètres).
- Pour des traitements en masse, téléchargez plutôt les fichiers GeoParquet par département sur data.gouv.fr.
- Les unités foncières sont calculées en Python à partir des fichiers DGFiP des locaux et parcelles des personnes morales ; elles peuvent différer légèrement des données MAJIC.
- Les API des unités foncières et des zones des PLU peuvent être rendues accessibles à la demande, pour un usage régulier ou une intégration : écrivez-moi.
Deuxième API
Zones des PLU
Le zonage des plans locaux d'urbanisme (PLU, PLUi, PSMV) issu du Géoportail de l'urbanisme : quelle zone à cet endroit, et quelles zones autour. Départements couverts pour l'instant : 01, 02, 03, 04, 06, 75, 77, 78, 90, 91, 92, 93, 94, 95.
Tapez une adresse dans l’invite ci-dessus et appuyez sur Entrée.
Sans adresse : Hôtel de Ville, Paris, 300 m.
- U — urbaine
- AU — à urbaniser
- A — agricole
- N — naturelle
| Zone | Libellé | Type | Document |
|---|
Points d'accès
| Requête | Paramètres | Réponse |
|---|---|---|
GET /apiufl/plu/at | lat, lon | Les zones qui contiennent le point (« quel zonage ici ? »), sans géométrie. Ajouter geometry=true pour les contours. |
GET /apiufl/plu | lat, lon, buffer_m (5 000 au plus) | Les zones dans un rayon autour du point. |
GET /apiufl/plu | minx, miny, maxx, maxy | Les zones d'un rectangle (WGS 84, 0,5° de côté au plus), contours simplifiés à l'échelle du rectangle : pratique pour une carte. |
GET /apiufl/plu/departements | — | Départements disponibles, nombre de zones et emprise. |
Filtres communs : typezone (ex. U,AUc) et limit (500 par défaut, 2 000 au plus). Un champ truncated signale une réponse coupée par la limite.
Propriétés
| Propriété | Contenu |
|---|---|
libelle | Code de la zone dans le document, ex. UG, 1AU, Nzh |
libelong | Libellé complet de la zone |
typezone | Type normalisé : U, AUc, AUs, A, N, Ah, Nh |
destdomi | Destination dominante (si renseignée) |
idurba | Identifiant du document d'urbanisme (PLU, PLUi, PSMV…) et sa date |
partition | Territoire couvert par le document, ex. DU_75056 |
nomfic | Nom du fichier du règlement écrit |
departement | Département |
Exemples
# Quel zonage à cet endroit ?
curl "https://yosegeo.net/apiufl/plu/at?lat=48.8566&lon=2.3522"
# Toutes les zones dans un rayon de 500 m
curl "https://yosegeo.net/apiufl/plu?lat=48.8566&lon=2.3522&buffer_m=500"
import geopandas as gpd
zones = gpd.read_file("https://yosegeo.net/apiufl/plu?lat=48.8566&lon=2.3522&buffer_m=500")
print(zones[["libelle", "libelong", "typezone"]])
const r = await fetch("https://yosegeo.net/apiufl/plu/at?lat=48.8566&lon=2.3522").then(r => r.json());
const zone = r.features[0]?.properties;
console.log(zone ? `${zone.libelle} — ${zone.libelong}` : "hors zone couverte");
Seul le document d'urbanisme opposable, consultable en mairie ou sur le Géoportail de l'urbanisme, fait foi ; cette API en est une copie pratique, mise à jour périodiquement.