---
title: "Échéance de location et coût de sortie de passoire"
method: POST
path: "/energie/sortie-passoire"
---

# Échéance de location et coût de sortie de passoire

`POST /energie/sortie-passoire`

## Request

- Base URL: `https://pillr.fr/api/v1`
- URL: `https://pillr.fr/api/v1/energie/sortie-passoire`
- Auth: HTTP bearer

L'échéance d'interdiction de louer d'un logement selon son étiquette (calendrier de la loi Climat et résilience en métropole : G 2025, F 2028, E 2034) et les mois restants. Pour une étiquette E, F ou G, le coût pour atteindre D, C ou B, mesuré sur les audits énergétiques ADEME de logements comparables (type, zone climatique, période de construction) : médiane et quartiles, euros par m², coût à la surface du bien, part des audits qui dépassent la cible, finesse de la cellule retenue. Une estimation d'auditeur, pas un devis. Métropole seulement : le calendrier des outre-mer n'est pas servi. Coût : 1 crédit par appel réussi.

## Request body

- object
  - `etiquette` 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G', required: Étiquette DPE du logement.
  - `type` 'appartement' | 'maison', required: appartement ou maison.
  - `insee` string: Code INSEE de la commune : donne la zone climatique et le territoire.
  - `zone_climatique` 'H1' | 'H2' | 'H3': Zone climatique H1, H2 ou H3, à défaut du code INSEE (métropole).
  - `periode_construction` 'avant_1948' | '1948_1974' | '1975_2000' | 'apres_2000': Période de construction, à défaut de l'année.
  - `annee_construction` integer
  - `surface` number: Surface habitable du logement, en m² : ramène le coût au bien.

## Response `200`

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

- object
  - `etiquette` 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G', required
  - `interdiction_location` string, nullable, required: 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, required: Mois pleins avant l'échéance ; 0 quand l'interdiction est déjà en vigueur ; null sans échéance.
  - `sortie` object, nullable, required: Coût de sortie d'une passoire (classe E, F ou G) vers D, C ou B, mesuré sur les audits énergétiques réglementaires de l'ADEME pour des logements comparables. null hors des classes E à G, pour un type de logement sans comparable, ou hors de la métropole.
    - `classe_depart` 'E' | 'F' | 'G', required
    - `cibles` object[], required
      - `vers` 'D' | 'C' | 'B', required: Classe visée.
      - `n_audits` integer, required: Nombre d'audits comparables de la cellule retenue.
      - `euros` object, required: Coût des travaux chiffré par les audits comparables, sur leurs propres surfaces, en euros arrondis à la centaine.
        - `mediane` number, required
        - `p25` number, required
        - `p75` number, required
      - `eur_m2` object, nullable, required: Le même coût rapporté à la surface habitable, en euros par m² ; null s'il y a trop peu d'audits avec surface.
        - `mediane` number, required
        - `p25` number, required
        - `p75` number, required
      - `surface_mediane_m2` number, nullable, required: Surface habitable médiane des logements audités.
      - `pour_la_surface` object, nullable, required: Le coût au m² des audits appliqué à la surface du bien, quand elle est connue : le chiffre à citer.
        - `surface_m2` number, required
        - `mediane` number, required
        - `p25` number, required
        - `p75` number, required
      - `part_au_dela` number, nullable, required: Part des audits (0 à 1) dont l'étape chiffrée atteint déjà la classe suivante : le chiffrage dépasse alors la cible.
      - `perimetre` string, required: Les audits comparables, en clair (type de logement, zone climatique, période de construction).
      - `niveau` 'complet' | 'sans_periode' | 'sans_zone' | 'national', required: Finesse de la cellule retenue, de la plus fine (type, zone climatique et période) à la plus large (type seul, France métropolitaine).
    - `lecture` string, required: Ce que mesure le chiffre : une estimation d'auditeur, pas un devis.
    - `source` string, required
  - `retenu` object, required: Ce qui a été retenu pour choisir les audits comparables.
    - `type` 'appartement' | 'maison', required
    - `zone_climatique` 'H1' | 'H2' | 'H3', nullable, required
    - `periode` 'avant_1948' | '1948_1974' | '1975_2000' | 'apres_2000', nullable, required
    - `surface` number, nullable, required: Surface retenue pour ramener le coût au bien ; null hors des bornes des audits.
  - `qualite` object, required: 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.
  - `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

- `400`: Paramètres invalides
- `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

---

[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)
