LogiScan

Référence des schémas

Cette page est engendrée depuis les modèles que le service sert : ce qui est décrit ici est ce qui est renvoyé, au champ près. Les types suivent JSON. « Ou nul » signale un champ qui peut manquer, et un champ absent signifie que la source n'a rien rendu.

Les requêtes

DemandeAnalyse

Le corps de POST /v1/analyses.

ChampTypeRequisSens
source SourceLien ou SourceTexte ou SourceAdresse oui Ce qu'on analyse, sous une seule des trois formes : un lien (listing_url), le texte d'une page (listing_text) ou une adresse (address). C'est la forme qui fixe le tarif de l'appel.
prix_eur nombre ou nul — Le prix affiché, s'il n'est pas dans la source. Sans prix : la fourchette.
radii liste d'entiers ou nul — Rayons de comparaison en mètres, parmi ceux du site ; 300, 500, 800 et 1000 par défaut.

SourceLien

Une annonce désignée par son lien : Stream Estate d'abord, le fetcher ensuite.

ChampTypeRequisSens
listing_url chaîne (motif `^https?://`) oui Le lien de l'annonce, tel qu'il s'affiche dans la barre du navigateur. La source des annonces le compare au caractère près : copiez-le entier. (longueur 12–2000)

SourceTexte

Le texte d'une page d'annonce, analysé puis jeté : rien n'en est conservé.

ChampTypeRequisSens
listing_text chaîne oui Le texte de la page d'annonce tel que le navigateur l'affiche (tout sélectionner, copier). Il est lu puis jeté : rien n'en est conservé. (longueur 20–200000)
source_domain chaîne ou nul — Le domaine d'où vient le texte, pour les statistiques agrégées seulement.

SourceAdresse

Une adresse postale, géocodée dans la Base Adresse Nationale — sans annonce.

ChampTypeRequisSens
address chaîne oui L'adresse à analyser, avec sa commune ou son code postal (« 12 rue de l'Exemple, 59000 Lille »). Sans ban_id, la première proposition de la Base Adresse Nationale est retenue, en méthode « adresse_saisie ». (longueur 5–250)
ban_id chaîne ou nul — L'identifiant BAN à retenir parmi les propositions, s'il est connu.
facts PropertyFacts ou nul — Ce qu'on sait du bien : type, surface, pièces…

DemandeCompletude

Ce que POST /v1/listings/completeness reçoit : une annonce structurée, ou un texte.

ChampTypeRequisSens
listing AnnonceApi ou nul — Une annonce déjà structurée : commune, bien, diagnostic.
text chaîne ou nul — Le texte d'une page d'annonce, lu par le parseur puis jeté.
source_domain chaîne ou nul — Le domaine d'origine : il n'adapte que la phrase d'aide.
tous_les_champs booléen — Rendre la liste entière des champs manquants, au lieu des trois du site.

AnnonceApi

Une annonce structurée telle que l'API l'accepte : des faits, sans provenance. Ni lien ni référence d'annonce : ces deux champs désignent une annonce chez un tiers et n'entrent pas par cette porte.

ChampTypeRequisSens
commune Commune ou nul — Où est le bien : nom, code postal, code INSEE — chacun facultatif.
property PropertyFacts ou nul — Le bien : type, surface, pièces, prix, étage, année de construction…
dpe DPEFacts ou nul — Le diagnostic : numéro ADEME, classes, consommation, émissions, date et sa précision. C'est ce qui trouve l'adresse le plus sûrement.
description_text chaîne ou nul — Le texte libre de l'annonce ; on y lit les repères (rue, quartier, résidence) et les faits que les champs structurés ne portent pas.

Commune

Localité de l'annonce. Tous les champs sont facultatifs et indépendants.

ChampTypeRequisSens
nom chaîne ou nul — Nom de la commune
code_postal chaîne (motif `^\d{5}$`) ou nul — Code postal à 5 chiffres
code_insee chaîne (motif `^[0-9][0-9AB]\d{3}$`) ou nul — Code INSEE de la commune (2A/2B admis pour la Corse)

PropertyFacts

Caractéristiques du bien telles qu'annoncées, toutes facultatives.

ChampTypeRequisSens
type_bien « appartement » | « maison » | « autre » ou nul — Nature du bien : « appartement », « maison », ou « autre » (terrain, local, parking…)
surface_m2 nombre ou nul — Surface habitable en m²
surface_terrain_m2 nombre ou nul — Surface totale du terrain en m², telle que l'annonce l'indique. Le cadastre publie la même grandeur, à la parcelle près : les deux se confrontent.
nb_pieces entier ou nul — Nombre de pièces
nb_chambres entier ou nul — Nombre de chambres
nb_salles_de_bain entier ou nul — Nombre de salles de bain ou d'eau
prix_eur nombre ou nul — Prix de vente affiché en euros. Un loyer n'en est pas un : sur une annonce de location, ce champ reste vide et le montant mensuel est dans « loyer_mensuel_eur ».
transaction « vente » | « location » ou nul — Nature de l'annonce, quand la source la dit : « vente » ou « location ». Une location est située comme une vente, mais son loyer ne se compare jamais aux ventes voisines — pas de note de prix, pas de budget d'achat.
loyer_mensuel_eur nombre ou nul — Loyer mensuel affiché en euros, sur une annonce de location — charges comprises ou non selon ce que le diffuseur publie.
prix_hors_honoraires nombre ou nul — Prix hors honoraires d'agence, quand l'annonce le publie. C'est la grandeur comparable aux ventes DVF, qui enregistrent le prix porté à l'acte — c'est elle que la note de prix compare quand elle existe.
honoraires_acquereur booléen ou nul — L'annonce indique-t-elle que les honoraires sont à la charge de l'acquéreur ? Vrai signifie que « prix_eur » comprend des honoraires que DVF n'enregistre pas : la comparaison de prix devient incertaine, et le Deal Score le dit au lieu de comparer deux grandeurs différentes.
etage entier ou nul — Étage (0 = rez-de-chaussée)
annee_construction entier ou nul — Année de construction annoncée. Elle ne situe aucun bien à elle seule, mais elle recoupe le bâti et sert de critère de départage au moment de confronter un candidat au cadastre.
chauffage « gaz » | « fioul » | « reseau » | « electrique » | « pompe_a_chaleur » | « bois » ou nul — Énergie de chauffage annoncée (« chauffage au gaz », « pompe à chaleur »…). Le diagnostic ne la publie pas, mais ses émissions rapportées à sa consommation la trahissent : c'est un critère de départage, pas un critère portant.

DPEFacts

Éléments de diagnostic de performance énergétique issus de l'annonce.

ChampTypeRequisSens
numero_ademe chaîne (motif `^[0-9A-Z]{13}$`) ou nul — Numéro ADEME : 13 caractères alphanumériques majuscules
date_etablissement chaîne (date AAAA-MM-JJ) ou nul — Date d'établissement du DPE
date_precision « jour » | « mois » | « annee » ou nul — Finesse réellement connue de la date d'établissement
classe_energie « A » | « B » | « C » | « D » | « E » | « F » | « G » ou nul — Étiquette énergie, de A à G
classe_ges « A » | « B » | « C » | « D » | « E » | « F » | « G » ou nul — Étiquette climat (émissions de gaz à effet de serre), de A à G
conso_kwh_m2_an nombre ou nul — Consommation d'énergie primaire en kWh/m²/an
emission_ges_kg_m2_an nombre ou nul — Émissions de gaz à effet de serre en kgCO₂/m²/an
facture_energie_min nombre ou nul — Borne basse des dépenses annuelles d'énergie estimées par le diagnostic, en euros. Indice faible : la fourchette dépend de l'année de référence des prix de l'énergie, qui n'est pas toujours celle du DPE.
facture_energie_max nombre ou nul — Borne haute des dépenses annuelles d'énergie estimées, en euros

Les réponses

ReponseAnalyse

