Recherche filtrée et paginée des transactions immobilières DVF (prix de vente notariaux) en France.
Documentation Index
Fetch the complete documentation index at: https://doc.fluximmo.io/llms.txt
Use this file to discover all available pages before exploring further.
POST /v2/protected/opendata/dvf/search interroge la base DVF (Demandes de Valeurs Foncières), qui recense les transactions immobilières issues des actes notariés. Vous fournissez des filters (localisation, type de bien, type de mutation, fourchettes de prix et de surface, date) et l’endpoint retourne les mutations correspondantes, triées et paginées.
C’est un endpoint de recherche brute : il renvoie les transactions telles qu’elles existent dans DVF, sans scoring ni pondération. Si vous cherchez les ventes les plus comparables à un bien donné (avec un score de similarité), utilisez plutôt /dvf/match.
La pagination est par curseur : reprenez le champ cursor de la réponse pour obtenir la page suivante.
| Champ | Type | Obligatoire | Sens |
|---|---|---|---|
filters | objet | Non | Critères de recherche en snake_case (voir ci-dessous). Sans filters, la recherche porte sur l’ensemble des transactions. |
sortBy | enum | Non | Champ de tri : id, transaction_date, price_eur, price_per_m2_living_eur, price_per_m2_land_eur, surface_m2. |
sortOrder | enum | Non | asc ou desc. |
size | integer | Non | Taille de page, entre 1 et 100 (défaut 20). |
cursor | string | Non | Curseur de pagination renvoyé par la réponse précédente. |
filters| Champ | Type | Sens |
|---|---|---|
id | string | Identifiant unique d’une mutation DVF. |
transaction_date | { from, to } | Plage de dates (ISO). from = date minimale, to = date maximale ; les deux sont optionnelles. |
transaction_type | string[] | Nature de la mutation. Valeurs : Vente, Vente en l'etat futur d'achevement, Vente terrain a batir, Echange. |
price_eur | { min, max } | Fourchette du prix de transaction en euros. |
price_per_m2_living_eur | { min, max } | Fourchette du prix au m² de surface habitable. |
price_per_m2_land_eur | { min, max } | Fourchette du prix au m² de terrain. |
location | { lat, lon, distance } | Recherche géographique autour d’un point. distance au format 10km, 500m, 2mi, etc. Les trois champs sont requis ensemble. |
departement_code | string | Code département (2-3 caractères, ex : 75, 2A, 974). |
insee_code | string | Code INSEE de la commune (5 caractères). |
postal_code | string | Code postal (5 chiffres). |
iris_code | string | Code IRIS (9 chiffres). |
iris_type | string[] | Type d’IRIS : H (habitat), Z (zone), A (activité), D (divers). |
property_type | string[] | Type de bien : Appartement, Maison, Autre, Terrain, Tertiaire, Dépendance, Volume. |
surface_m2 | { min, max } | Fourchette de surface habitable principale en m². |
main_rooms | { min, max } | Fourchette du nombre de pièces principales. |
land_surface_m2 | { min, max } | Fourchette de surface de terrain en m². |
is_new_build | boolean | Logement neuf (VEFA ou première vente). |
is_open_market | boolean | Transaction sur le marché libre (hors adjudication/expropriation). |
carrez_surface_m2 | { min, max } | Fourchette de surface loi Carrez en m². |
soil_surface_m2 | { min, max } | Fourchette de surface au sol du bâti en m². |
garden_surface_m2 | { min, max } | Fourchette de surface de jardin en m². |
| Champ | Type | Sens |
|---|---|---|
data | objet[] | Liste des mutations DVF correspondant aux filtres. |
total | integer | Nombre total de transactions correspondant à la recherche. |
size | integer | Taille de page effective. |
hasMore | boolean | true s’il reste des résultats à paginer. |
cursor | string | Curseur à réinjecter dans le champ cursor du payload pour la page suivante. |
data contient notamment id, transaction_date, transaction_type, price_eur, price_per_m2_living_eur, property_type, surface_m2, main_rooms, departement_code, insee_code, postal_code, location et is_new_build. Le contrat exact est documenté plus bas par le bloc OpenAPI.
Vente en l'etat futur d'achevement contient deux apostrophes. En shell, échappez-les comme dans l’exemple ('\'') ou utilisez un fichier JSON via -d @payload.json.Sort field
id, transaction_date, price_eur, price_per_m2_living_eur, price_per_m2_land_eur, surface_m2 Sort order
asc, desc Page size
1 <= x <= 100Cursor for pagination