Aller au contenu principal

Obtenir une fiche parcelle complète

Une fois que vous avez trouvé une parcelle intéressante via la recherche, l'API Infoparcelle vous permet d'obtenir toutes les informations détaillées sur cette parcelle : DPE, transactions DVF, propriétaires, permis de construire, zones PLU, risques, et bien plus.

Vue d'ensemble

L'endpoint /api/v1/parcelles/{cadastre_id} retourne une fiche complète exhaustive d'une parcelle cadastrale avec plus de 30 catégories de données.

Fonctionnalités principales

  • ✅ Informations cadastrales complètes
  • ✅ Diagnostics de performance énergétique (DPE)
  • ✅ Historique des transactions (DVF)
  • ✅ Propriétaires et copropriétaires
  • ✅ Occupants (entreprises)
  • ✅ Permis de construire
  • ✅ Zones PLU avec documents
  • ✅ Monuments historiques
  • ✅ Risques (argile, radon)
  • ✅ Estimations de prix
  • ✅ Géométries détaillées (centre, contour, bbox)

Obtenir une fiche parcelle basique

Par identifiant cadastral

curl -X GET \
"https://app.infoparcelle.fr/api/v1/parcelles/75108000BO0025" \
-H "Authorization: Bearer VOTRE_CLE_API"

Réponse par défaut

Par défaut, l'API retourne les champs suivants :

  • cadastre_id - Identifiant cadastral
  • superficie - Superficie en m²
  • dpes - Diagnostics de performance énergétique
  • dvfs - Transactions immobilières
  • zones_plu - Zones PLU
  • centre - Point central (géométrie)

Personnaliser les champs retournés

Sélectionner des champs spécifiques

curl "https://app.infoparcelle.fr/api/v1/parcelles/75108000BO0025?champs=cadastre_id,superficie,municipalite,detail,dpes,centre" \
-H "Authorization: Bearer VOTRE_CLE_API"

Tous les champs disponibles

# Obtenir TOUS les champs disponibles
curl "https://app.infoparcelle.fr/api/v1/parcelles/75108000BO0025?champs=cadastre_id,section,numero,prefixe,superficie,perimetre,arpente,municipalite,quartier,lieu_dit,adresses,detail,batiments,zones_plu,dpes,dvfs,coproprietaires,proprietaires,occupants,permis_construire,risques,monuments_historiques,consommations,statistiques,centre,contour,bbox" \
-H "Authorization: Bearer VOTRE_CLE_API"

Champs disponibles par catégorie

📍 Informations de base

  • cadastre_id - Identifiant cadastral (14 caractères)
  • section - Code de section
  • numero - Numéro de parcelle
  • prefixe - Préfixe
  • superficie - Superficie en m²
  • perimetre - Périmètre en m
  • arpente - Parcelle arpentée (boolean)

🗺️ Localisation

  • municipalite - Informations commune (code, nom, codes postaux)
  • quartier - Informations quartier IRIS
  • lieu_dit - Nom du lieu-dit
  • adresses - Adresses postales

🏠 Détails de la parcelle

  • detail - Détails complets :
    • Piscines (nombre, surface, forme)
    • Bâtiments durs et légers
    • Surfaces (jardin, emprise au sol, habitable)
    • Hauteurs (min, max)
    • Altitudes (min, max)
    • Construction (années, étages)
    • Caractéristiques (type bâti, isolation, mitoyenneté)
    • Risques (argile, radon)
    • Estimations (prix vente, location)

🏗️ Bâtiments

  • batiments - Liste des bâtiments avec type, superficie, périmètre

📜 Urbanisme et réglementation

  • zones_plu - Zones PLU avec documents PDF
  • permis_construire - Permis de construire et autorisations

⚡ Performance énergétique

  • dpes - Diagnostics de performance énergétique complets
  • consommations - Consommations énergétiques (électricité, gaz)

💰 Transactions et estimations

  • dvfs - Ventes immobilières (DVF)
  • Estimations incluses dans detail