La réponse 200 : où, autour, à quel prix — et ce que l'appel a coûté.

ChampTypeRequisSens
id chaîne oui L'identifiant de l'analyse ; le résultat reste lisible une heure.
statut chaîne oui « termine » : le travail est fini, voici son résultat.
billed booléen oui Vrai quand cet appel a été débité. Faux en mode test, et quand un rejeu par Idempotency-Key rend un résultat déjà payé.
source chaîne oui La forme de source reçue : « listing_url », « listing_text » ou « address ».
mode chaîne oui « live » (clé réelle, facturé) ou « test » (bac à sable, gratuit).
cost_credits nombre oui Crédits débités pour cet appel, selon la forme de source ; 0 en mode test. Un lien déjà résolu dans l'heure se paie comme un lien neuf. (≥ 0)
resolution ResolutionApi oui Où est ce bien : les adresses candidates avec leur score, et ce que le moteur a fait pour les trouver.
deal_scores liste de NotesParCandidat — Ce que vaut le prix : une entrée par adresse candidate, dans le même ordre que resolution.candidates, chacune avec une note (ou une fourchette, sans prix) par rayon demandé. Vide sans candidat.
comparables liste de ComparableApi — Les ventes retenues pour noter la première adresse candidate, tous rayons confondus.
enrichment EnvironnementApi ou nul — L'environnement de la première adresse candidate : risques, urbanisme, chantiers, terrain, toiture, copropriété. Nul sans candidat, ou quand le temps a manqué (voir sections).
neighborhood NeighborhoodResult ou nul — La vie quotidienne autour de la première adresse candidate : commerces, écoles, transports, connectivité, air, délinquance, évènements. Nul sans candidat, ou quand le temps a manqué (voir sections).
diffuseurs Diffuseurs — Sur combien de portails l'annonce est diffusée (analyse par lien).
sections liste de AnalysisSection — L'état de chacune des quatre parties de l'analyse, et pourquoi l'une manque ou est partielle : à lire avant d'interpréter un champ nul.
sources_status SourceStatus oui État de chaque source publique sur l'ensemble de l'analyse.
duration_ms entier oui Durée totale du travail, en millisecondes. (≥ 0)

AnalyseAcceptee

La réponse 202 : le travail est parti, voici où le suivre.

ChampTypeRequisSens
id chaîne oui L'identifiant de l'analyse. Son résultat reste lisible une heure, puis GET répond 404 not_found.
status chaîne oui « en_cours » : le travail est parti.
status_url chaîne oui L'adresse à relire jusqu'à ce que le résultat soit prêt (GET /v1/analyses/{id}, qui accepte aussi ?wait=).

AnalyseEnCours

La réponse 202 de GET tant que le travail dure.

ChampTypeRequisSens
id chaîne oui L'identifiant de l'analyse, le même que celui du POST.
status chaîne oui « en_cours » : relisez plus tard, ou avec ?wait=.

AnalyseEchouee

Un travail qui a échoué par notre faute ou celle d'une source : crédit libéré.

