Aller au contenu principal

Rechercher des Diagnostics de Performance Énergétique (DPE)

L'API Infoparcelle donne accès à la base de données complète des Diagnostics de Performance Énergétique (DPE) de l'ADEME. Ce guide vous explique comment rechercher et analyser les performances énergétiques des logements français.

Vue d'ensemble​

L'endpoint /api/v1/dpes permet de rechercher des DPE par différents critères : localisation, étiquettes énergétiques, type de bâtiment, année de construction, consommation, etc.

Fonctionnalités principales​

  • ✅ Accès à tous les DPE officiels (ADEME)
  • ✅ Filtrage par étiquettes énergétiques (A à G)
  • ✅ Filtrage par étiquettes GES (A à G)
  • ✅ Filtrage par type de bâtiment (maison, appartement, immeuble)
  • ✅ Filtrage par performances énergétiques
  • ✅ Données de consommation et coûts détaillés
  • ✅ Format JSON ou GeoJSON
  • ✅ Pagination par curseur

Qu'est-ce qu'un DPE ?​

Le DPE (Diagnostic de Performance Énergétique) est un document qui évalue :

  • 🔥 Consommation énergétique : Chauffage, eau chaude, refroidissement, éclairage
  • 🌍 Émissions de gaz à effet de serre (GES) : Impact environnemental
  • 💰 Coûts énergétiques annuels : Estimation des dépenses
  • 📊 Étiquettes énergétiques : De A (excellent) à G (passoire thermique)

Recherche basique​

Par code postal​

curl -X GET \
"https://app.infoparcelle.fr/api/v1/dpes?code_postal=75008&limite=10" \
-H "Authorization: Bearer VOTRE_CLE_API"

Par commune​

curl "https://app.infoparcelle.fr/api/v1/dpes?code_municipalite=69123&limite=20" \
-H "Authorization: Bearer VOTRE_CLE_API"

Par coordonnées GPS​

curl "https://app.infoparcelle.fr/api/v1/dpes?lat=48.8566&lon=2.3522&limite=15" \
-H "Authorization: Bearer VOTRE_CLE_API"

Filtrer par étiquette énergétique​

Trouver les passoires thermiques​

Les passoires thermiques sont les logements avec étiquettes F ou G (forte consommation énergétique).

curl "https://app.infoparcelle.fr/api/v1/dpes?code_postal=13001&etiquette_dpe=F,G&limite=30" \
-H "Authorization: Bearer VOTRE_CLE_API"

Étiquettes DPE énergie :

  • A - ≤ 70 kWh/m²/an (Très performant)
  • B - 71-110 kWh/m²/an (Performant)
  • C - 111-180 kWh/m²/an (Assez performant)
  • D - 181-250 kWh/m²/an (Moyennement performant)
  • E - 251-330 kWh/m²/an (Peu performant)
  • F - 331-420 kWh/m²/an (Très peu performant)
  • G - > 420 kWh/m²/an (Passoire thermique)

Trouver les logements performants​

curl "https://app.infoparcelle.fr/api/v1/dpes?code_postal=33000&etiquette_dpe=A,B,C&limite=20" \
-H "Authorization: Bearer VOTRE_CLE_API"

Filtrer par émissions de GES​

Les émissions de gaz à effet de serre mesurent l'impact environnemental du logement.

curl "https://app.infoparcelle.fr/api/v1/dpes?code_municipalite=69123&etiquette_ges=F,G&limite=25" \
-H "Authorization: Bearer VOTRE_CLE_API"

Étiquettes GES :

  • A - ≤ 6 kg CO2/m²/an (Très faible émission)
  • B - 7-11 kg CO2/m²/an (Faible émission)
  • C - 12-30 kg CO2/m²/an (Émission modérée)
  • D - 31-50 kg CO2/m²/an (Émission moyenne)
  • E - 51-70 kg CO2/m²/an (Émission importante)
  • F - 71-100 kg CO2/m²/an (Émission très importante)
  • G - > 100 kg CO2/m²/an (Émission extrêmement importante)

Filtrer par type de bâtiment​

Appartements​

curl "https://app.infoparcelle.fr/api/v1/dpes?code_postal=06000&type_batiment=appartement&limite=20" \
-H "Authorization: Bearer VOTRE_CLE_API"

Maisons​

curl "https://app.infoparcelle.fr/api/v1/dpes?code_municipalite=31555&type_batiment=maison&limite=30" \
-H "Authorization: Bearer VOTRE_CLE_API"

Types de bâtiments :

  • appartement - Logement dans un immeuble collectif
  • maison - Logement individuel
  • immeuble - Bâtiment collectif complet

