# France Property Report: DVF Sales, DPE, Risks (`geckostar/dossier-immobilier-france`) Actor

One report per French address: nearby DVF sold prices with median €/m² for houses and flats, energy certificates (DPE) of the address and neighbours, and natural and industrial hazards (Géorisques). Official open data, no API key. Only built reports are charged.

- **URL**: https://apify.com/geckostar/dossier-immobilier-france.md
- **Developed by:** [Gecko Lab](https://apify.com/geckostar) (community)
- **Categories:** Real estate, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $50.00 / 1,000 report builts

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## French Property Report by Address: sale prices (DVF), energy certificates (DPE) and hazards

One report per French address combining nearby recorded property sales (DVF) with the median price per m² by property
type, energy performance certificates (DPE) at the address and nearby, and natural and industrial hazards
(Géorisques). For estate agents, property investors, lenders and relocation services.
**Price: $0.05 per report. Addresses not found or with no data are free.**

No AI model: figures come from the official sources, only rounded as described below.

For each French address (or latitude, longitude pair), one row with:

- the **normalised address** from the national address base (Base Adresse Nationale);
- **recorded property sales** nearby (official "Demandes de valeurs foncières" database, DVF): date, type of sale,
  property type, price, area, price per m², distance, and the **median price per m²** for houses and for flats;
- **energy performance certificates (DPE)** at the address and for neighbouring dwellings within the chosen radius;
- known **natural and industrial hazards** at the address (Géorisques): seismic zone, radon, clay shrink-swell,
  hazards listed for the municipality, risk prevention plans, cavities, ground movements, polluted soil, Seveso sites.

### Sources (public)

| Source | What it provides |
|---|---|
| Base Adresse Nationale, Géoplateforme geocoding service (IGN) | normalised address, municipality code, position; neighbouring municipalities reached by the radius |
| "Demandes de valeurs foncières" (DGFiP, French tax administration), "geolocated DVF" files distributed by Etalab | sales within the radius, in the address's municipality and neighbouring ones |
| "DPE Logements existants (depuis juillet 2021)" (ADEME) | certificates at the address and for neighbouring dwellings |
| Géorisques (French Ministry for Ecological Transition, BRGM), queried with the publisher's account | hazards at the address, in the municipality and around the point |

Licences: Licence Ouverte 2.0 (Etalab) for all four sources (for Géorisques, together with its terms of use: citing
the source and the data update date); DVF is also subject to the DGFiP's terms of use (below). Each row carries its
source and licence notices (`mentions_sources`) and the access date (`consulte_le`). Any re-use must keep these
notices.

#### Source notices

Each report carries these notices in `mentions_sources` (in French, with the actual update and access dates):

- Sales: French Directorate General of Public Finances (DGFiP), "Demandes de valeurs foncières" (land value
  requests), "geolocated DVF" files distributed by Etalab (data.gouv.fr), data updated on \<dvf_update_date>,
  accessed on \<accessed_on>; Licence Ouverte 2.0. Data processed by the publisher: distances in 50 m bands, areas
  rounded to 5 m², price per m² and medians computed on the rounded area.
- Energy certificates: ADEME, "DPE Logements existants (depuis juillet 2021)" (existing dwellings since July 2021,
  data.ademe.fr), data updated on \<dpe_update_date>, accessed on \<accessed_on>; Licence Ouverte 2.0.
- Addresses: national address base (Base Adresse Nationale), Géoplateforme geocoding service (IGN), accessed on
  \<accessed_on>; Licence Ouverte 2.0.
- Hazards: French Ministry for Ecological Transition, Biodiversity and International Climate and Nature
  Negotiations – original data downloaded from https://www.georisques.gouv.fr, updated on \<hazard_update_date>
  (latest date carried by the dated items in the report; seismic zone, radon and clay exposure are not dated by the
  source), accessed on \<accessed_on>; Licence Ouverte 2.0.
- This information is not the statutory risk statement (état des risques, French environment code, art. L125-5): it
  is computed at the address point, not the land parcel, without natural disaster declarations. An empty item does
  not mean there is no risk. (Only when the hazard section was read.)
- This tool is neither produced nor endorsed by the DGFiP, Etalab, ADEME, IGN or the Ministry for Ecological
  Transition.
- The persons concerned by DVF data are not informed individually: the data comes from a publication required by
  law (French tax procedure code, art. L112 A; GDPR, art. 14(5)).

Update date: for DVF, publication date of the Etalab files read; for DPE, update date of the ADEME dataset; for
hazards, most recent update date of the Géorisques data included in the report.

### DVF re-use conditions

The "Demandes de valeurs foncières" data contains personal data. The DGFiP's terms of use state (translated):

> Re-use of the published information may neither aim at nor result in re-identifying the persons concerned.

> Re-use of the published information must comply with the legislation in force on data protection.

> The information distributed may not be indexed by online search engines.

(French tax procedure code, art. R\*112 A-3: processing "may neither aim at nor result in re-identifying the persons
concerned"; "this information may not be indexed by online search engines".)

Accordingly, the tool:

- never tries to identify sellers or buyers, and never cross-references sales with any nominative source; sales and
  certificates are presented separately, without linking them;
- drops cadastral references, lot or unit numbers, mutation IDs, sale addresses and parcel coordinates: each sale is
  located only by its distance to the address, in 50 m bands, and its areas are rounded to 5 m². The radius also
  applies to the rounded distance: varying the radius metre by metre only reveals a sale or a certificate at
  multiples of 50 m;
- gives no address for nearby certificates (only for those at the address entered), locates them in 50 m bands, and
  gives only the month and an area rounded to 5 m², so that a sale cannot be linked to a certified dwelling;
- covers only mainland France (except Alsace-Moselle), Corsica, Guadeloupe, Martinique, French Guiana and La Réunion:
  elsewhere (Alsace-Moselle, Mayotte, overseas collectivities), the "sales" part is marked "not covered".

**You agree** to respect these conditions: do not try to identify the parties to a sale, in particular by
cross-referencing the results with a nominative source (owner files, company registers, directories), do not publish
the sales on a page accessible to search engines (Apify results are private by default; do not make them public),
and use this data only to understand property prices.

### Personal data

- **Energy certificates (DPE)**: the ADEME dataset contains no assessor name or number. The tool also drops the
  certificate number (it gives access to the full document), the floor, the address complement, the residence name,
  and building, co-ownership or social housing numbers. What remains: dates, labels, consumption, area, construction
  period and, only for certificates at the address entered, the building address. For nearby certificates, the date
  is reduced to the month and the area rounded to 5 m², so that a certificate cannot reveal the exact area of a
  nearby sale.
- **Hazards (Géorisques)**: a classified facility, a polluted site or a cavity may carry a person's name (operator,
  owner). The tool keeps no name, no address, no identifier (SIRET, facility code, site identifier) and no link to a
  record sheet: only types, levels, dates and distances in 50 m bands. Classified facilities are only given for
  Seveso establishments, by threshold (upper or lower tier) and distance.
- Controller for the tool: the publisher named in the legal notice. Legal basis: legitimate interest (GDPR art.
  6(1)(f)) in informing a property decision from official publications.
- Retention: the publisher keeps no results. Data is read on each run and stored only in the user's Apify account.
  The run log contains no address or coordinates.
- Recipients: the address entered is sent to the Géoplateforme geocoding service (IGN); its coordinates are sent to
  ADEME and Géorisques (under the publisher's account for the latter); DVF files are downloaded by municipality,
  without sending the address.
- Your rights: any data subject may exercise their rights of access, objection and erasure by writing to the contact
  address. For the DVF data itself, the DGFiP handles access, rectification and restriction requests (local
  individual tax office, its CL2A office at bureau.cl2a-dvf@dgfip.finances.gouv.fr, or its data protection officer);
  the right to object does not apply to this publication, which meets a legal obligation. Errors in the files:
  dvf@dgfip.finances.gouv.fr. Complaints may be lodged with the CNIL (cnil.fr).

### Input

| Console label | Default | Purpose |
|---|---|---|
| Addresses | required | One French address per line, or "latitude, longitude" coordinates. Up to 100 distinct addresses (1,000 lines at most); duplicates are ignored. |
| Search radius (metres) | 300 | Distance around the address for sales, nearby certificates, cavities, ground movements and polluted soil, from 50 to 1,000 m. |
| Sales period (years) | 3 | Sales from the last 1 to 5 years. |
| Sales listed per report | 50 | Number of detailed sales (most recent), 200 at most. The median price covers all sales found. |
| Nearby energy certificates (DPE) per report | 20 | Number of nearby certificates listed (nearest), 100 at most. Enter 0 to list none. |

An address must have 3 to 200 characters, including letters. An address recognised only at municipality level, or
too uncertain, is not processed (and not charged).

### Output

One row per address entered. The **status** says what the report contains:

- `complet`: all sources answered;
- `incomplet`: the report is delivered, but a part is missing (a source did not answer, reading the sales was cut
  short, or sales are not published for this territory); the `motif` field or the part concerned explains why;
- `adresse_non_trouvee`: address not found or too imprecise; nothing is charged;
- `sources_indisponibles`: no source answered for this address; nothing is charged;
- `geocodage_indisponible`: the address service was not answering; nothing is charged, try again later.

Row fields: `entree` (position in the list), `adresse_saisie`, `statut`, `motif`, `geocodage`
(`adresse_normalisee`, `code_insee`, `commune`, `code_postal`, `latitude`, `longitude`, `score`, `precision`),
`parametres`, then:

- `ventes_dvf` (sales): `ventes` (`date`, `nature`, `type_bien`, `vefa`, `prix`, `surface_bati_m2`,
  `surface_terrain_m2`, `nombre_locaux`, `prix_m2`, `distance_m`), `nombre_ventes`, `medianes_prix_m2`,
  `lecture_tronquee`, `date_maj` (publication date of the files read), `elements_indisponibles`
  (`ventes_partielles` if reading was cut short). `type_bien` is one of `une maison` (a house), `un appartement` (a
  flat), `des maisons`, `des appartements`, `maisons et appartements`, `dépendance` (outbuilding), `local d'activité`
  (business premises), `logement et local d'activité`, `terrain` (land) or `terrain à bâtir` (building land). The price
  per m² is only given for the sale of a single dwelling (one house or one flat), excluding exchanges and auctions; it
  is computed on the published area, rounded to 5 m². `medianes_prix_m2` holds, for `maison` and `appartement`, the
  median price per m² (`mediane_prix_m2`) and the number of sales used (`nombre_ventes`), over all sales in the radius
  and period. The median is only given from 5 sales: below that, it is left empty (`null`) and only the number of
  sales is shown;
- `dpe` (energy certificates): `a_l_adresse` (at the address) and `a_proximite` (nearby) (`date_etablissement`,
  `date_fin_validite`, `en_cours_de_validite`, `etiquette_energie`, `etiquette_climat`, `consommation_kwhep_m2_an`,
  `emissions_kgco2_m2_an`, `surface_habitable_m2`, `type_batiment`, `periode_construction`, `annee_construction`,
  `meme_adresse`, `distance_m`, and `adresse` for certificates at the address only), `nombre_dans_le_rayon`,
  `repartition_etiquettes_energie`, `date_maj` (update date of the ADEME data). For nearby certificates
  (`a_proximite`), dates are given by month (YYYY-MM) and the area is rounded to 5 m²;
- `risques` (hazards, Géorisques): `sismicite` (`zone` 1 to 5, `libelle`), `radon` (`classe` 1 to 3, `potentiel`),
  `retrait_gonflement_argiles` (clay shrink-swell: `code`, `exposition`; empty without data at the point),
  `risques_commune` (hazards listed for the municipality: `risque`, `precisions`), `plans_prevention` (natural,
  technological or mining risk prevention plans whose perimeter contains the address: `famille`, `procedure`,
  `intitule`, `en_revision`, `zones_au_point` with `zone`, `nom`, `reglementation`, and `mise_a_jour`), `cavites`
  (`nombre`, `plus_proches`: `type`, `distance_m`), `mouvements_terrain` (ground movements: `nombre`, `plus_proches`:
  `type`, `annee`, `fiabilite`, `distance_m`), `sites_sols_pollues` (soil information sectors: `nombre`,
  `distances_m`, `a_l_adresse`), `installations_seveso` (within 2 km: `seuil_haut`, `seuil_bas` — establishments the
  source locates —, `total_source` — total given by the source for each tier, including non-located
  establishments —, `plus_proches`: `seuil`, `distance_m`), `date_maj` (most recent date of the dated items included;
  seismic zone, radon potential and clay exposure are not dated by the source). Technological risk prevention plans
  carry no title and no zone name (they often bear the operator's name): only the procedure, the zone code and the
  regulation; `elements_indisponibles`. Cavities, ground movements and polluted soil are searched within the chosen
  radius; `liste_complete` is `false` when the source counts more than 100 (the `nombre` stays exact). An empty item
  means the source records nothing at that location, not that there is no risk;
- `sources_lues`, `sources_indisponibles`, `sources_non_couvertes`, `conditions_dvf`, `mentions_sources`,
  `consulte_le`, `facturable`.

Each part (`ventes_dvf`, `dpe`, `risques`) has a `statut`: `lue` (read), `indisponible` (unavailable) or
`non_couverte` (not covered). A source that fails twice in a row is no longer queried during the run; the following
reports are marked `incomplet`. Output field names and values are in French.

### Pricing

**$0.05 per delivered report**, i.e. a report whose address was found and which holds at least one sale or one energy
certificate. Example: 1,000 reports = $50. Nothing is charged for an address not found or too imprecise, an address
service outage, a report where no source answered, or a report with no sale and no certificate within the radius.
Hazards alone never make a report chargeable; if they are missing, the report is delivered without them, marked
"incomplet", at the same price if it holds sales or certificates. Where sales are not published (Alsace-Moselle,
Mayotte, overseas collectivities), the report is "incomplet" and is only charged if it holds certificates. The run
stops cleanly at the spending limit you set.

### Limits

100 distinct addresses per run, 1,000 m radius at most, sales from the last 5 years at most, 200 sales and 100
certificates listed per report, 25 minutes per run. Beyond that, run again with the remaining addresses. The hazard
section relies on a Géorisques access registered to the publisher; it may be missing if that access is suspended or
expired, with no effect on the price.

### Related Actors

More French public-data tools by the same publisher: [apify.com/geckostar](https://apify.com/geckostar).

***

## Version française — Dossier immobilier par adresse : prix de vente (DVF), diagnostics énergétiques (DPE) et risques

Pour chaque adresse française (ou paire de coordonnées), un dossier en une ligne :

- l'**adresse normalisée** par la Base Adresse Nationale ;
- les **ventes immobilières enregistrées** à proximité (base officielle « Demandes de valeurs foncières », DVF) :
  date, nature, type de bien, prix, surface, prix au m², distance, et le **prix médian au m²** des maisons et
  des appartements ;
- les **diagnostics de performance énergétique (DPE)** de l'adresse et des logements voisins, dans le rayon
  choisi ;
- les **risques naturels et technologiques** connus à l'adresse (Géorisques) : sismicité, radon, argiles,
  risques recensés dans la commune, plans de prévention, cavités, mouvements de terrain, sols pollués,
  établissements Seveso.

Aucune intelligence artificielle : les chiffres viennent des sources officielles, seulement arrondis comme indiqué
plus bas.

**Prix : 0,05 $ par dossier livré.** Vous ne payez que pour un dossier qui contient au moins une vente ou un
diagnostic. Rien n'est facturé pour une adresse introuvable, trop imprécise ou sans donnée.

### Sources (publiques)

| Source | Ce qu'elle apporte |
|---|---|
| Base Adresse Nationale, service de géocodage de la Géoplateforme (IGN) | adresse normalisée, code de la commune, position ; communes voisines touchées par le rayon |
| « Demandes de valeurs foncières » (DGFiP), fichiers « DVF géolocalisées » diffusés par Etalab | ventes dans le rayon, dans la commune de l'adresse et les communes voisines |
| « DPE Logements existants (depuis juillet 2021) » (ADEME) | diagnostics de l'adresse et des logements voisins |
| Géorisques (ministère de la Transition écologique, BRGM), interrogé avec le compte de l'éditeur | risques à l'adresse, dans la commune et autour du point |

Licences : Licence Ouverte 2.0 (Etalab) pour les quatre sources (pour Géorisques, avec ses conditions générales
d'utilisation : mention de la source et de la date de mise à jour des données) ; DVF est en outre soumis aux
conditions générales d'utilisation de la DGFiP (ci-dessous). Chaque ligne porte ses mentions de source et de
licence (`mentions_sources`) et la date de consultation (`consulte_le`). Toute réutilisation doit conserver ces
mentions.

#### Mentions de source

Chaque dossier porte, dans `mentions_sources`, les mentions suivantes (dates réelles de mise à jour et de
consultation) :

- Ventes : Direction générale des Finances publiques (DGFiP), « Demandes de valeurs foncières », fichiers « DVF
  géolocalisées » diffusés par Etalab (data.gouv.fr), données mises à jour le \<date_maj_dvf>, consultées le
  \<consulte_le> ; Licence Ouverte 2.0. Données retraitées par l'éditeur : distances par tranches de 50 m, surfaces
  arrondies à 5 m², prix au m² et médianes calculés sur la surface arrondie.
- DPE : ADEME, « DPE Logements existants (depuis juillet 2021) » (data.ademe.fr), données mises à jour le
  \<date_maj_dpe>, consultées le \<consulte_le> ; Licence Ouverte 2.0.
- Adresses : Base Adresse Nationale, service de géocodage de la Géoplateforme (IGN), consultée le \<consulte_le> ;
  Licence Ouverte 2.0.
- Risques : Ministère de la Transition écologique, de la Biodiversité et des Négociations Internationales sur le
  Climat et la Nature – Données originales téléchargées sur https://www.georisques.gouv.fr, mise à jour du
  \<date_maj_risques> (date la plus récente des éléments datés repris ; zonage sismique, potentiel radon et
  exposition aux argiles ne sont pas datés par la source), consultées le \<consulte_le> ; Licence Ouverte 2.0.
- Ces informations ne constituent pas l'état des risques prévu à l'article L125-5 du code de l'environnement :
  elles sont établies au point de l'adresse et non à la parcelle, sans les arrêtés de catastrophe naturelle. Une
  rubrique vide ne signifie pas l'absence de risque. (Seulement quand la section des risques est lue.)
- Cet outil n'est ni produit ni approuvé par la DGFiP, Etalab, l'ADEME, l'IGN ni le ministère de la Transition
  écologique.
- Les personnes concernées par les données DVF ne sont pas informées individuellement : les données proviennent
  d'une publication prévue par la loi (art. L112 A du livre des procédures fiscales ; RGPD, art. 14.5).

Date de mise à jour : DVF, date de publication des fichiers d'Etalab lus ; DPE, date de mise à jour des données
du jeu de l'ADEME ; risques, date de mise à jour la plus récente des données Géorisques reprises dans le dossier.

- Sales: French Directorate General of Public Finances (DGFiP), "Demandes de valeurs foncières" (land value
  requests), "geolocated DVF" files distributed by Etalab (data.gouv.fr), data updated on \<dvf_update_date>,
  accessed on \<accessed_on>; Licence Ouverte 2.0. Data processed by the developer: distances in 50 m bands, areas
  rounded to 5 m², price per m² and medians computed on the rounded area.
- Energy certificates: ADEME, "DPE Logements existants (depuis juillet 2021)" (existing dwellings since July
  2021, data.ademe.fr), data updated on \<dpe_update_date>, accessed on \<accessed_on>; Licence Ouverte 2.0.
- Addresses: national address base (Base Adresse Nationale), Géoplateforme geocoding service (IGN), accessed on
  \<accessed_on>; Licence Ouverte 2.0.
- Hazards: French Ministry for Ecological Transition, Biodiversity and International Climate and Nature
  Negotiations – original data downloaded from https://www.georisques.gouv.fr, updated on \<hazard_update_date>
  (latest date carried by the dated items in the report; seismic zone, radon and clay exposure are not dated by
  the source), accessed on \<accessed_on>; Licence Ouverte 2.0.
- This information is not the statutory risk statement (French environment code, art. L125-5): it is computed at
  the address point, not the land parcel, without natural disaster declarations. An empty item does not mean
  there is no risk. (Only when the hazard section was read.)
- This tool is neither produced nor endorsed by the DGFiP, Etalab, ADEME, IGN or the Ministry for Ecological
  Transition.
- The persons concerned by DVF data are not informed individually: the data comes from a publication required
  by law (French tax procedure code, art. L112 A; GDPR, art. 14(5)).

### Conditions de réutilisation des données DVF

Les données « Demandes de valeurs foncières » contiennent des données à caractère personnel. Conditions générales
d'utilisation de la DGFiP :

> La réutilisation des informations publiées ne peut avoir ni pour objet ni pour effet de permettre la
> réidentification des personnes concernées.

> La réutilisation des informations publiées doit être conforme à la législation en vigueur en matière de
> protection des données.

> Les informations diffusées ne peuvent faire l'objet d'une indexation sur les moteurs de recherche en ligne.

(Article R\*112 A-3 du livre des procédures fiscales : les traitements « ne peuvent avoir ni pour objet ni pour
effet de permettre la réidentification des personnes concernées » ; « ces informations ne peuvent faire l'objet
d'une indexation sur les moteurs de recherche en ligne ».)

En conséquence, l'outil :

- ne cherche jamais à identifier les vendeurs ou les acheteurs, et ne croise les ventes avec aucune source
  nominative ; les ventes et les diagnostics sont présentés séparément, sans rapprochement entre eux ;
- ne reprend ni référence cadastrale, ni numéro de lot ou de local, ni identifiant de mutation, ni adresse de la
  vente, ni coordonnées de parcelle : chaque vente n'est située que par sa distance à l'adresse, par tranche de
  50 m, et ses surfaces sont arrondies à 5 m². Le rayon s'applique lui aussi à la distance arrondie : faire varier
  le rayon au mètre près ne fait apparaître une vente ou un diagnostic qu'aux multiples de 50 m ;
- ne donne pas l'adresse des diagnostics voisins (seulement celle des diagnostics de l'adresse saisie), les situe
  par tranche de 50 m, n'en donne que le mois et une surface arrondie à 5 m², pour qu'une vente ne puisse pas être
  rattachée à un logement diagnostiqué ;
- ne couvre que la métropole (hors Alsace-Moselle), la Corse, la Guadeloupe, la Martinique, la Guyane et
  La Réunion : ailleurs (Alsace-Moselle, Mayotte, collectivités d'outre-mer), la partie « ventes » est marquée
  « non couverte ».

**Vous vous engagez** à respecter ces conditions : ne pas chercher à identifier les parties à une vente,
notamment en croisant les résultats avec une source nominative (fichiers des propriétaires, registres de
sociétés, annuaires), ne pas publier les ventes sur une page accessible aux moteurs de recherche (les résultats
Apify sont privés par défaut ; ne les rendez pas publics), et n'utiliser ces données que pour la connaissance
des prix immobiliers.

### Données personnelles

- **DPE** : le jeu de l'ADEME ne contient ni nom ni numéro de diagnostiqueur. L'outil ne reprend pas non plus le
  numéro du diagnostic (il donne accès au document complet), ni l'étage, le complément d'adresse, le nom de
  résidence, les numéros d'immeuble, de copropriété ou de logement social. Restent les dates, les étiquettes,
  les consommations, la surface, l'époque de construction et, pour les seuls diagnostics de l'adresse saisie,
  l'adresse du bâtiment. Pour les diagnostics voisins, la date est réduite au mois et la surface arrondie à
  5 m², pour qu'un diagnostic ne puisse pas révéler la surface exacte d'une vente voisine.
- **Risques (Géorisques)** : une installation classée, un site pollué ou une cavité peuvent porter le nom d'une
  personne (exploitant, propriétaire). L'outil ne reprend aucun nom, aucune adresse, aucun identifiant (SIRET,
  code d'installation, identifiant de site) ni aucun lien vers une fiche : seulement des types, des niveaux, des
  dates et des distances par tranche de 50 m. Les installations classées ne sont données que pour les
  établissements Seveso, par seuil (haut ou bas) et par distance.
- Responsable de l'outil : l'éditeur indiqué dans les mentions légales. Base légale : intérêt légitime (RGPD,
  art. 6.1.f) à éclairer une décision immobilière à partir de publications officielles.
- Conservation : l'éditeur ne garde aucun résultat. Les données sont lues à chaque exécution et enregistrées
  dans le seul compte Apify de l'utilisateur. Le journal d'exécution ne contient aucune adresse ni coordonnée.
- Destinataires : l'adresse saisie est envoyée au service de géocodage de la Géoplateforme (IGN) ; ses
  coordonnées sont envoyées à l'ADEME et à Géorisques (sous le compte de l'éditeur pour ce dernier) ; les
  fichiers DVF sont téléchargés par commune, sans transmettre l'adresse.
- Vos droits : toute personne concernée peut exercer ses droits d'accès, d'opposition et d'effacement en
  écrivant à l'adresse de contact. Pour les données DVF elles-mêmes, la DGFiP indique, pour l'exercice des droits
  d'accès, de rectification et de limitation, le service des impôts des particuliers, son bureau CL2A
  (bureau.cl2a-dvf@dgfip.finances.gouv.fr) ou son délégué à la protection des données ; le droit d'opposition ne
  s'applique pas à sa publication, qui répond à une obligation légale. Pour les erreurs dans les fichiers :
  dvf@dgfip.finances.gouv.fr. Réclamation possible auprès de la CNIL (cnil.fr).

### Entrée

| Libellé dans la console (en anglais) | Valeur proposée | À quoi ça sert |
|---|---|---|
| Addresses | obligatoire | Une adresse française par ligne, ou des coordonnées « latitude, longitude ». 100 adresses différentes au plus (1 000 lignes au plus) ; les doublons sont ignorés. |
| Search radius (metres) | 300 | Distance autour de l'adresse pour les ventes, les diagnostics voisins, les cavités, les mouvements de terrain et les sols pollués, de 50 à 1 000 m. |
| Sales period (years) | 3 | Ventes des 1 à 5 dernières années. |
| Sales listed per report | 50 | Nombre de ventes détaillées (les plus récentes), 200 au plus. Le prix médian porte sur toutes les ventes trouvées. |
| Nearby energy certificates (DPE) per report | 20 | Nombre de diagnostics voisins listés (les plus proches), 100 au plus. Saisissez 0 pour n'en lister aucun. |

Une adresse doit compter de 3 à 200 caractères, dont des lettres. Une adresse reconnue seulement au niveau de la
commune, ou trop incertaine, n'est pas traitée (et n'est pas facturée).

### Sortie

Une ligne par adresse saisie. Le **statut** dit ce que contient le dossier :

- `complet` : toutes les sources ont répondu ;
- `incomplet` : le dossier est livré, mais une partie manque (une source n'a pas répondu, la lecture des ventes
  a été écourtée, ou les ventes ne sont pas publiées pour ce territoire) ; le champ `motif` ou la partie
  concernée l'explique ;
- `adresse_non_trouvee` : adresse introuvable ou trop imprécise ; rien n'est facturé ;
- `sources_indisponibles` : aucune source n'a répondu pour cette adresse ; rien n'est facturé ;
- `geocodage_indisponible` : le service d'adresses ne répondait pas ; rien n'est facturé, relancez plus tard.

Champs de la ligne : `entree` (rang dans la liste), `adresse_saisie`, `statut`, `motif`, `geocodage`
(`adresse_normalisee`, `code_insee`, `commune`, `code_postal`, `latitude`, `longitude`, `score`, `precision`),
`parametres`, puis :

- `ventes_dvf` : `ventes` (`date`, `nature`, `type_bien`, `vefa`, `prix`, `surface_bati_m2`,
  `surface_terrain_m2`, `nombre_locaux`, `prix_m2`, `distance_m`), `nombre_ventes`, `medianes_prix_m2`,
  `lecture_tronquee`, `date_maj` (date de publication des fichiers lus), `elements_indisponibles`
  (`ventes_partielles` si la lecture a été écourtée). `type_bien` vaut `une maison`, `un appartement`,
  `des maisons`, `des appartements`, `maisons et appartements`, `dépendance`, `local d'activité`,
  `logement et local d'activité`, `terrain` ou `terrain à bâtir`. Le prix au m² n'est donné que pour la vente d'un
  seul logement (une maison ou un appartement), hors échanges et adjudications ; il est calculé sur la surface
  publiée, arrondie à 5 m². `medianes_prix_m2` contient, pour `maison` et pour `appartement`, le prix médian au
  m² (`mediane_prix_m2`) et le nombre de ventes retenues (`nombre_ventes`), sur toutes les ventes du rayon et de
  la période. Le prix médian n'est donné qu'à partir de 5 ventes : en dessous, la case reste vide (`null`) et
  seul le nombre de ventes est indiqué ;
- `dpe` : `a_l_adresse` et `a_proximite` (`date_etablissement`, `date_fin_validite`, `en_cours_de_validite`,
  `etiquette_energie`, `etiquette_climat`, `consommation_kwhep_m2_an`, `emissions_kgco2_m2_an`,
  `surface_habitable_m2`, `type_batiment`, `periode_construction`, `annee_construction`, `meme_adresse`,
  `distance_m`, et `adresse` pour les seuls diagnostics de l'adresse), `nombre_dans_le_rayon`,
  `repartition_etiquettes_energie`, `date_maj` (date de mise à jour des données de l'ADEME). Pour les
  diagnostics voisins (`a_proximite`), les dates sont données au mois (AAAA-MM) et la surface est arrondie à
  5 m² ;
- `risques` (Géorisques) : `sismicite` (`zone` de 1 à 5, `libelle`), `radon` (`classe` 1 à 3, `potentiel`),
  `retrait_gonflement_argiles` (`code`, `exposition` ; vide sans donnée au point), `risques_commune` (risques
  recensés dans la commune : `risque`, `precisions`), `plans_prevention` (plans de prévention des risques
  naturels, technologiques ou miniers dont le périmètre contient l'adresse : `famille`, `procedure`, `intitule`,
  `en_revision`, `zones_au_point` avec `zone`, `nom`, `reglementation`, et `mise_a_jour`), `cavites` (`nombre`,
  `plus_proches` : `type`, `distance_m`), `mouvements_terrain` (`nombre`, `plus_proches` : `type`, `annee`,
  `fiabilite`, `distance_m`), `sites_sols_pollues` (secteurs d'information sur les sols : `nombre`,
  `distances_m`, `a_l_adresse`), `installations_seveso` (à 2 km : `seuil_haut`, `seuil_bas` — établissements que
  la source localise —, `total_source` — total annoncé par la source pour chaque seuil, établissements non
  localisés compris —, `plus_proches` : `seuil`, `distance_m`), `date_maj` (date la plus récente des éléments
  datés repris ; zonage sismique, potentiel radon et exposition aux argiles ne sont pas datés par la source).
  Les plans de prévention des risques technologiques n'ont ni intitulé ni nom de zone (ils portent souvent le
  nom de l'exploitant) : seulement la procédure, le code de zone et la réglementation ;
  `elements_indisponibles`. Cavités, mouvements de terrain et sols pollués sont cherchés dans le rayon choisi ;
  `liste_complete` vaut `false` quand la source en compte plus de 100 (le `nombre` reste exact). Une rubrique
  vide signifie que la source ne recense rien à cet endroit, pas l'absence de risque ;
- `sources_lues`, `sources_indisponibles`, `sources_non_couvertes`, `conditions_dvf`, `mentions_sources`,
  `consulte_le`, `facturable`.

Chaque partie (`ventes_dvf`, `dpe`, `risques`) porte un `statut` : `lue`, `indisponible` ou `non_couverte`. Une
source qui échoue deux fois de suite n'est plus interrogée pendant l'exécution ; les dossiers suivants sont
marqués `incomplet`.

### Prix et facturation

**0,05 $ par dossier livré**, c'est-à-dire un dossier dont l'adresse a été trouvée et qui contient au moins une
vente ou un diagnostic énergétique. Rien n'est facturé pour une adresse introuvable ou trop imprécise, une panne
du service d'adresses, un dossier dont aucune source n'a répondu, ou un dossier sans aucune vente ni aucun
diagnostic dans le rayon. Les risques ne rendent jamais à eux seuls un dossier facturable ; s'ils manquent, le
dossier est livré sans eux, marqué « incomplet », au même prix s'il contient des ventes ou des diagnostics. Là
où les ventes ne sont pas publiées (Alsace-Moselle, Mayotte, collectivités d'outre-mer), le dossier est
« incomplet » et n'est facturé que s'il contient des diagnostics. L'exécution s'arrête proprement à la limite de
dépense que vous avez fixée.

### Limites

100 adresses différentes par exécution, rayon de 1 000 m au plus, ventes des 5 dernières années au plus, 200
ventes et 100 diagnostics détaillés par dossier, 25 minutes d'exécution. Au-delà, relancez avec les adresses
restantes.

***

### Conditions d'utilisation / Terms

Outil destiné aux professionnels. Il reprend les données publiées par la DGFiP, l'ADEME, l'IGN et Géorisques telles qu'elles
sont diffusées : une vente peut manquer ou être enregistrée avec retard, un prix couvrir plusieurs biens, un DPE
être remplacé. Les fichiers DVF sont publiés avec plusieurs mois de décalage : les ventes les plus récentes
peuvent manquer. Si ces fichiers ne sont pas joignables, le dossier est livré sans les ventes, avec le statut
« incomplet ». Ces résultats ne remplacent ni une estimation par un professionnel, ni le diagnostic officiel du
logement. La section des risques ne constitue pas l'état des risques prévu à l'article L125-5 du code de
l'environnement, que le vendeur ou le bailleur doit remettre à l'acquéreur ou au locataire (formulaire sur
www.georisques.gouv.fr) : elle est établie au point de l'adresse et non à la parcelle, ne reprend ni les arrêtés
de catastrophe naturelle ni les sinistres indemnisés, et ne couvre pas toutes les rubriques de cet état. Une
rubrique vide signifie seulement que la source ne recense rien à cet endroit, pas l'absence de risque. La section
des risques dépend d'un accès à Géorisques ouvert au nom de l'éditeur ; elle peut manquer si cet accès est
suspendu ou expiré, sans effet sur le prix. Les données sont lues au moment de l'exécution, sans garantie d'exhaustivité ni d'actualité.
L'éditeur ne répond pas des décisions prises sur la seule base de ces résultats, ni de l'usage que l'utilisateur
en fait, dans les limites permises par la loi. Cette clause n'écarte aucun droit que la loi réserve aux
consommateurs, notamment la garantie légale de conformité des contenus et services numériques.

Intended for business use. Data is reproduced as published by the French tax administration, ADEME, IGN and Géorisques:
sales may be missing or recorded late, a price may cover several properties, an energy certificate may be
superseded. DVF files are published several months after the sales, so the latest sales may be missing; if the
files cannot be reached, reports are delivered without sales, marked "incomplete". Results do not replace a
professional valuation or the official energy certificate. The hazard section is not the statutory risk statement
(état des risques, French environment code, art. L125-5) that a seller or landlord must provide: it is computed
at the address point, not the land parcel, leaves out natural disaster declarations and insured claims, and does
not cover every item of that statement. An empty item only means the source records nothing there, not that
there is no risk. The hazard section relies on a Géorisques access registered to the developer; it may be
missing if that access is suspended or expired, at no effect on the price. No guarantee of completeness or freshness. To the
extent permitted by law, the developer is not liable for decisions based solely on these results or for the
user's use of them. Nothing here limits statutory consumer rights.

### Mentions légales / Legal notice

- Éditeur et vendeur / Publisher and seller : Audric Moussaoui, entrepreneur individuel (EI), pseudonyme « geckostar » / pseudonym "geckostar"
- Adresse / Address : 88 rue Oberkampf, 75011 Paris, France
- Téléphone / Phone : +33 6 95 11 28 15
- Courriel / E-mail : audricmm@gmail.com
- SIREN : en cours d'attribution, déclaration d'activité déposée le 24/10/2026 / being assigned, registration filed on 24 October 2026
- Directeur de la publication / Publication director : Audric Moussaoui
- TVA non applicable, art. 293 B du CGI / VAT not applicable (French VAT franchise, art. 293 B CGI)
- Hébergement / Hosting : Apify Technologies s.r.o., Vodičkova 704/36, 110 00 Prague 1, République tchèque / Czech Republic (hello@apify.com)

# Actor input Schema

## `addresses` (type: `array`):

One French address per line (“1 place du Capitole, Toulouse”), or “latitude, longitude” coordinates in decimal degrees (“43.6039, 1.4440”). Up to 100 distinct addresses per run (1,000 lines at most); duplicates are ignored.

## `radiusMeters` (type: `integer`):

Distance around the address for sales, nearby energy certificates, cavities, ground movements and polluted soil. From 50 to 1,000 m.

## `periodYears` (type: `integer`):

Sales from the last N years, 1 to 5 (published sales go back five years).

## `maxSalesPerReport` (type: `integer`):

Maximum number of detailed sales per address (most recent first). Medians cover all sales found within the radius.

## `maxDpePerReport` (type: `integer`):

Maximum number of certificates listed around the address (nearest first), in addition to those at the address itself. Enter 0 to list none.

## Actor input object example

```json
{
  "addresses": [
    "1 place du Capitole, Toulouse",
    "10 rue de Rivoli, Paris"
  ],
  "radiusMeters": 300,
  "periodYears": 3,
  "maxSalesPerReport": 50,
  "maxDpePerReport": 20
}
```

# Actor output Schema

## `results` (type: `string`):

Une ligne par adresse saisie. Seuls les dossiers construits (adresse trouvée et au moins une source qui a répondu) sont facturés ; les autres lignes indiquent leur motif.

## `bilan` (type: `string`):

Compteurs de l'exécution : adresses, dossiers construits et facturés, adresses non trouvées, sources en échec.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "addresses": [
        "1 place du Capitole, Toulouse",
        "10 rue de Rivoli, Paris"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("geckostar/dossier-immobilier-france").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "addresses": [
        "1 place du Capitole, Toulouse",
        "10 rue de Rivoli, Paris",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("geckostar/dossier-immobilier-france").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "addresses": [
    "1 place du Capitole, Toulouse",
    "10 rue de Rivoli, Paris"
  ]
}' |
apify call geckostar/dossier-immobilier-france --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,geckostar/dossier-immobilier-france"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/bRIc2kVOvY4t6R6Sm/builds/j07PNCGWiDlfys4RW/openapi.json