👥 Propriété et occupation

  • proprietaires - Propriétaires (SIREN, dénomination, forme juridique)
  • coproprietaires - Copropriétés
  • occupants - Entreprises occupantes (SIRET, activité, effectifs)

🏛️ Patrimoine et risques

  • monuments_historiques - Monuments historiques
  • risques - Risques naturels et technologiques

📊 Statistiques

  • statistiques - Statistiques diverses

🗺️ Géométries

  • centre - Point central (GeoJSON Point)
  • contour - Polygone complet (GeoJSON Polygon)
  • bbox - Boîte englobante (GeoJSON Polygon)

Obtenir les DPE d'une parcelle

curl "https://app.infoparcelle.fr/api/v1/parcelles/75108000BO0025?champs=cadastre_id,dpes" \
-H "Authorization: Bearer VOTRE_CLE_API"

Exemple de DPE retourné :

{
"dpes": [
{
"numero_dpe": "2301E0123456",
"type_dpe": 0,
"date_etablissement": "2023-03-15",
"date_reception": "2023-03-20",
"date_fin_validite": "2033-03-15",
"etiquette_dpe": "D",
"etiquette_ges": "C",
"adresse": "8 Avenue des Champs-Élysées",
"type_batiment": "maison",
"bati_type": 3,
"surface_habitable": 350,
"annee_construction": 1900,
"conso_energie": 220.5,
"conso_chauffage": 180,
"emission_ges": 45.2,
"cout_total": 3200,
"cout_chauffage": 2700
}
]
}

Obtenir l'historique DVF

curl "https://app.infoparcelle.fr/api/v1/parcelles/75108000BO0025?champs=cadastre_id,municipalite,dvfs" \
-H "Authorization: Bearer VOTRE_CLE_API"

Exemple de DVF retourné :

{
"dvfs": [
{
"id_mutation": "2022-12345",
"date_mutation": "2022-06-15",
"nature_mutation": "Vente",
"valeur_fonciere": 850000,
"code_type_bien": 111,
"libelle_type": "UNE MAISON",
"bati_type": 3,
"nb_lots": 1,
"surface_terrain": 523.45,
"surface_batie": 350
}
]
}

Obtenir les zones PLU avec documents

curl "https://app.infoparcelle.fr/api/v1/parcelles/75108000BO0025?champs=cadastre_id,zones_plu" \
-H "Authorization: Bearer VOTRE_CLE_API"

Exemple de zone PLU retournée :

{
"zones_plu": [
{
"titre": "Zone Urbaine Mixte",
"description": "Zone UB : Zone urbaine dense",
"zone": "U",
"type_zone": "UB",
"surface": 523.45,
"perimetre": 102.34,
"documents": {
"partition": "75108_PLU_20210115",
"fichiers": [
{
"titre": "Règlement Zones UB",
"nom_fichier": "75108_reglement_UB.pdf",
"url": "https://example.com/plu/75108_reglement_UB.pdf",
"categorie": "Documents Règlementaires",
"date_creation": "2021-01-15"
}
]
}
}
]
}

Obtenir les propriétaires

curl "https://app.infoparcelle.fr/api/v1/parcelles/75108000BO0025?champs=cadastre_id,proprietaires,coproprietaires" \
-H "Authorization: Bearer VOTRE_CLE_API"

Obtenir les géométries complètes

Contour complet de la parcelle

curl "https://app.infoparcelle.fr/api/v1/parcelles/75108000BO0025?champs=cadastre_id,superficie,contour&geometrie=contour" \
-H "Authorization: Bearer VOTRE_CLE_API"

Format GeoJSON

# Obtenir la parcelle au format GeoJSON
curl "https://app.infoparcelle.fr/api/v1/parcelles/75108000BO0025?format=geojson&geometrie=contour" \
-H "Authorization: Bearer VOTRE_CLE_API"

Réponse GeoJSON :

{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [[[2.32, 48.85], [2.37, 48.85], [2.37, 48.87], [2.32, 48.87], [2.32, 48.85]]]
},
"properties": {
"cadastre_id": "75108000BO0025",
"superficie": 523.45,
"dpes": [...],
"dvfs": [...]
}
}