Filtrage détaillé par type de bâti​

curl "https://app.infoparcelle.fr/api/v1/dpes?code_postal=44000&bati_type=10&limite=20" \
-H "Authorization: Bearer VOTRE_CLE_API"

Codes de bâti détaillés :

Maisons :

  • 1 - Maison (indéterminé)
  • 2 - Maison 1 pièce/studio
  • 3 - Maison 2 pièces
  • 4 - Maison 3 pièces
  • 5 - Maison 4 pièces
  • 6 - Maison 5 pièces et plus

Appartements :

  • 7 - Appartement (indéterminé)
  • 8 - Appartement 1 pièce/studio
  • 9 - Appartement 2 pièces
  • 10 - Appartement 3 pièces
  • 11 - Appartement 4 pièces
  • 12 - Appartement 5 pièces et plus

Filtrer par consommation énergétique​

Par consommation totale​

curl "https://app.infoparcelle.fr/api/v1/dpes?code_postal=59000&conso_energie_min=150&conso_energie_max=250&limite=25" \
-H "Authorization: Bearer VOTRE_CLE_API"

Par émissions de GES​

curl "https://app.infoparcelle.fr/api/v1/dpes?code_postal=67000&emission_ges_max=30&limite=20" \
-H "Authorization: Bearer VOTRE_CLE_API"

Filtrer par coût énergétique​

curl "https://app.infoparcelle.fr/api/v1/dpes?code_municipalite=34172&cout_total_max=1500&limite=20" \
-H "Authorization: Bearer VOTRE_CLE_API"

Filtrer par année de construction​

Bâtiments anciens​

curl "https://app.infoparcelle.fr/api/v1/dpes?code_municipalite=75056&annee_construction_max=1950&limite=30" \
-H "Authorization: Bearer VOTRE_CLE_API"

Bâtiments récents​

curl "https://app.infoparcelle.fr/api/v1/dpes?code_postal=35000&annee_construction_min=2010&limite=20" \
-H "Authorization: Bearer VOTRE_CLE_API"

Filtrer par surface​

curl "https://app.infoparcelle.fr/api/v1/dpes?code_postal=13080&type_batiment=appartement&surface_habitable_min=60&surface_habitable_max=100&limite=20" \
-H "Authorization: Bearer VOTRE_CLE_API"

Filtrer par date de DPE​

DPE récents​

curl "https://app.infoparcelle.fr/api/v1/dpes?code_municipalite=44109&date_reception_dpe_min=2024-01-01&limite=30" \
-H "Authorization: Bearer VOTRE_CLE_API"

Type de DPE​

curl "https://app.infoparcelle.fr/api/v1/dpes?code_postal=69000&type_dpe=0&limite=20" \
-H "Authorization: Bearer VOTRE_CLE_API"

Types de DPE :

  • 0 - Existant : DPE pour un logement existant
  • 1 - Neuf : DPE pour une construction neuve
  • 2 - Tertiaire : DPE pour un bâtiment tertiaire

Tri et pagination​

Trier les résultats​

curl "https://app.infoparcelle.fr/api/v1/dpes?code_postal=75008&champ_tri=conso_energie&ordre_tri=desc&limite=20" \
-H "Authorization: Bearer VOTRE_CLE_API"

Champs de tri disponibles :

  • numero_dpe - Numéro unique
  • date_etablissement - Date d'établissement
  • date_reception - Date de réception (défaut)
  • date_visite - Date de visite
  • etiquette_dpe - Étiquette énergétique
  • etiquette_ges - Étiquette GES
  • annee_construction - Année de construction
  • surface_habitable - Surface habitable
  • conso_energie - Consommation énergétique
  • emission_ges - Émissions de GES

Pagination avec curseur​

# Page 1
curl "https://app.infoparcelle.fr/api/v1/dpes?code_postal=75001&limite=20" \
-H "Authorization: Bearer VOTRE_CLE_API" \
-i

# Page 2 (utilisez le curseur retourné dans X-Pagination-Next-Cursor)
curl "https://app.infoparcelle.fr/api/v1/dpes?code_postal=75001&limite=20&curseur=CURSEUR" \
-H "Authorization: Bearer VOTRE_CLE_API"

Format GeoJSON​

Pour afficher les DPE sur une carte :

curl "https://app.infoparcelle.fr/api/v1/dpes?code_postal=75008&format=geojson&limite=20" \
-H "Authorization: Bearer VOTRE_CLE_API"
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [2.3522, 48.8566]
},
"properties": {
"numero_dpe": "2312345678901",
"etiquette_dpe": "C",
"etiquette_ges": "D",
"type_batiment": "appartement",
"surface_habitable": 75.5,
"conso_energie": 185.4,
"emission_ges": 32.8,
"cout_total": 1450
}
}
]
}