ChampTypeRequisSens
id chaîne oui L'identifiant de l'analyse, le même que celui du POST.
statut chaîne oui « echec » : le travail s'est arrêté, rien n'est débité.
code chaîne oui Pourquoi, en un mot : « source_unavailable » (une source publique ou la source des annonces n'a pas répondu — réessayez plus tard), « service_unavailable » (le service était saturé) ou « internal_error » (une faute de notre côté, consignée).
raison chaîne oui La même chose en français, affichable telle quelle.
billed booléen — Toujours faux : le crédit réservé a été rendu.

FicheDpe

Ce que GET /v1/dpe/{numero} rend : la fiche, et d'où elle vient.

ChampTypeRequisSens
numero chaîne (motif `^[0-9A-Z]{13}$`) oui Le numéro du diagnostic, treize caractères, tel qu'il figure sur l'annonce.
provenance chaîne oui « local » (le miroir du dump ADEME) ou « api » (le flux data.ademe.fr).
billed booléen oui Vrai quand cet appel a été débité ; faux en mode test.
mode chaîne oui « live » (clé réelle, facturé) ou « test » (bac à sable, gratuit).
cost_credits nombre oui Crédits débités pour cet appel ; 0 en mode test. (≥ 0)
dpe AdemeDpeRecord oui La fiche telle que le moteur la lit : adresse, commune, bien, diagnostic.

ReponseCompletude

Ce que POST /v1/listings/completeness rend.

ChampTypeRequisSens
billed booléen oui Vrai quand cet appel a été débité ; faux en mode test.
mode chaîne oui « live » (clé réelle, facturé) ou « test » (bac à sable, gratuit).
cost_credits nombre oui Crédits débités pour cet appel ; 0 en mode test. (≥ 0)
suffisant booléen oui Vrai quand rien ne vaut la peine d'être demandé : l'annonce a de quoi chercher, lancez l'analyse. Faux : champs dit quoi demander.
champs liste de MissingField — Les champs absents qui changeraient le résultat, du plus discriminant au moins ; trois au plus, sauf tous_les_champs.
message chaîne oui Phrase d'accompagnement en français, affichable telle quelle.
champs_lus liste de chaînes — Les champs du contrat que l'annonce renseignait (« property.surface_m2 »…).
tous_les_champs booléen oui Rappel de l'option reçue : la liste entière, ou les trois du site.

Compte

Ce que GET /v1/account rend.

ChampTypeRequisSens
email chaîne oui L'adresse du compte titulaire de la clé.
key CleDuCompte oui La clé qui a servi à cet appel.
balance_credits nombre — Le solde du portefeuille, en crédits. (≥ 0)
usage dictionnaire de FenetreUsage — Par fenêtre (« 24h », « 7d », « 30d », « 90d ») : appels et crédits.
tarifs dictionnaire de nombres — Le coût de chaque service, en crédits par appel.

Les objets emboîtés

AdemeDpeRecord

Fiche DPE de l'ADEME, exprimée dans les contrats de données du domaine. Volontairement bâtie sur Commune, PropertyFacts et DPEFacts plutôt que sur une structure inventée pour l'occasion : un resolver compare ainsi une fiche ADEME et une annonce dans le même langage, champ à champ. numero_dpe conserve le numéro tel que l'ADEME le publie ; s'il ne respecte pas la forme attendue, dpe.numero_ademe reste vide plutôt que de faire échouer la lecture de toute la fiche.

ChampTypeRequisSens
numero_dpe chaîne oui Le numéro du diagnostic, tel que l'ADEME le publie
adresse chaîne ou nul — L'adresse du logement telle que la BAN l'a normalisée ; nulle si le géocodage a échoué
adresse_brute chaîne ou nul — L'adresse telle que le diagnostiqueur l'a saisie, avant normalisation ; c'est là que se lit un nom de lotissement ou un complément que la BAN ignore
ban_id chaîne ou nul — Identifiant de l'adresse dans la Base Adresse Nationale
lat nombre ou nul — Latitude (WGS 84) de l'adresse géocodée ; nulle si non située
lon nombre ou nul — Longitude, avec lat
commune Commune oui La commune du logement : nom, code postal, code INSEE
property PropertyFacts oui Le logement tel que le diagnostic le décrit : type, surface, étage, année, chauffage
dpe DPEFacts oui Le diagnostic : classes, consommation, émissions, date d'établissement (précision « jour ») et fourchette de facture
desactive booléen — Vrai quand l'ADEME a retiré ce diagnostic (remplacé, annulé, corrigé). Toujours faux sur la voie « api », qui ne publie pas cette information
remplace_par chaîne ou nul — Numéro du diagnostic plus récent qui a remplacé celui-ci pour le même logement, quand la voie « local » le connaît ; nul sinon
identifiant_source chaîne ou nul — Identifiant interne de la fiche chez l'ADEME ; nul sur la voie « api »
remplace_identifiant_source chaîne ou nul — Identifiant interne du diagnostic que celui-ci remplace ; nul sinon
conso_avant_reforme_kwh_m2_an nombre ou nul — La consommation (kWh/m²/an) imprimée sur l'étiquette avant la réforme de 2026, quand la source la publie ; c'est ce chiffre qu'une annonce d'avant la réforme recopie. Nul sur la voie « api » et pour une fiche non touchée
remplace chaîne ou nul — Numéro du diagnostic antérieur que celui-ci remplace, quand il a été retrouvé
jours_herites liste de chaîne (date AAAA-MM-JJ) — Les dates du diagnostic remplacé, que celui-ci fait siennes : une annonce qui cite encore la date de l'ancien diagnostic désigne aussi celui-ci
periode_construction chaîne ou nul — Tranche de construction publiée par l'ADEME (« 1989-2000 », « avant 1948 ») ; elle complète property.annee_construction, souvent absente
date_visite chaîne (date AAAA-MM-JJ) ou nul — Jour de la visite du diagnostiqueur, quand la source le publie ; distinct de dpe.date_etablissement dans près de six cas sur dix
cout_annuel_energie_eur nombre ou nul — Coût annuel d'énergie estimé par le diagnostic, tous usages, en euros ; l'annonce en publie la fourchette (dpe.facture_energie_min / _max)

AirQualityInfo

Indice ATMO du jour, publié par l'association agréée de la région. L'indice est communal et quotidien : il décrit l'air d'une journée sur une commune, pas l'exposition d'un logement. Une adresse au bord d'un boulevard et une autre au fond d'un parc partagent le même indice.

ChampTypeRequisSens
indice entier ou nul — Indice ATMO global : 1 bon, 6 extrêmement mauvais
libelle chaîne ou nul — Lecture de l'indice, ex. « Moyen »
date_indice chaîne (date AAAA-MM-JJ) ou nul — Journée décrite par l'indice
polluants liste de PollutantIndex — Sous-indices par polluant, du plus élevé au plus faible
source chaîne ou nul — Association agréée qui publie l'indice, ex. « Atmo Hauts-de-France »
zone chaîne ou nul — Zone décrite, telle que publiée

AnalysisSection

État d'une section de l'analyse, et ce qui l'explique en français.

ChampTypeRequisSens
nom « resolution » | « enrichissement » | « quartier » | « deal_score » oui « resolution » (où est le bien), « enrichissement » (son environnement), « quartier » (la vie quotidienne), « deal_score » (le prix)
statut « ok » | « partielle » | « absente » oui « ok » ; « partielle », une source a manqué au milieu des autres — le cas ordinaire ; « absente », la section n'a pas pu être produite
detail chaîne ou nul — Pourquoi la section est absente ou partielle, en français

AntenneRelais

Un site d'antennes-relais du secteur, tel que l'Arcep le publie. Le produit dit qu'un site existe, à quelle distance, et qui l'exploite. Il ne dit pas si c'est bien ou mal — la question de l'exposition aux ondes est réglée par une réglementation nationale de valeurs limites, et l'ANFR publie les mesures faites sur le terrain. LogiScan ne mesure rien, ne modélise rien, et renvoie là où la réponse existe. C'est le vocabulaire du constat, et il vaut ici autant que pour la délinquance : un chiffre mal formulé sur ce sujet inquiète sans informer. Un site porte souvent plusieurs opérateurs. Un pylône partagé par quatre opérateurs est un site, pas quatre : les compter séparément quadruplerait le nombre affiché et laisserait croire à une concentration d'antennes qui n'existe pas. Les opérateurs sont donc regroupés sur le point.

ChampTypeRequisSens
operateurs liste de chaînes — Les opérateurs installés sur ce site, par ordre alphabétique
technologies liste de chaînes — Technologies ouvertes sur le site : « 2G », « 3G », « 4G », « 5G »
distance_m nombre ou nul — Distance au bien, en mètres
lat nombre ou nul — Latitude (WGS 84), pour poser un repère ; nulle quand la source n'a pas situé l'élément
lon nombre ou nul — Longitude, avec lat

CandidatApi

Une adresse candidate, avec son score de confiance, et son lien Google Maps.

ChampTypeRequisSens
label chaîne oui Adresse formatée, telle qu'affichée (longueur 1–…)
ban_id chaîne ou nul — Identifiant BAN de l'adresse
lat nombre ou nul — Latitude (WGS 84) du point de l'adresse, pour poser un repère ; nulle quand le point n'est pas situé
lon nombre ou nul — Longitude (WGS 84), avec lat
parcelle chaîne ou nul — Référence cadastrale de la parcelle
confidence nombre oui Score de confiance dans [0, 1] (≥ 0.0, ≤ 1.0)
method chaîne oui Ce qui a produit le candidat : « ademe_direct » (le numéro du diagnostic), « ademe_fuzzy » (le recoupement des diagnostics), « position_source » (la position que publie la source), « cadastre_terrain » (la contenance du terrain), « dvf_cadastre » (les ventes et le cadastre), « adresse_saisie » (une adresse donnée par l'appelant) (longueur 1–…)
matched_criteria liste de chaînes — Les règles qui ont concordé, par leur nom (« surface_m2 (± 15 %) ») ; un suffixe « critère non utilisé » marque ce que l'annonce ne permettait pas d'exercer. Pour lire ce qui a été comparé, voir comparaisons
diverged_criteria liste de chaînes — Les règles que ce candidat contredit, sous la même forme
comparaisons liste de CriterionComparison — Les mêmes critères, avec la valeur de l'annonce et la valeur trouvée face à face, déjà mises en forme ; vide quand le niveau n'a aucune fiche à opposer à l'annonce (niveau 4, adresse saisie)
position_approchee booléen — Vrai quand le point n'est pas celui d'un référentiel mais celui d'une prise de vue devant la façade : la Base Adresse Nationale ne connaissait que la voie, et le repère aurait été au milieu de la rue.
dpe_trouve DPEFacts ou nul — Diagnostic qui a désigné ce candidat, quand un niveau s'appuie sur l'ADEME. C'est la donnée trouvée dans la source, pas celle de l'annonce.
maps_url chaîne ou nul — Le lien Google Maps qui pose un repère sur ce candidat ; nul quand le point n'est pas situé. Un lien à ouvrir ; rien n'est chargé depuis Google.

ClayHazard

Exposition au retrait-gonflement des argiles, au point demandé. Seule donnée de ce profil qui soit vraiment ponctuelle : elle est lue aux coordonnées du bien, et non à l'échelle de la commune.

ChampTypeRequisSens
niveau entier ou nul — Code d'exposition : 0 nulle, 1 faible, 2 moyenne, 3 forte
libelle chaîne oui Intitulé publié, ex. « Exposition moyenne » (longueur 1–…)

CleDuCompte

La clé qui a servi à appeler, telle que le compte la voit.

ChampTypeRequisSens
prefixe chaîne oui Le début de la clé, seul élément conservé en clair.
libelle chaîne oui Le nom donné à la clé sur /compte/api.
mode chaîne oui « live » (facturé) ou « test » (bac à sable, gratuit).
created_at chaîne (date et heure ISO 8601) oui Quand la clé a été créée.
expires_at chaîne (date et heure ISO 8601) ou nul — Fin du sursis quand la clé a été remplacée par une rotation ; absent sinon.

ComparableApi

Une vente retenue comme comparable : ce que DVF publie, sans parcelle ni personne.

ChampTypeRequisSens
date chaîne (date AAAA-MM-JJ) oui Jour de la vente, tel que l'acte le porte.
prix_eur nombre oui Prix porté à l'acte, honoraires exclus.
surface_m2 nombre oui Surface réelle bâtie, en m².
type_local chaîne ou nul — Nature du local telle que DVF l'écrit (« Appartement », « Maison »).
voie chaîne ou nul — L'adresse de la vente, telle que DVF la publie.
distance_m nombre ou nul — Distance entre la vente et la première adresse candidate, en mètres ; nulle quand la vente n'est pas située.

ConnectivityInfo

Ce que les données de l'Arcep disent de la connectivité à cette adresse. La partie fixe est communale. « Ma connexion internet » publie l'éligibilité immeuble par immeuble, mais en fichiers départementaux de plusieurs dizaines de mégaoctets ; ce sont ses statistiques communales qui sont lues ici. fibre_disponible signifie « la fibre est déployée dans la commune », pas « ce logement est raccordable » — c'est le test d'éligibilité de l'opérateur qui répond à cela.

ChampTypeRequisSens
fibre_disponible booléen ou nul — La fibre dessert-elle au moins une partie des locaux de la commune ?
part_locaux_fibre nombre ou nul — Part des locaux de la commune éligibles à la fibre
technologies_filaires liste de FixedTechnology — Technologies d'accès fixe présentes, de la mieux déployée à la moins
couverture_mobile liste de MobileCoverage — Opérateurs mobiles installés aux abords, du plus proche au plus lointain
statuts dictionnaire de « ok » | « degraded » | « down » | « not_used » — État de la source pour chacun des deux volets, fixe et mobile

CoproprieteInfo

La copropriété d'un appartement, telle que le registre national la publie. Le registre ne dit ni les impayés ni les procédures : ce qu'il ne contient pas n'est pas promis. Une copropriété absente n'est pas une copropriété non immatriculée — la recherche est géographique, un immeuble mal situé n'apparaît pas. Un booléen nul se lit « le registre ne le dit pas ».

ChampTypeRequisSens
nom chaîne ou nul — Nom d'usage de la copropriété
adresse chaîne ou nul — Adresse de référence déclarée
distance_m nombre ou nul — Distance entre le bien et l'adresse de référence
nombre_total_lots entier ou nul — Nombre total de lots déclarés (habitation, stationnement, autres)
nombre_lots_habitation entier ou nul — Lots à usage d'habitation, de bureaux ou de commerces
nombre_lots_stationnement entier ou nul — Lots de stationnement
periode_construction chaîne ou nul — Tranche de construction déclarée, telle que le registre l'écrit (« 1949-1960 »)
type_syndic chaîne ou nul — professionnel, bénévole…
mandat_en_cours booléen ou nul — Un syndic est-il en place ? Nul : le registre ne le dit pas
syndicat_cooperatif booléen ou nul — La copropriété est-elle gérée en syndicat coopératif ? Nul : non dit
residence_service booléen ou nul — Est-ce une résidence avec services (seniors, étudiants…) ? Nul : non dit
attribution chaîne oui La mention que la licence exige (longueur 1–…)

CriterionComparison

Un critère confronté, avec les deux valeurs mises côte à côte. matched_criteria disait qu'un critère avait joué, sans dire ce qu'il avait comparé : « surface_m2 (± 15 %, fenêtre portante) » est le nom d'une règle, pas un renseignement. Le lecteur, lui, veut lire « Surface habitable — annonce 95 m², diagnostic 84,8 m² » : c'est là qu'il voit d'un coup d'œil que le diagnostic déclare dix mètres carrés de moins, et qu'il juge lui-même. Les valeurs sont déjà mises en forme : le contrat porte ce qui s'affiche, et non des flottants que chaque interface remettrait en français à sa façon. valeur_trouvee peut être vide : un critère que l'annonce ne permettait pas d'exercer se déclare inexercé plutôt que de disparaître, faute de quoi une adresse retenue sans avoir été confrontée à sa date se lirait comme une adresse dont la date concordait.

ChampTypeRequisSens
critere chaîne oui Nom du critère au contrat, ex. « surface_m2 » (longueur 1–…)
libelle chaîne oui Intitulé lisible, ex. « Surface habitable » (longueur 1–…)
valeur_annonce chaîne ou nul — Ce que l'annonce disait, déjà mis en forme
valeur_trouvee chaîne ou nul — Ce que la source publie, déjà mis en forme
concorde booléen — Faux lorsque le critère a été retenu au prix d'un écart admis
precision chaîne ou nul — Tolérance ou repli ayant permis de retenir ce critère, s'il y a lieu

DealScoreResult

Position du prix d'une annonce dans le marché local, ou refus motivé de trancher. Le score ne juge que le prix affiché au regard des ventes enregistrées autour : il ignore l'état du bien, son étage, sa vue, ses travaux et son exposition. Un logement rénové au-dessus du marché n'est pas une mauvaise affaire, et ce score ne prétend pas le dire. methodology_version accompagne chaque résultat : deux scores calculés par deux versions de la méthode ne se comparent pas.

ChampTypeRequisSens
statut « calcule » | « donnees_insuffisantes » | « annonce_incomplete » | « source_indisponible » oui « calcule », seul cas où score est renseigné ; « donnees_insuffisantes », trop peu de ventes comparables ; « annonce_incomplete », ni prix, ni surface, ni commune ; « source_indisponible », les ventes injoignables
adresse chaîne ou nul — Adresse candidate à laquelle ce score se rapporte. Nulle quand le calcul n'a pas eu d'adresse à viser — comparaison à l'échelle de la commune, ou raison de silence qui vaut pour toutes.
score nombre ou nul — Note de 0 à 10 ; nulle dès que le statut n'est pas « calcule »
libelle chaîne ou nul — Lecture du score : « bonne opportunité », « dans le marché »…
explication chaîne oui Ce que le score dit, ou pourquoi il n'y en a pas — en français (longueur 1–…)
avertissement chaîne ou nul — Réserve à afficher avec le score, quand la comparaison porte sur des grandeurs qui ne se correspondent pas tout à fait. Le cas connu : une annonce qui n'affiche qu'un prix honoraires inclus, là où DVF enregistre le prix porté à l'acte. Un score assorti d'une réserve reste un score ; une réserve tue se lirait comme une certitude.
ecart_relatif nombre ou nul — Écart au prix estimé : 0,12 signifie « 12 % au-dessus »
prix_m2_annonce nombre ou nul — Prix au m² affiché par l'annonce
prix_m2_median nombre ou nul — Prix au m² médian des ventes comparables, indexé à aujourd'hui
estimation_basse_eur nombre ou nul — Premier quartile des comparables, appliqué à la surface annoncée
estimation_mediane_eur nombre ou nul — Prix médian des comparables, appliqué à la surface annoncée
estimation_haute_eur nombre ou nul — Troisième quartile des comparables, appliqué à la surface annoncée
nb_comparables entier — Ventes retenues pour comparer (≥ 0)
ventes_examinees entier — Ventes de la commune examinées avant filtrage (≥ 0)
rayon_m nombre ou nul — Rayon autour du bien dans lequel les comparables ont été pris. Nul quand la commune entière a servi de terrain — le cas rural, faute de ventes assez proches.
etapes liste de FilterStage — Étapes du tamis des comparables, en chiffres : où les ventes disparaissent
mutations_comparables liste de chaînes — Identifiants DVF des ventes retenues comme comparables. Ils permettent à une interface de désigner, dans une liste de ventes, celles qui ont réellement servi au calcul — sans réappliquer les règles de son côté.
methodology_version chaîne oui Version de la méthode de calcul ayant produit ce résultat (longueur 1–…)
sources_status SourceStatus — État des ventes publiques (DVF) pendant ce calcul
duration_ms entier — Durée du calcul en millisecondes (≥ 0)

DelinquanceInfo

Ce que la délinquance enregistrée dit d'une commune, et ce qu'elle ne dit pas. Quatre limites de fond accompagnent ces chiffres, et l'interface doit les porter : * la maille est communale, le bien est à une adresse — une grande ville a des quartiers calmes et des quartiers agités, et le chiffre les moyenne ; * le lieu enregistré est celui du fait, pas celui du domicile — une commune qui porte une gare ou un centre commercial enregistre ce qui s'y produit, rapporté à ses seuls habitants ; * « enregistrée » n'est pas « commise » — une hausse peut signaler que les victimes portent davantage plainte ; * le millésime a un an et demi de retard — le producteur publie une fois l'an. Aucune note d'ensemble n'est calculée, et il ne faut pas en ajouter : additionner des cambriolages et des dégradations reviendrait à décider que l'un vaut l'autre. Le produit refuse déjà cela pour les risques naturels.

ChampTypeRequisSens
annee entier oui Millésime des données (≥ 2016)
indicateurs liste de IndicateurDelinquance — Indicateurs retenus, dans l'ordre où ils s'affichent
source chaîne — Producteur et licence — l'ODbL en fait une condition d'usage

Diffuseurs

Combien de portails diffusent l'annonce, et lesquels, sans leurs liens.

ChampTypeRequisSens
nombre entier oui Nombre de portails où la source des annonces a vu ce bien ; 0 hors d'une analyse par lien. Plusieurs agences : un mandat souvent non exclusif. (≥ 0)
portails liste de chaînes — Leurs noms (« leboncoin », « seloger »…), sans doublon et sans leurs liens.

EnvironnementApi

L'environnement de l'adresse retenue : risques, urbanisme, chantiers, terrain, toiture.

ChampTypeRequisSens
adresse CandidatApi oui L'adresse décrite : la première candidate de resolution.
risques RiskProfile oui Inondation, séisme, argiles, radon, risques recensés sur la commune et sites à risque autour du point — chaque famille avec son statut.
urbanisme UrbanContext oui La zone du document d'urbanisme au point, et les servitudes qui le couvrent.
projets liste de ProjetApi — Les autorisations d'urbanisme récentes autour du bien (Sitadel).
terrain TerrainInfo ou nul — La parcelle à l'adresse : sa surface, sa forme, de quel côté elle s'étend. Nul quand le cadastre n'a pas répondu ou n'a pas de parcelle à cet endroit.
solaire SolaireInfo ou nul — Ce que la toiture produirait avec des panneaux (PVGIS) ; nul quand le calcul n'a pas eu lieu.
copropriete CoproprieteInfo ou nul — La copropriété trouvée au registre national près de l'adresse, pour un appartement. Nul quand aucune n'est trouvée — ce qui ne dit pas qu'il n'y en a pas : la recherche est géographique.
sources_status SourceStatus oui État de chaque source pendant cet enrichissement.

EvenementQuartier

Un évènement public à venir autour du bien. Un acheteur qui visite un samedi matin ne sait pas qu'un marché occupe la place tous les mercredis, ni qu'un festival s'y tient chaque été. La source est contributive, et sa couverture le montre : environ une commune sur cinq a un évènement à venir. Un secteur sans évènement n'est donc pas un secteur où il ne se passe rien — c'est, le plus souvent, un secteur dont personne n'alimente l'agenda. La section disparaît dans ce cas, plutôt que d'écrire « rien à signaler ». distance_m peut être nulle : la source filtre par cercle mais ne rend pas la distance, et un évènement qu'elle n'a pas situé n'est pas placé au hasard près du bien.

ChampTypeRequisSens
titre chaîne oui Intitulé de l'évènement, tel que l'agenda l'écrit (longueur 1–…)
debut chaîne (date AAAA-MM-JJ) ou nul — Premier jour de l'évènement
fin chaîne (date AAAA-MM-JJ) ou nul — Dernier jour de l'évènement
periode chaîne ou nul — La période telle que la source l'écrit en français
lieu chaîne ou nul — Nom du lieu (salle, place, parc)
commune chaîne ou nul — Commune du lieu
distance_m nombre ou nul — Distance au bien, en mètres ; nulle quand la source n'a pas situé l'évènement
lien chaîne ou nul — Page publique de l'évènement
agenda chaîne ou nul — Agenda d'origine, qui fait foi

FenetreUsage

Les appels d'une fenêtre de temps, et ce qu'ils ont coûté.

ChampTypeRequisSens
calls entier oui Nombre d'appels facturés ou non. (≥ 0)
credits nombre oui Crédits consommés sur la fenêtre. (≥ 0)

FilterStage

Une étape de filtrage traversée par un resolver, et ce qu'il en reste. C'est la version chiffrée de ce que ResolverOutcome.detail raconte en français : « le filtre surface, 0 restant ». Le texte se lit, ces étapes se comptent — c'est sur elles que s'appuie le journal d'échec pour dire *où* les candidats disparaissent, sans avoir à relire une phrase. Deux nombres et un intitulé, sans aucune valeur venue de l'annonce : une étape est par construction anonyme et peut donc être conservée.

ChampTypeRequisSens
etape chaîne oui Intitulé du filtre, ex. « le filtre surface » (longueur 1–…)
restants entier oui Nombre d'éléments encore en lice après ce filtre (≥ 0)

FixedTechnology

Technologie d'accès fixe, et la part des locaux de la commune qu'elle dessert.

ChampTypeRequisSens
code chaîne oui Code de la technologie, ex. « ftth » (longueur 1–…)
libelle chaîne oui Intitulé en français (longueur 1–…)
part_locaux nombre oui Part des locaux de la commune éligibles à cette technologie (≥ 0.0, ≤ 1.0)

FloodRisk

Exposition de la commune au risque d'inondation. Le risque est communal, pas parcellaire : savoir qu'une commune est concernée ne dit pas qu'un logement donné l'est. Le champ se lit comme une invitation à consulter le zonage détaillé, pas comme un verdict sur le bien.

ChampTypeRequisSens
concerne booléen oui La commune est-elle recensée comme inondable ?
libelles liste de chaînes — Intitulés des risques d'inondation recensés
atlas liste de chaînes — Bassins couverts par un atlas des zones inondables

IndicateurDelinquance

Un fait de délinquance enregistré, situé par rapport à trois échelons. Le taux seul ne veut rien dire. « 8,96 cambriolages pour mille logements » ne se lit qu'en regard de ce qui se passe ailleurs : 6,73 dans le département, 5,78 dans la région, 5,63 dans le pays. C'est la comparaison qui informe, et c'est aussi ce qui empêche le chiffre de devenir un jugement — on situe, on ne qualifie pas. Le dénominateur n'est pas toujours la population, et rien ne le dit dans le nom du taux : les cambriolages de logement se rapportent au nombre de logements, les quatorze autres indicateurs aux habitants. Le champ unite le porte donc jusqu'à l'affichage, faute de quoi la page écrirait « pour 1 000 habitants » sous un chiffre qui n'en est pas un.

ChampTypeRequisSens
nom chaîne oui Intitulé publié par le SSMSI (longueur 1–…)
unite chaîne oui Ce à quoi le taux se rapporte (longueur 1–…)
commune nombre ou nul — Taux de la commune ; vide quand le secret statistique le masque
departement nombre ou nul — Le même taux à l'échelle du département, pour situer
region nombre ou nul — Le même taux à l'échelle de la région
france nombre ou nul — Le même taux à l'échelle de la France

MissingField

Un champ absent qu'il vaut la peine de demander, et ce que sa venue changerait. champ porte le nom du contrat de données, préfixé de sa famille (dpe.date_etablissement) : une interface peut donc mettre en évidence le bon champ de son formulaire sans table de correspondance.

ChampTypeRequisSens
champ chaîne oui Le nom du champ dans le contrat, préfixé de sa famille (« dpe.date_etablissement », « property.surface_m2 »)
intitule chaîne oui Nom du champ en français, tel qu'il s'affiche à côté d'une case à remplir
pourquoi chaîne oui Ce que ce champ apporterait au résultat, en une phrase
aide chaîne oui Où le chercher sur la page d'origine

MobileCoverage

Présence d'un opérateur mobile aux abords de l'adresse. Ce qui est mesuré est la distance au site le plus proche de cet opérateur, non une couverture simulée : l'Arcep publie ses cartes de couverture en fichiers géographiques lourds, alors que la liste des sites ouverts commercialement est précise, datée, et suffit à dire quels opérateurs sont installés dans le secteur. Un site proche ne dit rien de la réception à l'intérieur du logement.

ChampTypeRequisSens
operateur chaîne oui Nom de l'opérateur, ex. « Orange » (longueur 1–…)
technologies liste de chaînes — Technologies ouvertes sur le site : « 2G », « 3G », « 4G », « 5G »
distance_site_m nombre ou nul — Distance au site le plus proche de cet opérateur, en mètres

NearbyAmenity

Équipement de la vie courante situé à proximité de l'adresse. nom est presque toujours vide, et c'est normal : la Base permanente des équipements publie le type d'un équipement (« Boulangerie-pâtisserie »), pas son enseigne. Le champ existe pour les sources qui, elles, la publient — les écoles, par exemple, portent bien un nom.

ChampTypeRequisSens
categorie « alimentation » | « sante » | « education » oui « alimentation », « sante » ou « education » : la famille de l'équipement
type chaîne oui Type d'équipement, ex. « Boulangerie-pâtisserie » (longueur 1–…)
nom chaîne ou nul — Enseigne, lorsque la source la publie ; vide pour la BPE
distance_m nombre ou nul — Distance à l'adresse de référence, en mètres
code chaîne ou nul — Code du type d'équipement, ex. « B207 »
lat nombre ou nul — Latitude (WGS 84), pour poser un repère ; nulle quand la source n'a pas situé l'élément
lon nombre ou nul — Longitude, avec lat

NeighborhoodResult

La vie quotidienne du quartier d'une adresse résolue. Cinq sources indépendantes, interrogées en parallèle, qui échouent chacune de son côté. Le dictionnaire statuts distingue famille par famille « la source n'a rien dit » de « il n'y a rien » — sans lui, une panne de l'annuaire de l'éducation se lirait « aucune école à proximité ». La cinquième, les transports en commun, ne se lit pas sur le réseau mais dans un miroir local : c'est la seule dont l'absence signifie « pas installé » plutôt que « en panne », et c'est aussi pourquoi l'interface efface sa section quand elle ne rend rien, au lieu d'écrire « aucun transport à proximité ». Le dire serait un jugement là où ce n'est peut-être qu'une lacune de données.

ChampTypeRequisSens
amenities liste de NearbyAmenity — Équipements de la vie courante, du plus proche au plus lointain
schools liste de SchoolInfo — Établissements scolaires, du plus proche au plus lointain
transit_stops liste de TransitStop — Arrêts de transport en commun, du plus proche au plus lointain
transit_source TransitSource ou nul — Réseaux cités et date des données GTFS, exigés par leurs licences
connectivity ConnectivityInfo ou nul — Fibre, technologies fixes et couverture mobile à la commune ; nul = pas de réponse
antennes liste de AntenneRelais — Sites d'antennes-relais du secteur, du plus proche au plus lointain
evenements liste de EvenementQuartier — Évènements publics à venir autour du bien, du plus proche dans le temps
air_quality AirQualityInfo ou nul — Indice Atmo du jour pour la commune ; nul = commune absente du flux ou pas de réponse
delinquance DelinquanceInfo ou nul — Délinquance enregistrée de la commune, comparée à trois échelons
statuts dictionnaire de « ok » | « degraded » | « down » | « not_used » — État de la source pour chaque famille d'informations
sources_status SourceStatus — État de chaque source pendant la description du quartier
duration_ms entier — Durée totale en millisecondes (≥ 0)

NotesParCandidat

Pour une adresse candidate, une note de prix — ou une fourchette — par rayon.

ChampTypeRequisSens
adresse chaîne ou nul oui Le label de l'adresse candidate à laquelle ces notes se rapportent.
par_rayon dictionnaire de DealScoreResult oui Clé : le rayon en mètres (« 300 », « 500 »…), valeur : le résultat.

PluZone

Zone du document d'urbanisme couvrant le point demandé. code est celui du règlement, tel que la commune l'a écrit (« UCM1.1.1 ») ; type_zone est la classification nationale, la seule comparable d'une commune à l'autre.

ChampTypeRequisSens
code chaîne ou nul — Code de la zone au règlement du document, ex. « UCM1.1.1 »
libelle chaîne ou nul — Intitulé de la zone, tel que publié
type_zone chaîne ou nul — Classification nationale : « U » urbaine, « AU » à urbaniser, « A » agricole, « N » naturelle
document chaîne ou nul — Nature du document dont la zone est issue : PLU, PLUi, PSMV, CC…
date_validation chaîne (date AAAA-MM-JJ) ou nul — Date de validation du document, si elle est publiée

PollutantIndex

Sous-indice de qualité de l'air d'un polluant, de 1 (bon) à 6 (extrêmement mauvais).

ChampTypeRequisSens
code chaîne oui Code du polluant, ex. « pm10 » (longueur 1–…)
libelle chaîne oui Nom du polluant en français (longueur 1–…)
indice entier oui Sous-indice ATMO du polluant (≥ 1, ≤ 6)

ProjetApi

Un permis de construire voisin, sans sa parcelle.

ChampTypeRequisSens
type_autorisation chaîne oui Type d'autorisation d'urbanisme : « PC » permis de construire, « DP » déclaration préalable, « PA » permis d'aménager…
nature chaîne oui Résumé du projet, en une ligne
distance_m nombre ou nul — Distance entre le bien et le terrain du projet, en mètres ; nulle quand le cadastre n'a pas su le situer — le projet est alors signalé sans distance.
date_autorisation chaîne (date AAAA-MM-JJ) ou nul — Date à laquelle l'autorisation a été accordée.
etat chaîne oui Avancement du chantier : « autorise », « commence », « termine », « annule » ou « inconnu ».
logements_crees entier ou nul — Nombre de logements créés, quand la déclaration le dit.
surface_m2 nombre ou nul — Surface de plancher créée, en m².
adresse chaîne ou nul — Adresse du projet, telle que déclarée.
lat nombre ou nul — Position du terrain du projet, pour une carte ; vide exactement quand distance_m l'est.
lon nombre ou nul — Longitude, avec lat.

RadonPotential

Potentiel radon de la commune, de 1 (faible) à 3 (significatif).

ChampTypeRequisSens
potentiel entier oui Classe de potentiel radon (≥ 1, ≤ 3)
libelle chaîne oui Lecture en français de la classe (longueur 1–…)

RecordedRisk

Risque naturel ou technologique recensé par l'État sur la commune.

ChampTypeRequisSens
code chaîne oui Code du risque au référentiel GASPAR (longueur 1–…)
libelle chaîne oui Intitulé du risque, tel que publié (longueur 1–…)

ResolutionApi

La résolution telle que l'API la rend : les mêmes candidats, avec leur lien Maps.

ChampTypeRequisSens
request_id chaîne oui Identifiant de la demande, repris dans le journal des appels (longueur 1–…)
status « resolved » | « ambiguous » | « unresolved » oui Si le moteur a tranché (et non s'il a raison) : « resolved », un niveau a désigné un bien ; « ambiguous », des candidats existent mais aucun niveau n'a su choisir ; « unresolved », aucun candidat. La sûreté se lit sur confidence_label, qui peut valoir « moyen » sur un « resolved ».
candidates liste de CandidatApi — Les adresses candidates, de la plus sûre à la moins sûre, cinq au plus. Vide quand rien n'a été trouvé : c'est une réponse, pas une erreur.
confidence_label « eleve » | « moyen » | « faible » ou nul — Étiquette du premier candidat, le mieux noté : « eleve » à partir de 0,80, « moyen » à partir de 0,50, « faible » en dessous ; nulle si aucun candidat
resolved_by_level entier ou nul — Niveau de résolution ayant produit le premier candidat, le mieux noté
levels_attempted liste d'entiers — Les niveaux parcourus, dans l'ordre : 1, le numéro du diagnostic ; 2, le recoupement des diagnostics de la commune (et la position que publie la source) ; 3, les repères cités dans le texte, puis la contenance du terrain ; 4, les ventes et le cadastre. La descente s'arrête dès qu'un niveau conclut à 0,80 ou plus
sources_status SourceStatus — État de chaque source publique pendant la résolution
search_area objet ou nul — Secteur où se trouve vraisemblablement le bien, déduit des repères cités dans l'annonce. Renseigné même sans candidat : ne pas savoir l'adresse n'empêche pas de savoir le quartier.
duration_ms entier — Durée totale en millisecondes (≥ 0)
interrompue booléen — La descente a-t-elle été écourtée faute de temps ? Vrai quand un niveau a été coupé, ou n'a pas été entamé, parce que le temps imparti était écoulé. Les candidats déjà trouvés sont conservés — c'est tout l'objet — mais l'appelant doit pouvoir dire que la recherche n'est pas allée à son terme, plutôt que de présenter une liste écourtée comme complète.

RiskProfile

Ce que les bases publiques disent des risques à cette adresse. Chaque famille est facultative : None signifie « pas de réponse », ce qui n'a rien à voir avec « pas de risque ». Le dictionnaire statuts permet de faire la différence, famille par famille.

ChampTypeRequisSens
inondation FloodRisk ou nul — Ce que l'atlas des zones inondables dit de la commune ; nul = pas de réponse (voir statuts)
seisme SeismicZone ou nul — Zone de sismicité de la commune (1 à 5) ; nul = pas de réponse
argiles ClayHazard ou nul — Exposition au retrait-gonflement des argiles, lue au point ; nul = pas de réponse
radon RadonPotential ou nul — Potentiel radon de la commune (1 à 3) ; nul = pas de réponse
risques_recenses liste de RecordedRisk — Liste brute des risques recensés sur la commune
sites liste de SiteARisque — Ce que les bases publiques recensent autour du point
statuts dictionnaire de « ok » | « degraded » | « down » | « not_used » — État de la source pour chaque famille de risques

SchoolIndicators

Résultats nationaux publiés pour un collège ou un lycée. La valeur ajoutée compte plus que le taux de réussite, et c'est tout l'objet de ce modèle. Un lycée qui affiche 98 % de réussite dans un quartier favorisé n'enseigne pas forcément mieux qu'un lycée à 82 % ailleurs : le taux brut mesure d'abord le public accueilli. La valeur ajoutée, elle, compare le résultat obtenu à celui qu'on attendait *de ces élèves-là* — elle est publiée pour cette raison précise, et c'est elle qui dit quelque chose de l'établissement. Un écart positif se lit « fait mieux que ce que son public laissait attendre ».

ChampTypeRequisSens
examen « brevet » | « baccalaureat » oui Examen mesuré : brevet ou baccalauréat
annee entier oui Millésime de la session (≥ 1990, ≤ 2100)
taux_reussite nombre ou nul — Taux de réussite brut, en pourcentage
valeur_ajoutee nombre ou nul — Écart au taux attendu compte tenu du public accueilli, en points. Négatif quand l'établissement fait moins bien qu'attendu.
taux_mentions nombre ou nul — Part des candidats reçus avec mention, en pourcentage
nb_candidats entier ou nul — Nombre de candidats présentés
source chaîne oui Jeu de données d'origine, cité pour que le chiffre soit vérifiable (longueur 1–…)

SchoolInfo

Établissement scolaire proche, tel que l'annuaire de l'éducation le publie. secteur dit public ou privé, la seule acception du mot que l'annuaire renseigne. Il ne dit rien de la carte scolaire : le secteur de rattachement d'un logement se décide commune par commune et ne fait l'objet d'aucune base nationale.

ChampTypeRequisSens
nom chaîne oui Nom de l'établissement (longueur 1–…)
type chaîne oui Nature : « Ecole », « Collège », « Lycée »… (longueur 1–…)
distance_m nombre ou nul — Distance à l'adresse de référence, en mètres
secteur chaîne ou nul — Secteur public ou privé, quand l'annuaire le renseigne
education_prioritaire chaîne ou nul — Appartenance à l'éducation prioritaire : « REP », « REP+ »
commune chaîne ou nul — Commune de l'établissement
lat nombre ou nul — Latitude (WGS 84), pour poser un repère ; nulle quand la source n'a pas situé l'élément
lon nombre ou nul — Longitude, avec lat
uai chaîne ou nul — Identifiant national de l'établissement. C'est la seule clé qui rapproche l'annuaire des jeux de résultats — deux établissements peuvent porter le même nom dans deux communes voisines.
nature « maternelle » | « elementaire » | « primaire » | « college » | « lycee » ou nul — Maternelle, élémentaire, primaire, collège ou lycée
indicateurs SchoolIndicators ou nul — Résultats nationaux, quand ils existent. Vides pour une école maternelle ou élémentaire : l'État ne publie aucun résultat par école primaire, et cette absence est une décision, pas une lacune.

SeismicZone

Zone de sismicité réglementaire de la commune, de 1 (très faible) à 5 (forte).

ChampTypeRequisSens
zone entier oui Numéro de la zone de sismicité (≥ 1, ≤ 5)
libelle chaîne oui Intitulé publié, ex. « 1 - TRES FAIBLE » (longueur 1–…)

Servitude

Servitude d'utilité publique dont l'assiette couvre le point demandé.

ChampTypeRequisSens
code chaîne ou nul — Catégorie officielle, ex. « AC1 »
libelle chaîne oui Intitulé de la servitude (longueur 1–…)
nature chaîne ou nul — Nature de l'assiette, ex. « Périmètre des abords »

SiteARisque

Un site recensé autour du bien, et ce que la source en dit. La différence avec le reste du profil est de nature, pas de degré. Les autres familles portent un *classement réglementaire* qui vaut pour toute une commune — « sismicité 3 », « potentiel radon 2 ». Celles-ci portent des objets situés : une usine à quatre cents mètres, une ancienne fonderie sur la parcelle d'à côté, une cavité sous la rue. On dit ce que la source recense et à quelle distance ; on n'en tire ni note, ni couleur, ni « quartier à risque ». C'est le vocabulaire du constat, et il compte ici autant que pour la délinquance : une ancienne activité industrielle ne dit rien de ce qu'on respire aujourd'hui, et le laisser croire serait inventer une mesure que personne n'a faite.

ChampTypeRequisSens
famille « installation_classee » | « ancien_site_industriel » | « cavite » | « mouvement_terrain » oui « installation_classee » (installation classée pour la protection de l'environnement), « ancien_site_industriel » (inventaire des anciens sites industriels et activités de service), « cavite » (cavité souterraine recensée), « mouvement_terrain » (mouvement de terrain recensé)
libelle chaîne oui Ce que la source nomme : raison sociale, type…
detail chaîne ou nul — Activité, régime, fiabilité — ce que la source ajoute au nom
seveso chaîne ou nul — Le statut Seveso publié, quand il existe, sans déduction
distance_m nombre ou nul — Distance au bien. Nulle quand la source n'a pas situé le site
lat nombre ou nul — Latitude (WGS 84), pour poser un repère ; nulle quand la source n'a pas situé l'élément
lon nombre ou nul — Longitude, avec lat
date_maj chaîne (date AAAA-MM-JJ) ou nul — Date de mise à jour publiée. Un relevé de 2014 se dit comme tel
fiche_url chaîne ou nul — La fiche publique du site, quand la source en publie une

SolaireInfo

Ce qu'une toiture produirait, si on y posait des panneaux. Un potentiel théorique, pas un devis : la production dépend de l'ensoleillement, de l'inclinaison et de l'orientation ; le prix d'une installation dépend de l'installateur, du raccordement, de la charpente et des aides du moment. Le produit refuse déjà d'écrire un montant d'aide à la rénovation, et pour la même raison. orientation_supposee est la réserve principale : LogiScan ne connaît pas la pente ni l'orientation du toit — aucune source publique ne les publie. Sans elle, un potentiel calculé pour un sud théorique se lirait comme un potentiel mesuré sur ce toit-ci.

ChampTypeRequisSens
production_kwh_an nombre oui Production annuelle estimée, en kWh (> 0)
puissance_kwc nombre oui Puissance crête retenue, en kWc (> 0)
inclinaison_degres entier oui Inclinaison supposée du toit (≥ 0, ≤ 90)
orientation chaîne oui Orientation retenue, en toutes lettres (longueur 1–…)
orientation_supposee booléen — Vrai quand l'orientation est une hypothèse
attribution chaîne oui La mention que la source exige (longueur 1–…)

SourceStatus

État de chaque source publique à l'issue d'une résolution ou d'un enrichissement. Quatre états, les mêmes pour toutes : « ok », la source a répondu et a été lue ; « degraded », elle a répondu mais sa réponse était inexploitable ; « down », elle n'a pas répondu ; « not_used », elle n'a pas été sollicitée pour cet appel. Une source « down » ou « degraded » laisse un vide dans la réponse, pas un zéro : ce vide se lit « la source n'a rien dit », pas « il n'y a rien ».

ChampTypeRequisSens
ademe « ok » | « degraded » | « down » | « not_used » — ADEME : les diagnostics de performance énergétique (DPE).
ademe_local « ok » | « degraded » | « down » | « not_used » — D'où les diagnostics ont été lus, et non une source de plus : « ok », depuis la copie locale de l'ADEME ; « down », il a fallu se rabattre sur l'API ; « not_used », aucune copie locale. La donnée est la même.
ban « ok » | « degraded » | « down » | « not_used » — Base Adresse Nationale : le géocodage des adresses.
ign « ok » | « degraded » | « down » | « not_used » — Géoplateforme de l'IGN : les lieux nommés que cite l'annonce (parcs, quartiers).
dvf « ok » | « degraded » | « down » | « not_used » — Demandes de valeurs foncières : les ventes enregistrées.
cadastre « ok » | « degraded » | « down » | « not_used » — Cadastre : les parcelles, pour la résolution comme pour les chantiers.
georisques « ok » | « degraded » | « down » | « not_used » — Géorisques : inondation, séisme, argiles, radon, sites à risque.
gpu « ok » | « degraded » | « down » | « not_used » — Géoportail de l'urbanisme : zonage et servitudes.
sitadel « ok » | « degraded » | « down » | « not_used » — Sitadel : les autorisations d'urbanisme (permis, déclarations).
bpe « ok » | « degraded » | « down » | « not_used » — Base permanente des équipements (INSEE) : commerces, santé, écoles.
education « ok » | « degraded » | « down » | « not_used » — Ministère de l'Éducation nationale : établissements et résultats.
arcep « ok » | « degraded » | « down » | « not_used » — Arcep : fibre, technologies fixes et couverture mobile.
atmo « ok » | « degraded » | « down » | « not_used » — Atmo : l'indice de qualité de l'air du jour.
transit « ok » | « degraded » | « down » | « not_used » — Arrêts de transport en commun, lus dans une copie locale des réseaux (Point d'accès national) : « not_used » y signifie le plus souvent « aucune copie installée ».

TerrainInfo

La forme d'un terrain, et de quel côté il s'étend. Une annonce écrit « exposition sud-ouest » et personne ne peut le vérifier. Le plan cadastral publie le contour de la parcelle tel qu'il est levé, la Base Adresse Nationale publie le point d'adresse — qui se trouve du côté de la voie. La direction qui va du point d'adresse vers le centre du terrain est celle où le terrain s'étend, c'est-à-dire, pour une maison individuelle, celle du jardin. C'est une approximation, et le produit le dit : le point d'adresse n'est pas la porte d'entrée, et une parcelle en L a un centre qui ne veut pas dire grand-chose. Elle a en revanche une propriété que rien d'autre n'a — elle se vérifie, le contour étant public. L'orientation se tait sous une profondeur minimale. Sur un terrain de dix mètres, l'écart entre le point d'adresse et le centre est du même ordre que l'imprécision du point : la direction serait du bruit présenté comme une information.

ChampTypeRequisSens
aire_m2 nombre oui Aire calculée sur le contour, trous déduits (≥ 0)
contenance_m2 entier ou nul — Contenance cadastrale publiée — la grandeur juridique, qui fait foi
orientation chaîne ou nul — Direction dans laquelle le terrain s'étend, en toutes lettres
cap_degres nombre ou nul — La même direction, en degrés depuis le nord
profondeur_m nombre ou nul — Distance du point d'adresse au centre du terrain

TransitSource

D'où viennent les arrêts affichés, et de quand ils datent. Ce n'est pas une politesse, c'est une condition d'usage. Les jeux de données du Point d'accès national sont publiés sous des licences — Licence Ouverte, ODbL selon les réseaux — qui exigent la mention de la source. Le modèle la porte à côté des arrêts eux-mêmes, pour la même raison que l'attribution d'un fond de carte vit à côté de la couche : séparés, les deux finissent par diverger, et la page cite alors une source qu'elle n'affiche pas.

ChampTypeRequisSens
reseaux liste de chaînes — Noms des réseaux dont un arrêt est affiché
date_donnees chaîne (date AAAA-MM-JJ) ou nul — Date de l'import le plus ancien parmi les arrêts affichés

TransitStop

Arrêt de transport en commun proche de l'adresse. Ce que la Base permanente des équipements ne contenait pas. Le domaine « transports » de la BPE tient en cinq codes — taxi, stations-service, parkings, aéroport, gares — et ne recense aucun arrêt de bus ou de métro : un arrêt n'est pas un équipement au sens de l'Insee. Ces arrêts-ci viennent des fichiers GTFS que les réseaux publient sur le Point d'accès national, importés une fois par mois dans un miroir local. passages_jour est une fréquence indicative, et le mot compte : c'est le nombre de passages comptés sur une journée de semaine type, tous sens et toutes lignes confondus. Il distingue un arrêt desservi quatre fois par jour d'un arrêt desservi toutes les cinq minutes — ce qui est la seule question qu'un acheteur se pose. Il ne dit ni les horaires, ni les correspondances, ni ce qui circule le dimanche : LogiScan n'importe pas les horaires détaillés, qui pèsent l'essentiel de la masse d'un GTFS et ne servent pas ici. temps_marche_min est calculé à vol d'oiseau : c'est un ordre de grandeur, pas un itinéraire, et l'interface doit le dire comme elle le dit déjà des commerces.

ChampTypeRequisSens
nom chaîne oui Nom de l'arrêt, tel que le réseau le publie (longueur 1–…)
mode « metro » | « tram » | « train » | « bus » | « ferry » | « funiculaire » | « autre » oui Mode de transport desservant l'arrêt
lignes liste de chaînes — Noms courts des lignes desservant l'arrêt, ex. « 2 », « CO1 »
distance_m nombre ou nul — Distance à l'adresse de référence, en mètres
temps_marche_min entier ou nul — Temps de marche estimé à vol d'oiseau, en minutes
passages_jour entier ou nul — Passages comptés un jour de semaine type ; vide si non calculable
lat nombre ou nul — Latitude (WGS 84), pour poser un repère ; nulle quand la source n'a pas situé l'élément
lon nombre ou nul — Longitude, avec lat

UrbanContext

Ce que le document d'urbanisme dit du point demandé.

ChampTypeRequisSens
zonage PluZone ou nul — La zone du document d'urbanisme qui couvre le point ; nul = pas de réponse ou pas de document
servitudes liste de Servitude — Servitudes notables couvrant le point
statuts dictionnaire de « ok » | « degraded » | « down » | « not_used » — État de la source pour chaque famille d'informations

Miroir des diagnostics : dump ADEME chargé le 23/09/2026.Ventes : DVF, millésimes 2021, 2022, 2023, 2024, 2025 (Etalab). Le schéma qui fait foi est servi sur /v1/openapi.json.