API Pouvoir d'achat immobilier

Ratio prix/revenu par commune — le « pouvoir d'achat immobilier par ville » : combien d'années de revenu médian faut-il pour acheter le bien médian d'une zone. Croise les médianes de prix/m² et de surface DVF avec le revenu médian disponible par unité de consommation publié par l'INSEE (dispositif Filosofi).

ratio_prix_revenu vaut null quand l'INSEE applique le secret statistique sur le revenu de la commune (petites communes rurales) ou quand aucune donnée Filosofi n'est chargée pour ce code INSEE — un message accompagne alors la réponse.

GET /v1/stats/pouvoir-achat

GET/v1/stats/pouvoir-achat5 crédits

Filtre de localisation requis : code_postal, commune, code_departement, ou latitude + longitude.

code_departement seul et les recherches par rayon (latitude/longitude) ne sont pas supportés — un département regroupe des centaines de communes sans revenu médian unique représentatif, et un rayon traverse des limites communales. Utilisez /v1/stats/market ou /v1/comparables pour ces échelles.
ParamètreTypeDéfautDescription
code_postalstringCode postal (ex. '75011')
communestringCommune en majuscules (ex. 'LYON', 'PARIS 11')
code_communestringCode INSEE à 5 chiffres — court-circuite la résolution par commune
type_localenumMaison | Appartement
date_debutstringDate de début (YYYY-MM-DD) — plafonnée automatiquement sur les grandes zones
date_finstringDate de fin (YYYY-MM-DD)
curl "https://mcp.normi.fr/v1/stats/pouvoir-achat?commune=LYON" \
  -H "X-API-Key: normi_votre_token"

Réponse

{
  "count": 7675,
  "prix_m2_median": 4631.22,
  "surface_median": 54.02,
  "code_commune": "69388",
  "annee_reference": 2021,
  "revenu_median_annuel_uc": 21100,
  "nb_menages_fiscaux": 36868,
  "prix_bien_median": 250179,
  "ratio_prix_revenu": 11.86,
  "filters": { "code_postal": null, "commune": "LYON", "code_commune": null, "type_local": null },
  "notice": "Applied date_debut=2024-07-18 automatically (1-year cap for this scope)",
  "_credits": { "used": 5, "remaining": 495 },
  "query_time_ms": 87
}

Champs de réponse

ChampTypeDescription
countnumberTransactions DVF dans la fenêtre analysée
prix_m2_mediannumberPrix médian au m² (€)
surface_mediannumberSurface médiane (m²)
prix_bien_mediannumberprix_m2_median × surface_median (€)
code_communestringCode INSEE à 5 chiffres résolu pour cette zone
annee_referencenumberMillésime des données Filosofi (généralement 2-3 ans de retard)
revenu_median_annuel_ucnumber | nullRevenu médian disponible par unité de consommation (€/an)
nb_menages_fiscauxnumber | nullNombre de ménages fiscaux dans la commune
ratio_prix_revenunumber | nullAnnées de revenu médian nécessaires pour acheter le bien médian

Enrichissement de /v1/stats/market

Ajoutez include_pouvoir_achat=true à GET /v1/stats/market pour obtenir le champ pouvoir_achat directement dans la réponse des statistiques de marché, sans appel supplémentaire crédité. Le calcul s'exécute en parallèle de la requête principale et ne fait jamais échouer la réponse de base — en cas d'échec ou d'absence de donnée, pouvoir_achat.available vaut false.

Réservé aux zones code_postal ou commune (pas les recherches par rayon) — le paramètre est silencieusement ignoré si combiné à latitude/longitude.
// GET /v1/stats/market?commune=LYON&include_pouvoir_achat=true
{
  "count": 7675,
  "price": { "min": 45000, "max": 890000, "avg": 271430, "median": 250179 },
  "surface": { "min": 12, "max": 240, "avg": 58.4, "median": 54.02 },
  "price_per_m2": { "avg": 4712, "median": 4631.22, "min": 900, "max": 12400 },
  "pouvoir_achat": {
    "ratio_prix_revenu": 11.86,
    "revenu_median_annuel_uc": 21100,
    "annee_reference": 2021,
    "code_commune": "69388"
  },
  "_credits": { "used": 5, "remaining": 494 },
  "query_time_ms": 112
}