---
title: "Un DPE par son numéro, ou les DPE d'un disque ou d'une commune"
method: GET
path: "/dpe/{numero_dpe}"
---

# Un DPE par son numéro, ou les DPE d'un disque ou d'une commune

`GET /dpe/{numero_dpe}`

## Request

- Base URL: `https://pillr.fr/api/v1`
- URL: `https://pillr.fr/api/v1/dpe/{numero_dpe}`
- Auth: HTTP bearer

Un DPE par son numéro (logement existant ou neuf, tertiaire, ou d'avant juillet 2021) avec toutes ses colonnes ADEME : étiquettes, consommations et émissions par usage et par énergie, coûts, déperditions, isolation, chauffage, eau chaude, ventilation, copropriété, identifiant RNB. Ou les DPE de logements existants autour d'un point (2000 m au plus, le plus proche d'abord) ou dans une commune (le plus récent d'abord), filtrés par étiquette, GES, surface, type de bâtiment et date : le DPE inversé. Les annonces dont l'empreinte concorde avec le DPE sont jointes. Le paramètre champs réduit chaque DPE aux champs demandés. Coût : 1 crédit par élément rendu.

## Path parameters

- `numero_dpe` string, required: Numéro du DPE à l'ADEME, ex. 2435E0123456X.

## Response `200`

Réponse servie et débitée (sauf réponse identique déjà servie dans les 24 h).

- object
  - `recherche` object, required
    - `mode` 'numero' | 'point' | 'commune', required
    - `insee` string, nullable, required
    - `lat` number, nullable, required
    - `lon` number, nullable, required
    - `rayon_m` integer, nullable, required
  - `donnees` object[], required
    - `numero_dpe` string, required
    - `source` 'existant' | 'neuf' | 'tertiaire' | 'ancien': existant, neuf, tertiaire (depuis juillet 2021) ou ancien (avant juillet 2021).
    - `etabli_le` string, nullable
    - `fin_validite` string, nullable
    - `remplace` string, nullable
    - `etiquette` 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G', nullable
    - `ges` 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G', nullable
    - `conso_kwh_m2` number, nullable
    - `ges_kg_m2` number, nullable
    - `surface` number, nullable
    - `type` string, nullable
    - `periode` string, nullable
    - `annee_construction` integer, nullable
    - `etage` integer, nullable
    - `complement` string, nullable
    - `id_rnb` string, nullable: Identifiant du bâtiment au Référentiel national des bâtiments.
    - `copropriete` string, nullable: Numéro d'immatriculation de la copropriété au registre national.
    - `cle_ban` string, nullable
    - `adresse_ban` string, nullable
    - `insee` string, nullable
    - `code_postal` string, nullable
    - `lat` number, nullable
    - `lon` number, nullable
    - `distance_m` integer, nullable: Distance au point demandé, en mètres ; null hors d'une recherche autour d'un point.
    - `interdiction_location` string, nullable: Premier jour où la location d'un logement de cette classe est interdite (AAAA-MM-JJ), selon le calendrier de la loi Climat et résilience en métropole (G 2025, F 2028, E 2034). null : classe sans échéance, DPE absent, ou adresse hors de la métropole (le calendrier des outre-mer n'est pas servi).
    - `mois_restants` integer, nullable: Mois pleins avant l'échéance ; 0 quand l'interdiction est déjà en vigueur ; null sans échéance.
    - `annonces_rattachees` object[]: Annonces dont l'empreinte (étiquettes, consommation, surface, adresse) concorde avec ce DPE.
      - `id` string, nullable, required: Identifiant de l'annonce sur son portail (lbc:, bienici:, seloger:), quand Pillr le reconnaît.
      - `parue_le` string, nullable, required
      - `active` boolean, nullable, required
      - `ecart_surface` number, nullable, required: Écart entre la surface de l'annonce et celle du DPE, en m².
    - `ademe` object: Toutes les colonnes du DPE telles que l'ADEME les publie (consommations et coûts par usage et par énergie, déperditions, isolation, systèmes).
    - `qualite` object: Ce qui permet de juger la valeur : nombre, provenance, incertitude, drapeaux, date et source.
      - `n` integer, nullable, required: Nombre d'observations derrière la valeur ; null si sans objet.
      - `provenance` 'mesure' | 'estime', nullable, required: mesure : observé sur la donnée ; estime : modèle, barème ou imputation ; null : sans objet.
      - `incertitude` object, nullable, required: Incertitude de la valeur : fourchette et demi-largeur.
        - `demi_largeur_pct` number, nullable, required: Demi-largeur de la fourchette, en % de la valeur.
        - `bas` number, nullable, required
        - `haut` number, nullable, required
      - `drapeaux` string[], required: Ce qui doit faire lire la valeur avec prudence ; vide si rien.
      - `methode` string, nullable, required: Méthode de calcul ou de rattachement, en clair.
      - `donnees_du` string, nullable, required: Date de la donnée (AAAA-MM-JJ ou horodatage ISO 8601).
      - `source` string, required: Source publique ou moteur Pillr, en clair.
  - `limites` string[], required
  - `curseur_suivant` string, nullable, required: Curseur de la page suivante, à repasser dans curseur ; null sur la dernière page.
  - `credits` object, required: Crédits débités par cet appel (réservés, pour une tâche en cours), et crédits encore utilisables ce mois avant la coupure : crédits offerts, crédits inclus du mois et crédits facturables sous le plafond de dépense (null si inconnus ou en bac à sable).
    - `debites` integer, required
    - `restants` integer, nullable, required

## Other responses

- `304`: Non modifiée depuis l'ETag fourni : rien n'est débité.
- `400`: Paramètres invalides ; Curseur invalide
- `401`: Clé d'API absente
- `402`: Crédits insuffisants ; Carte requise ; Plafond mensuel de dépense atteint
- `403`: Portée insuffisante
- `404`: Ressource absente : rien n'est débité
- `429`: Trop de requêtes par minute
- `500`: Erreur interne
- `503`: API indisponible ; Donnée momentanément indisponible ; Opération coupée sur ce créneau

---

[API](https://skmtc.dev/pillr/apis/api-pillr.md) · [All operations](https://skmtc.dev/pillr/apis/api-pillr/llms.txt) · [OpenAPI document](https://skmtc.dev/pillr/apis/api-pillr/revisions/218b2866bd6c?raw)