Cas d'usage avancés

1. Analyse complète d'une parcelle

async function analyserParcelleComplete(cadastreId) {
/**
* Analyse complète d'une parcelle avec score de qualité
*/
const apiKey = process.env.INFOPARCELLE_API_KEY;

const response = await fetch(
`https://app.infoparcelle.fr/api/v1/parcelles/${cadastreId}?` +
new URLSearchParams({
champs: 'cadastre_id,superficie,municipalite,detail,dpes,dvfs,zones_plu,risques'
}),
{
headers: { 'Authorization': `Bearer ${apiKey}` }
}
);

const parcelle = await response.json();

// Calculer un score de qualité
const score = {
performance_energetique: 0,
valeur_marche: 0,
risques: 0,
urbanisme: 0,
score_global: 0
};

// 1. Performance énergétique (0-10)
if (parcelle.dpes && parcelle.dpes.length > 0) {
const dpe = parcelle.dpes[0];
const etiquettes = { A: 10, B: 8, C: 6, D: 5, E: 4, F: 2, G: 0 };
score.performance_energetique = etiquettes[dpe.etiquette_dpe] || 0;
}

// 2. Valeur marché (0-10)
if (parcelle.dvfs && parcelle.dvfs.length > 0) {
const dvf = parcelle.dvfs[0];
const dateMutation = new Date(dvf.date_mutation);
const ancienneteMois = (Date.now() - dateMutation) / (1000 * 60 * 60 * 24 * 30);

if (ancienneteMois < 12) {
score.valeur_marche = 10;
} else if (ancienneteMois < 24) {
score.valeur_marche = 7;
} else {
score.valeur_marche = 5;
}
}

// 3. Risques (0-10)
if (parcelle.detail?.risques) {
const risques = parcelle.detail.risques;
let scoreRisque = 10;
if (risques.argile === 'Fort') scoreRisque -= 3;
else if (risques.argile === 'Moyen') scoreRisque -= 1;
if (risques.radon === 'Fort') scoreRisque -= 3;
else if (risques.radon === 'Moyen') scoreRisque -= 1;
score.risques = Math.max(0, scoreRisque);
} else {
score.risques = 10;
}

// 4. Urbanisme (0-10)
if (parcelle.zones_plu && parcelle.zones_plu.length > 0) {
const zone = parcelle.zones_plu[0].zone;
const zonesScores = { U: 10, AU: 7, A: 4, N: 6 };
score.urbanisme = zonesScores[zone] || 5;
}

// Score global (moyenne)
const scoresValides = Object.values(score).filter(v => v > 0 && typeof v === 'number');
score.score_global = scoresValides.reduce((a, b) => a + b, 0) / scoresValides.length || 0;

return {
cadastre_id: cadastreId,
adresse: parcelle.municipalite?.nom,
superficie: parcelle.superficie,
scores: score,
details: {
dpe: parcelle.dpes?.[0]?.etiquette_dpe || null,
derniere_vente: parcelle.dvfs?.[0]?.date_mutation || null,
zone_plu: parcelle.zones_plu?.[0]?.type_zone || null
}
};
}

// Utilisation
const analyse = await analyserParcelleComplete('75108000BO0025');
console.log(`Analyse parcelle ${analyse.cadastre_id}:`);
console.log(` Score global: ${analyse.scores.score_global.toFixed(1)}/10`);
console.log(` Performance énergétique: ${analyse.scores.performance_energetique}/10`);
console.log(` Valeur marché: ${analyse.scores.valeur_marche}/10`);
console.log(` Risques: ${analyse.scores.risques}/10`);
console.log(` Urbanisme: ${analyse.scores.urbanisme}/10`);

2. Comparaison de parcelles

