API REST / Historique d'un bien

Historique d'un bien

Retrouvez toutes les transactions enregistrées pour une adresse ou une parcelle cadastrale depuis 2014.

GET/v1/property-history20 crédits

Retourne l'historique complet des mutations DVF pour un bien immobilier, avec l'évolution du prix quand deux ventes portent sur le même bien (même type, surface à 5 % près). Non facturé si aucune vente n'est trouvée.

Deux modes de recherche
  • Par adresse : address + code_postal — numéro exact (bis/ter compris), nom de rue approché. Sans numéro : toute la rue, 50 ventes au plus.
  • Par parcelle cadastrale : section + no_plan + code_commune — correspondance exacte, plus précise pour les immeubles multi-lots.

Paramètres

ParamètreTypeDéfautDescription
addressstring—Adresse avec numéro (ex. 4 rue de Rivoli, 49 cours Richard Vitton, 12 bis avenue Foch). Sans numéro, renvoie les ventes de toute la rue. Utilisez avec code_postal.
code_postalstring—Code postal (ex. 75004). Requis avec address.
sectionstring—Section cadastrale (ex. AB). Utilisez avec no_plan et code_commune.
no_planstring—Numéro de plan cadastral (ex. 0042). Utilisez avec section et code_commune.
code_communestring—Code INSEE de la commune à 5 chiffres (ex. 75102). Requis pour la recherche cadastrale.

Exemple — recherche par adresse

curl "https://mcp.normi.fr/v1/property-history?address=4+rue+de+Rivoli&code_postal=75004" \
  -H "X-API-Key: normi_votre_token"

Exemple — recherche cadastrale

# Recherche par parcelle cadastrale (plus précise)
curl "https://mcp.normi.fr/v1/property-history?section=AB&no_plan=0017&code_commune=75102" \
  -H "X-API-Key: normi_votre_token"

Réponse

{
  "scope": "address",
  "address_normalized": "4 RUE DE RIVOLI, 75004 PARIS 04",
  "cadastral": { "section": "AD", "no_plan": "12", "code_commune": "104" },
  "transactions": [
    {
      "id": 17998412,
      "date": "2024-03-12",
      "address": "4 RUE DE RIVOLI",
      "price": 1110000,
      "price_per_m2": 11822,
      "surface": 93.89,
      "type": "Appartement",
      "rooms": 4,
      "buyer_type": "unknown",
      "nature": "Vente"
    },
    {
      "id": 9012377,
      "date": "2015-06-30",
      "address": "4 RUE DE RIVOLI",
      "price": 774000,
      "price_per_m2": 8323,
      "surface": 93,
      "type": "Appartement",
      "rooms": 4,
      "buyer_type": "unknown",
      "nature": "Vente"
    }
  ],
  "price_evolution": {
    "basis": "repeat_sale",
    "description": "Same type (Appartement) and surface within 5% (93 m² → 93.89 m²), treated as the same property",
    "appreciation_pct": 43.4,
    "annualized_return_pct": 4.3,
    "period_years": 8.7,
    "first_sale": { "date": "2015-06-30", "price": 774000, "surface": 93 },
    "last_sale": { "date": "2024-03-12", "price": 1110000, "surface": 93.89 }
  },
  "note": "Found 2 transaction(s) at this address. A building can hold several units: compare surface and type before treating two sales as the same property.",
  "_credits": { "used": 20, "remaining": 40 },
  "query_time_ms": 178
}
20 crédits — endpoint le plus coûteux
  • Préférez la recherche cadastrale quand vous avez le numéro de parcelle : elle est plus précise et évite les faux positifs.
  • La recherche par adresse utilise une correspondance floue sur le nom de voie (type de voie ignoré).
  • Voir aussi lookup_property_history pour l'équivalent MCP.