Personnaliser les champs retournés​

curl "https://app.infoparcelle.fr/api/v1/dpes?code_postal=75008&champs=numero_dpe,etiquette_dpe,etiquette_ges,conso_energie,cout_total,municipalite&limite=20" \
-H "Authorization: Bearer VOTRE_CLE_API"

Champs disponibles :

  • numero_dpe - Numéro unique
  • type_dpe - Type de DPE
  • date_etablissement, date_reception, date_visite, date_fin_validite
  • version - Version du DPE
  • etiquette_dpe, etiquette_ges
  • adresse - Adresse du bien
  • type_batiment, bati_type
  • annee_construction, periode_construction
  • surface_habitable, nombre_niveau_logement, hauteur_sous_plafond
  • conso_energie, conso_chauffage, conso_ecs, conso_refroidissement, conso_eclairage
  • emission_ges, emission_ges_chauffage, emission_ges_ecs
  • cout_total, cout_chauffage, cout_ecs
  • parcelles - Parcelles cadastrales (max 10)
  • municipalite - Informations commune
  • centre - Point GPS

Cas d'usage avancés​

1. Cartographie des passoires thermiques​

async function cartographierPassoiresThermiques(codeMunicipalite) {
/**
* Cartographie les passoires thermiques d'une commune
*/
const apiKey = process.env.INFOPARCELLE_API_KEY;

const response = await fetch(
'https://app.infoparcelle.fr/api/v1/dpes?' +
new URLSearchParams({
code_municipalite: codeMunicipalite,
etiquette_dpe: 'F,G',
format: 'geojson',
limite: '50'
}),
{
headers: { 'Authorization': `Bearer ${apiKey}` }
}
);

const geojson = await response.json();

// Statistiques
const total = geojson.features.length;
const parEtiquette = { F: 0, G: 0 };

geojson.features.forEach(feature => {
const etiquette = feature.properties.etiquette_dpe;
parEtiquette[etiquette] = (parEtiquette[etiquette] || 0) + 1;
});

return {
geojson,
total,
repartition: parEtiquette
};
}

// Utilisation
const resultat = await cartographierPassoiresThermiques('75108');
console.log(`Total passoires: ${resultat.total}`);
console.log(`Étiquette F: ${resultat.repartition.F}`);
console.log(`Étiquette G: ${resultat.repartition.G}`);

2. Analyse du parc immobilier​

async function analyserParcImmobilier(codePostal) {
/**
* Analyser la qualité énergétique du parc immobilier
*/
const apiKey = process.env.INFOPARCELLE_API_KEY;

const response = await fetch(
'https://app.infoparcelle.fr/api/v1/dpes?' +
new URLSearchParams({
code_postal: codePostal,
limite: '50',
}),
{
headers: { 'Authorization': `Bearer ${apiKey}` }
}
);

const dpes = await response.json();

// Répartition par étiquette
const repartition = { A: 0, B: 0, C: 0, D: 0, E: 0, F: 0, G: 0 };
dpes.forEach(dpe => {
if (dpe.etiquette_dpe) {
repartition[dpe.etiquette_dpe]++;
}
});

// Calculs
const total = dpes.length;
const passoiresThermiques = repartition.F + repartition.G;
const performants = repartition.A + repartition.B + repartition.C;
const consoMoyenne = dpes.reduce((sum, dpe) => sum + (dpe.conso_energie || 0), 0) / total;
const coutMoyen = dpes.reduce((sum, dpe) => sum + (dpe.cout_total || 0), 0) / total;

return {
total,
repartition,
passoiresThermiques,
tauxPassoires: (passoiresThermiques / total * 100).toFixed(1) + '%',
performants,
tauxPerformants: (performants / total * 100).toFixed(1) + '%',
consoMoyenne: Math.round(consoMoyenne),
coutMoyen: Math.round(coutMoyen),
};
}

// Utilisation
const analyse = await analyserParcImmobilier('75008');
console.log('Analyse du parc immobilier:');
console.log(` Total DPE: ${analyse.total}`);
console.log(` Passoires thermiques (F+G): ${analyse.passoiresThermiques} (${analyse.tauxPassoires})`);
console.log(` Performants (A+B+C): ${analyse.performants} (${analyse.tauxPerformants})`);
console.log(` Consommation moyenne: ${analyse.consoMoyenne} kWh/m²/an`);
console.log(` Coût moyen: ${analyse.coutMoyen} €/an`);

3. Détection d'opportunités de rénovation​

