API REST/Référence MCP/search_property_transactions

search_property_transactions

5 crédits

Recherche des transactions DVF avec filtres géographiques et par type de bien, prix et surface. Retourne jusqu'à 20 transactions ou un résumé statistique selon le mode choisi.

Paramètres

Au moins un filtre de localisation est requis : code_postal, commune, code_departement ou latitude + longitude.

ParamètreTypeDéfautDescription
code_postalstring—Code postal (ex. '75011'). Au moins un filtre de localisation est requis.
communestring—Nom de commune en majuscules (ex. 'LYON', 'PARIS 11'). Utilisez le format arrondissement pour Paris, Lyon, Marseille.
code_departementstring—Code département (ex. '69', '75').
latitudenumber—Latitude WGS84. Nécessite aussi longitude.
longitudenumber—Longitude WGS84. Nécessite aussi latitude.
radius_mnumber500Rayon en mètres pour la recherche GPS (max 2000). Au-delà de 1000 m, sans date explicite, la requête est auto-limitée aux 12 derniers mois et renvoie notice.
type_localenum—Maison | Appartement | Terrain | Local commercial | Dépendance | Local industriel
prix_minnumber—Prix minimum en euros.
prix_maxnumber—Prix maximum en euros.
surface_minnumber—Surface minimum en m².
surface_maxnumber—Surface maximum en m².
date_debutstring—Date de début au format YYYY-MM-DD.
date_finstring—Date de fin au format YYYY-MM-DD.
exclude_bulk_salesbooleantrueExclure les ventes en lot (plusieurs biens dans une même mutation).
exclude_vefabooleantrueExclure les ventes en VEFA (neuf — vente en l'état futur d'achèvement).
limitnumber5Nombre de transactions à retourner (max 20).
summary_onlybooleanfalseRetourner un résumé statistique + 3 exemples au lieu de la liste complète. Recommandé pour éviter de surcharger le contexte LLM.
exclude_outliers est obsolète
Les prix aberrants sont retirés à l'ingestion : aucune transaction publiée n'en est un. Le paramètre exclude_outliers n'a donc aucun effet. Il reste accepté pour ne pas casser les appels existants, mais il est ignoré. Voir qualité des données.

Demandez à Claude

Connectez Normi à Claude Desktop ou Claude Code, puis posez directement :

Quelles sont les transactions récentes pour des appartements de 60-80m² dans le 11e arrondissement de Paris ?

Exemple de réponse

{
  "total_found": 47,
  "transactions": [
    {
      "id": 2847392,
      "date_mutation": "2024-09-15",
      "commune": "PARIS 11",
      "code_postal": "75011",
      "type_local": "Appartement",
      "valeur_fonciere": 580000,
      "surface_reelle_bati": 68,
      "prix_m2": 8529,
      "nombre_pieces_principales": 3,
      "latitude": 48.8596,
      "longitude": 2.3712,
      "is_bulk_sale": false
    },
    {
      "id": 2847211,
      "date_mutation": "2024-08-22",
      "commune": "PARIS 11",
      "code_postal": "75011",
      "type_local": "Appartement",
      "valeur_fonciere": 495000,
      "surface_reelle_bati": 62,
      "prix_m2": 7984,
      "nombre_pieces_principales": 2,
      "latitude": 48.8573,
      "longitude": 2.3698,
      "is_bulk_sale": false
    }
  ],
  "_credits": { "used": 5, "remaining": 95 },
  "query_time_ms": 134
}
summary_only pour les agents LLM
Passez summary_only=true pour recevoir des statistiques agrégées (médiane, moyenne, prix/m²) accompagnées de 3 transactions représentatives. Les statistiques portent sur toutes les ventes correspondantes, avec le même calcul (et la même limite de dates) que analyze_market_statistics. Avec un filtre de prix, de surface ou de pièces, summary.basis vaut "sample" : elles ne décrivent alors que les ventes renvoyées.
Explorer une zone dense
Pour les transactions, commencez à 500 m / 12 mois. Si vous élargissez le rayon, indiquez date_debut et explorez période par période. Un noticeindique une réponse complète mais limitée ; dense_query_timeout signifie que la requête n'a produit aucun résultat exploitable et que les crédits sont remboursés.
Visualisation interactive (MCP Apps)
Les hôtes compatibles MCP Apps (Claude, Claude Desktop, etc.) affichent automatiquement une carte des ventes retournées (fond Plan IGN) : un point par vente, coloré selon le prix au m² par rapport à la médiane de la page, avec le centre et le rayon pour une recherche par rayon. Les ventes d'une même parcelle, ou trop proches pour être distinguées, sont regroupées sous un nombre ; un clic affiche le détail de chaque vente. Avec summary_only=true, l'app affiche les statistiques sans carte. Les coordonnées et montants numériques de la carte passent uniquement par structuredContent : le JSON textuel, et l'endpoint REST, sont inchangés. L'interface s'affiche en français, avec une bascule FR / EN.