API REST / Heatmap

Heatmap

Prix agrégés par zone pour cartographier un marché immobilier.

GET/v1/heatmap15 crédits

Statistiques de prix agrégées par code postal (ou commune) pour un département ou une grande ville. Chaque zone inclut ses coordonnées centroïdes pour la cartographie. Résultats mis en cache 24h.

Au moins un des paramètres suivants est requis : code_departement ou commune.

Paramètres

ParamètreTypeDéfautDescription
code_departementstringCode département (ex. '75', '69'). Requis si commune absent.
communestringNom de ville (ex. 'PARIS'). Retourne tous les arrondissements. Requis si code_departement absent.
type_localenumMaison | Appartement
date_debutstring1 an agoDate de début (YYYY-MM-DD)
date_finstringtodayDate de fin (YYYY-MM-DD)
group_byenumcode_postalcode_postal | commune — niveau d'agrégation
min_transactionsnumber10Nombre minimum de transactions pour inclure une zone

Exemples

# Tous les arrondissements de Paris
curl "https://mcp.normi.fr/v1/heatmap?code_departement=75&type_local=Appartement" \
  -H "X-API-Key: normi_votre_token"

# Toutes les communes du Rhône
curl "https://mcp.normi.fr/v1/heatmap?code_departement=69&group_by=commune" \
  -H "X-API-Key: normi_votre_token"

Réponse

{
  "scope": { "department": "75" },
  "property_type": "Appartement",
  "period": { "start": "2025-03-11", "end": "2026-03-11" },
  "zones": [
    {
      "code_postal": "75007",
      "name": "75007 PARIS 07",
      "centroid": { "lat": 48.8573, "lon": 2.3152 },
      "stats": {
        "transaction_count": 29,
        "price_m2_median": 14055,
        "price_m2_avg": 15121,
        "price_median": 413790
      },
      "relative_position": "expensive"
    },
    {
      "code_postal": "75019",
      "name": "75019 PARIS 19",
      "centroid": { "lat": 48.8828, "lon": 2.3839 },
      "stats": {
        "transaction_count": 45,
        "price_m2_median": 7882,
        "price_m2_avg": 7992,
        "price_median": 262000
      },
      "relative_position": "affordable"
    }
  ],
  "scope_average": {
    "price_m2_median": 9713,
    "total_transactions": 1000
  },
  "cache": { "hit": false, "ttl_seconds": 86400 },
  "_credits": { "used": 15, "remaining": 60 },
  "query_time_ms": 1929
}
Utilisation pour la cartographie
  • Utilisez centroid.lat/lon pour positionner chaque zone sur une carte (MapLibre GL, Leaflet, Mapbox).
  • relative_position : expensive / average / affordable par rapport à la moyenne du scope.
  • Pour des polygones de zones, croisez les codes postaux avec l'API Cadastre (Phase 4).