async function detecterOpportunitesRenovation(codePostal) {
/**
* Détecte les opportunités de rénovation énergétique
*/
const apiKey = process.env.INFOPARCELLE_API_KEY;

// Rechercher les passoires thermiques récentes
const response = await fetch(
'https://app.infoparcelle.fr/api/v1/dpes?' +
new URLSearchParams({
code_postal: codePostal,
etiquette_dpe: 'F,G',
date_reception_dpe_min: '2023-01-01',
type_batiment: 'maison',
limite: '50'
}),
{
headers: { 'Authorization': `Bearer ${apiKey}` }
}
);

const dpes = await response.json();

const opportunites = dpes.map(dpe => {
// Calculer le potentiel de gain
const consoActuelle = dpe.conso_energie || 0;
const coutActuel = dpe.cout_total || 0;

// Estimer après rénovation (passage en C)
const consoCible = 145; // Milieu de l'étiquette C
const reductionConso = consoActuelle - consoCible;
const economieAnnuelle = coutActuel * (reductionConso / consoActuelle);

return {
numero_dpe: dpe.numero_dpe,
adresse: dpe.adresse,
etiquette_actuelle: dpe.etiquette_dpe,
conso_actuelle: consoActuelle,
cout_actuel: coutActuel,
economie_potentielle: Math.round(economieAnnuelle),
reduction_conso: Math.round(reductionConso)
};
});

return opportunites.sort((a, b) => b.economie_potentielle - a.economie_potentielle);
}

// Utilisation
const opportunites = await detecterOpportunitesRenovation('69000');
console.log('Top 5 opportunités de rénovation:');
opportunites.slice(0, 5).forEach((opp, i) => {
console.log(`${i + 1}. ${opp.adresse}`);
console.log(` Étiquette: ${opp.etiquette_actuelle}`);
console.log(` Économie potentielle: ${opp.economie_potentielle} €/an`);
console.log(` Réduction conso: ${opp.reduction_conso} kWh/m²/an`);
});

4. Comparaison entre types de bâtiments​

async function comparerTypesBuildings(codePostal) {
/**
* Comparer les performances entre maisons et appartements
*/
const apiKey = process.env.INFOPARCELLE_API_KEY;
const types = ['maison', 'appartement'];
const resultats = {};

for (const type of types) {
const response = await fetch(
'https://app.infoparcelle.fr/api/v1/dpes?' +
new URLSearchParams({
code_postal: codePostal,
type_batiment: type,
limite: '50',
}),
{
headers: { 'Authorization': `Bearer ${apiKey}` }
}
);

const dpes = await response.json();

const consoMoyenne = dpes.reduce((sum, d) => sum + (d.conso_energie || 0), 0) / dpes.length;
const coutMoyen = dpes.reduce((sum, d) => sum + (d.cout_total || 0), 0) / dpes.length;
const emissionMoyenne = dpes.reduce((sum, d) => sum + (d.emission_ges || 0), 0) / dpes.length;

resultats[type] = {
total: dpes.length,
consoMoyenne: Math.round(consoMoyenne),
coutMoyen: Math.round(coutMoyen),
emissionMoyenne: Math.round(emissionMoyenne),
};
}

return resultats;
}

// Utilisation
const comparaison = await comparerTypesBuildings('75008');
console.table(comparaison);

Bonnes pratiques​

✅ À faire​

  1. Filtrer par localisation (code postal ou commune)
  2. Combiner les filtres (étiquette + type + surface)
  3. Utiliser la pagination pour de grands volumes
  4. Vérifier la date de validité des DPE (valides 10 ans)
  5. Analyser les consommations détaillées (chauffage, ECS, etc.)
  6. Calculer les économies potentielles après rénovation
  7. Demander uniquement les champs nécessaires
  8. Cacher les résultats pour les recherches fréquentes

❌ À éviter​

  1. ❌ Ignorer le type de DPE (existant vs neuf)
  2. ❌ Ne pas vérifier la date de validité
  3. ❌ Oublier la pagination (limite max : 50)
  4. ❌ Ne pas gérer les valeurs nulles
  5. ❌ Ignorer les différences entre étiquettes DPE et GES

Limites et précisions​

  • DPE valides 10 ans : Vérifier la date_fin_validite
  • Champ parcelles limité à 10 parcelles par DPE
  • Maximum 50 résultats par requête (utilisez la pagination)
  • Certains champs peuvent être null selon le type de DPE
  • Les DPE avant 2021 peuvent avoir des données moins complètes (ancienne méthode)

Performances​

  • Temps de réponse moyen : < 150ms
  • Cache côté serveur : 15 minutes
  • Rate limit : 1200 requêtes/minute

Voir aussi​