API REST / Market Overview
Market Overview
Vue complète d'un marché immobilier en un seul appel : statistiques de prix, tendance annuelle et score de santé.
GET
/v1/market-overview10 créditsAgrège en parallèle GET /v1/stats/market, GET /v1/stats/trends et GET /v1/market-score pour retourner un résumé complet en un seul appel. Idéal comme point d'entrée pour tout diagnostic rapide d'un marché local.
Outil composite
Remplace trois appels séparés ( /v1/stats/market, /v1/stats/trends, /v1/market-score) en un seul. Économise 15 à 25 crédits pour les requêtes de type « comment se porte le marché ? ».
Paramètres
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
| code_postal | string | — | Code postal (ex. '75011'). Au moins un filtre de localisation est requis. |
| commune | string | — | Nom de commune en majuscules (ex. 'PARIS 11', 'LYON'). |
| code_departement | string | — | Code département (ex. '75', '69'). |
| latitude | number | — | Latitude GPS. Nécessite longitude. |
| longitude | number | — | Longitude GPS. Nécessite latitude. |
| radius_m | number | 500 | Rayon en mètres pour la recherche par coordonnées. |
| type_local | enum | — | Maison | Appartement | Terrain | Local commercial | Dépendance | Local industriel |
Exemple — Paris 11e appartements
curl "https://mcp.normi.fr/v1/market-overview?commune=PARIS%2011&type_local=Appartement" \ -H "X-API-Key: normi_votre_token"
Réponse
{
"location": {
"code_postal": null,
"commune": "PARIS 11",
"code_departement": null,
"latitude": null,
"longitude": null,
"radius_m": null
},
"property_type": "Appartement",
"stats": {
"count": 1842,
"price": {
"min": 120000,
"max": 2100000,
"avg": 518400,
"median": 480000
},
"price_per_m2": {
"min": 3200,
"max": 18500,
"avg": 9840,
"median": 9650
},
"surface": {
"min": 9,
"max": 210,
"avg": 52,
"median": 48
}
},
"trend": {
"direction": "decreasing",
"change_1y_pct": -4.2,
"overall_change_pct": -4.2,
"last_period": "2025"
},
"health": {
"score": 58,
"label": "Modéré",
"data_quality": {
"count_6m": 312,
"sufficient": true
}
},
"_credits": { "used": 10, "remaining": 90 },
"query_time_ms": 487
}Interpréter les résultats
trend.direction: "increasing" si variation >+2%, "decreasing" si <-2%, "stable" sinon.trend.change_1y_pct: variation YoY de la dernière année complète disponible dans les données DVF.healthestnullpour les recherches lat+lon (pas de périmètre administratif défini). Utilisezcode_postaloucommunepour obtenir le score de santé.- Score de santé : 0–30 Calme · 31–60 Modéré · 61–80 Dynamique · 81–100 Très actif.
- Pour les séries temporelles complètes ou les composantes détaillées du score, utilisez GET /v1/stats/trends et GET /v1/market-score directement.