LogiScan

Lire un diagnostic : GET /v1/dpe/{numero}

Treize caractères, une fiche. Le service dit d'où elle vient — le miroir du dump complet ou l'API ADEME — parce que les deux ne sont pas à jour au même instant.

GET /v1/dpe/{numero} 0,1 crédits Lecture d'un diagnostic énergétique

Le numéro

Le numéro ADEME d'un diagnostic compte treize caractères, chiffres ou lettres majuscules ; il figure sur le diagnostic lui-même et, souvent, dans une annonce. Un numéro mal formé est refusé (422) sans rien facturer.

Provenance : miroir ou flux

LogiScan tient un miroir local du dump complet que l'ADEME publie, parce que son API en ligne ne charge plus qu'une partie des diagnostics déposés. Le service lit le miroir d'abord et l'API en secours — un numéro absent du miroir peut avoir été déposé après la date du dump. provenance vaut local ou api ; la date de chargement du dump est en bas de page.

Un numéro inconnu des deux rend 404 not_found, facturé : le référentiel a été consulté. Un référentiel muet rend 503 source_unavailable, et le crédit revient.

GET /v1/dpe/BACASABLE0001 La fiche d'un diagnostic 0,1 crédits

Treize caractères, chiffres ou lettres majuscules. provenance dit si la fiche vient du miroir local du fichier ADEME (local) ou du flux en ligne (api). Un numéro inconnu du référentiel rend 404 — facturé, le référentiel a été consulté.

curl
curl -s 'https://logiscan.fr/v1/dpe/BACASABLE0001' \
  -H 'Authorization: Bearer lsk_test_VOTRE_CLE'
Python · httpx
import httpx

CLE = "lsk_test_VOTRE_CLE"

reponse = httpx.get(
    "https://logiscan.fr/v1/dpe/BACASABLE0001",
    headers={"Authorization": f"Bearer {CLE}"},
    timeout=30,
)
print(reponse.status_code, reponse.json())
JavaScript · fetch
const CLE = "lsk_test_VOTRE_CLE";

const reponse = await fetch("https://logiscan.fr/v1/dpe/BACASABLE0001", {
  method: "GET",
  headers: { Authorization: `Bearer ${CLE}` },
});
console.log(reponse.status, await reponse.json());
Réponse du bac à sable — ce qu'une clé lsk_test_ reçoit, données fictives
JSON · 200
{
  "numero": "BACASABLE0001",
  "provenance": "local",
  "billed": false,
  "mode": "test",
  "cost_credits": 0.0,
  "dpe": {
    "numero_dpe": "BACASABLE0001",
    "adresse": "12 rue de l'Exemple 99999 Villeneuve-sur-Fixture",
    "ban_id": "99999_0001_00012",
    "lat": 48.0,
    "lon": 2.0,
    "commune": {
      "nom": "Villeneuve-sur-Fixture",
      "code_postal": "99999",
      "code_insee": "99999"
    },
    "property": {
      "type_bien": "appartement",
      "surface_m2": 54.7,
      "surface_terrain_m2": null,
      "nb_pieces": null,
      "nb_chambres": null,
      "nb_salles_de_bain": null,
      "prix_eur": null,
      "prix_hors_honoraires": null,
      "honoraires_acquereur": null,
      "etage": 1,
      "annee_construction": 1800,
      "chauffage": null
    },
    "dpe": {
      "numero_ademe": "BACASABLE0001",
      "date_etablissement": "2026-07-30",
      "date_precision": "jour",
      "classe_energie": "E",
      "classe_ges": "C",
      "conso_kwh_m2_an": 321.3,
      "emission_ges_kg_m2_an": 12.8,
      "facture_energie_min": null,
      "facture_energie_max": null
    },
    "desactive": false,
    "remplace_par": null,
    "identifiant_source": null,
    "remplace_identifiant_source": null,
    "conso_avant_reforme_kwh_m2_an": null,
    "remplace": null,
    "jours_herites": [],
    "periode_construction": "avant 1948",
    "date_visite": "2026-07-29",
    "cout_annuel_energie_eur": 1944.0
  }
}

Ce que porte la fiche

dpe est la fiche telle que le moteur la lit : l'adresse et la commune, le bien (type, surface, étage, année de construction, chauffage), le diagnostic (classes, consommations, émissions, dates, précision de la date), et deux indications d'état — desactive (le diagnostic a été retiré par son auteur) et remplace_par (un diagnostic plus récent existe pour le même logement). Les champs sont décrits un à un dans la référence (AdemeDpeRecord).

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