// Comparer plusieurs parcelles
async function comparerParcelles(cadastreIds) {
const apiKey = process.env.INFOPARCELLE_API_KEY;

const parcelles = await Promise.all(
cadastreIds.map(async (id) => {
const response = await fetch(
`https://app.infoparcelle.fr/api/v1/parcelles/${id}?` +
new URLSearchParams({
champs: 'cadastre_id,superficie,detail,dpes,dvfs'
}),
{
headers: { 'Authorization': `Bearer ${apiKey}` }
}
);
return await response.json();
})
);

// Créer un tableau comparatif
const comparaison = parcelles.map(p => {
const dpe = p.dpes?.[0];
const dvf = p.dvfs?.[0];
const estimation = p.detail?.estimations;

return {
cadastre_id: p.cadastre_id,
superficie: p.superficie,
dpe_energie: dpe?.etiquette_dpe || 'N/A',
dpe_ges: dpe?.etiquette_ges || 'N/A',
derniere_vente: dvf?.valeur_fonciere || null,
estimation_prix: estimation?.prix_vente || null,
prix_m2: estimation?.prix_vente_ppm || null,
};
});

return comparaison;
}

// Utilisation
const parcelles = await comparerParcelles([
'75108000BO0025',
'75108000BO0026',
'75108000BO0027'
]);

console.table(parcelles);

3. Export PDF détaillé

async function genererRapportParcelle(cadastreId) {
/**
* Génère un rapport détaillé d'une parcelle
*/
const apiKey = process.env.INFOPARCELLE_API_KEY;

const response = await fetch(
`https://app.infoparcelle.fr/api/v1/parcelles/${cadastreId}`,
{
headers: { 'Authorization': `Bearer ${apiKey}` }
}
);

const parcelle = await response.json();

let rapport = `
====================================
RAPPORT PARCELLE - ${parcelle.cadastre_id}
====================================

INFORMATIONS GÉNÉRALES
----------------------
Commune: ${parcelle.municipalite?.nom || 'N/A'}
Superficie: ${parcelle.superficie}
Section: ${parcelle.section}

PERFORMANCE ÉNERGÉTIQUE
-----------------------
`;

if (parcelle.dpes && parcelle.dpes.length > 0) {
const dpe = parcelle.dpes[0];
rapport += `
Étiquette énergie: ${dpe.etiquette_dpe}
Étiquette GES: ${dpe.etiquette_ges}
Consommation: ${dpe.conso_energie} kWh/m²/an
Coût annuel: ${dpe.cout_total}
Date de validité: ${dpe.date_fin_validite}
`;
} else {
rapport += "Aucun DPE disponible\n";
}

rapport += `
HISTORIQUE DES TRANSACTIONS
----------------------------
`;

if (parcelle.dvfs && parcelle.dvfs.length > 0) {
// 5 dernières ventes
parcelle.dvfs.slice(0, 5).forEach(dvf => {
rapport += `${dvf.date_mutation}: ${dvf.valeur_fonciere.toLocaleString()} € - ${dvf.libelle_type}\n`;
});
} else {
rapport += "Aucune transaction enregistrée\n";
}

rapport += `
URBANISME
---------
`;

if (parcelle.zones_plu && parcelle.zones_plu.length > 0) {
const zone = parcelle.zones_plu[0];
rapport += `
Zone: ${zone.type_zone} (${zone.zone})
Description: ${zone.description}
`;
}

return rapport;
}

// Utilisation
const rapport = await genererRapportParcelle('75108000BO0025');
console.log(rapport);

// Sauvegarder dans un fichier (Node.js)
const fs = require('fs');
fs.writeFileSync('rapport_parcelle.txt', rapport, 'utf-8');

4. Détection d'opportunités d'investissement

