API REST / Statistiques & tendances
Statistiques & tendances
Agrégats de marché et évolution temporelle des prix DVF.
GET
/v1/stats/market5 créditsStatistiques agrégées (médiane, moyenne, min/max, prix/m²) pour une zone et une période. Si date_debut est absent, les 3 dernières années sont utilisées.
Filtre de localisation requis : code_postal, commune, code_departement, ou latitude + longitude.
Paramètres
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
| code_postal | string | — | Code postal (ex. '13001') |
| commune | string | — | Nom de la commune (ex. 'BORDEAUX') |
| code_departement | string | — | Code département (ex. '33') |
| latitude | number | — | Latitude GPS (nécessite longitude) |
| longitude | number | — | Longitude GPS (nécessite latitude) |
| radius_m | number | 500 | Rayon en mètres |
| type_local | enum | — | Maison | Appartement | Terrain | Local commercial |
| date_debut | string | 3 ans ago | Date de début (YYYY-MM-DD) |
| date_fin | string | today | Date de fin (YYYY-MM-DD) |
| exclude_bulk_sales | boolean | true | Exclure les ventes en lot |
| exclude_outliers | boolean | true | Exclure les prix aberrants |
| include_terrain | boolean | false | Inclure les terrains seuls |
Exemples
curl "https://mcp.normi.fr/v1/stats/market?code_postal=75001&type_local=Appartement" \ -H "X-API-Key: normi_votre_token"
Réponse
{
"count": 563,
"price": {
"median": 527600,
"avg": 1836728,
"min": 7950,
"max": 122000000
},
"price_per_m2": {
"median": 12301,
"avg": 12835,
"min": 500,
"max": 62468
},
"surface": {
"median": 43.79,
"avg": 103
},
"filters": { "code_postal": "75001", "type_local": "Appartement" },
"notice": "Applied date_debut=2023-03-11 automatically",
"_credits": { "used": 5, "remaining": 95 },
"query_time_ms": 1025
}GET
/v1/stats/trends10 créditsÉvolution des prix par période (mensuelle, trimestrielle ou annuelle) avec variations YoY. Résultats mis en cache 24h.
Filtre de localisation requis : code_postal, commune, code_departement, ou latitude + longitude.
Paramètres
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
| code_postal | string | — | Code postal |
| commune | string | — | Nom de commune |
| code_departement | string | — | Code département |
| latitude / longitude | number | — | Coordonnées GPS |
| type_local | enum | — | Maison | Appartement | Terrain | Local commercial |
| granularity | enum | quarter | month | quarter | year |
| date_debut | string | 5 ans ago | Date de début (YYYY-MM-DD) |
| date_fin | string | today | Date de fin (YYYY-MM-DD) |
| exclude_bulk_sales | boolean | true | Exclure les ventes en lot |
| exclude_outliers | boolean | true | Exclure les prix aberrants |
Exemples
curl "https://mcp.normi.fr/v1/stats/trends?code_postal=75001&granularity=year" \ -H "X-API-Key: normi_votre_token"
Réponse
{
"location": { "code_postal": "75001" },
"granularity": "year",
"trends": [
{
"period": "2022",
"transaction_count": 312,
"price": { "median": 507500, "avg": 1193922 },
"price_per_m2": { "median": 12894 },
"yoy_change": { "price_median_pct": 12.8, "price_m2_pct": -3.0 }
},
{
"period": "2023",
"transaction_count": 268,
"price": { "median": 509575, "avg": 1398045 },
"price_per_m2": { "median": 12711 },
"yoy_change": { "price_median_pct": 0.4, "price_m2_pct": -1.4 }
}
],
"summary": {
"total_transactions": 1163,
"overall_trend": "increasing",
"total_change_pct": 17.4
},
"cache": { "hit": false, "ttl_seconds": 86400 },
"_credits": { "used": 10, "remaining": 85 },
"query_time_ms": 66
}Cache 24h
Les résultats de
/v1/stats/trends sont mis en cache 24 heures. Les requêtes répétées pour la même zone ne consomment qu'un seul débit réseau mais les crédits sont toujours déduits.