async function detecterOpportunite(cadastreId) {
/**
* Détecter les opportunités d'investissement
*/
const apiKey = process.env.INFOPARCELLE_API_KEY;

const response = await fetch(
`https://app.infoparcelle.fr/api/v1/parcelles/${cadastreId}?` +
new URLSearchParams({
champs: 'cadastre_id,superficie,detail,dpes,dvfs,zones_plu,permis_construire'
}),
{
headers: { 'Authorization': `Bearer ${apiKey}` }
}
);

const parcelle = await response.json();
const opportunites = [];

// 1. Opportunité rénovation énergétique
const dpe = parcelle.dpes?.[0];
if (dpe && ['F', 'G'].includes(dpe.etiquette_dpe)) {
const economie = dpe.cout_total * 0.6; // Économie estimée après rénovation
opportunites.push({
type: 'Rénovation énergétique',
potentiel: 'ÉLEVÉ',
description: `Passoire thermique ${dpe.etiquette_dpe}`,
gain_estime: `${Math.round(economie)} €/an`,
actions: [
'Isolation des combles',
'Changement de chauffage',
'Isolation des murs'
]
});
}

// 2. Opportunité division parcellaire
const superficie = parcelle.superficie;
const zonePlu = parcelle.zones_plu?.[0]?.zone;
if (superficie > 1000 && zonePlu === 'U') {
opportunites.push({
type: 'Division parcellaire',
potentiel: 'MOYEN',
description: `Grande parcelle de ${superficie} m² en zone urbaine`,
gain_estime: 'Potentiel de valorisation importante',
actions: [
'Étude de faisabilité',
'Demande de certificat d\'urbanisme',
'Division cadastrale'
]
});
}

// 3. Opportunité construction/extension
const permis = parcelle.permis_construire || [];
const permisRecents = permis.filter(p => {
const date = new Date(p.date_autorisation);
return (new Date() - date) / (1000 * 60 * 60 * 24) < 365 * 2;
});

if (permisRecents.length === 0 && zonePlu === 'U') {
opportunites.push({
type: 'Potentiel de construction',
potentiel: 'MOYEN',
description: 'Aucun permis récent, potentiel d\'extension',
gain_estime: 'À évaluer selon PLU',
actions: [
'Consulter le PLU local',
'Estimer le potentiel constructible',
'Consultation architecte'
]
});
}

return {
cadastre_id: cadastreId,
total_opportunites: opportunites.length,
opportunites
};
}

// Utilisation
const resultat = await detecterOpportunite('75108000BO0025');
console.log(`Opportunités détectées: ${resultat.total_opportunites}`);
resultat.opportunites.forEach((opp, i) => {
console.log(`\n${i + 1}. ${opp.type} - Potentiel: ${opp.potentiel}`);
console.log(` ${opp.description}`);
console.log(` Gain estimé: ${opp.gain_estime}`);
});

Bonnes pratiques

✅ À faire

  1. Demander uniquement les champs nécessaires avec le paramètre champs
  2. Cacher les résultats pour les parcelles fréquemment consultées
  3. Vérifier la validité des DPE (date de fin de validité)
  4. Utiliser le format GeoJSON pour l'affichage cartographique
  5. Gérer les champs null (toutes les parcelles n'ont pas toutes les données)
  6. Vérifier la date des transactions DVF pour la pertinence

❌ À éviter

  1. ❌ Demander tous les champs si vous n'en avez pas besoin
  2. ❌ Ignorer les dates de validité des DPE (valides 10 ans)
  3. ❌ Ne pas gérer les cas où certains champs sont absents
  4. ❌ Multiplier les requêtes inutiles
  5. ❌ Ne pas vérifier l'existence des données avant de les utiliser

Structure complète de la réponse

{
"cadastre_id": "75108000BO0025",
"section": "BO",
"numero": "0025",
"superficie": 523.45,
"perimetre": 102.34,
"municipalite": {
"code": "75108",
"nom": "Paris 8e Arrondissement",
"codes_postaux": ["75008"]
},
"detail": {
"surfaces": {
"jardin": 100,
"emprise_sol": 200.5,
"habitable": 350
},
"construction": {
"annee_min": 1890,
"annee_max": 1920,
"nombre_etages": 3
},
"estimations": {
"prix_vente": 850000,
"prix_vente_ppm": 2428.57
}
},
"dpes": [...],
"dvfs": [...],
"zones_plu": [...],
"proprietaires": [...],
"centre": {
"type": "Point",
"coordinates": [2.3522, 48.8566]
}
}

Performances

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

Voir aussi

Conseil pratique

Utilisez d'abord la recherche de parcelles pour trouver des parcelles intéressantes, puis récupérez la fiche complète uniquement pour celles qui vous intéressent !