Retour au blog
dvf par communeDVFcode INSEEAPIdonnées foncières

DVF par commune : télécharger ou interroger les ventes d'une ville

IM

Immo API

·6 min de lecture
DVF par commune : télécharger ou interroger les ventes d'une ville

Chercher le « DVF par commune », c'est vouloir les ventes immobilières d'une seule ville sans manipuler le fichier national. Il existe trois façons de le faire, selon que l'on veut un tableur, un script ou une application.

Réponse courte. Les données DVF par commune se récupèrent de trois façons. Etalab publie un CSV par commune et par année dans les DVF géolocalisées, à l'adresse files.data.gouv.fr/geo-dvf/latest/csv/<année>/communes/<département>/<code INSEE>.csv. L'application app.dvf.etalab.gouv.fr permet de consulter une commune sur une carte. Immo API renvoie les ventes d'une commune en JSON avec GET /api/mutations?commune= et ses statistiques (médiane, quartiles, prix au m² médian) avec GET /api/stats?commune=.

Ce que contient le DVF à l'échelle d'une commune

Les demandes de valeurs foncières recensent les mutations à titre onéreux publiées par la DGFiP : ventes, ventes en l'état futur d'achèvement, adjudications, échanges. Chaque ligne porte une date, une nature de mutation, une valeur foncière, une adresse, une parcelle et, quand il y a du bâti, un type de local et une surface réelle bâtie.

La commune est la maille la plus demandée parce qu'elle correspond aux questions concrètes : combien de ventes cette année, quel prix médian, quel prix au m² pour un appartement. Deux colonnes l'identifient dans le CSV géolocalisé : code_commune, le code INSEE sur 5 caractères, et nom_commune. Le code postal ne suffit pas : un code postal peut couvrir plusieurs communes, et une commune peut avoir plusieurs codes postaux.

Deux exceptions à connaître. Paris, Lyon et Marseille sont découpées par arrondissement, avec un code INSEE par arrondissement (75101 pour le 1er arrondissement de Paris, 69381 pour le 1er de Lyon). Et les départements du Bas-Rhin, du Haut-Rhin et de la Moselle sont absents du DVF, pour les raisons détaillées dans notre article sur le DVF en Alsace-Moselle.

DVF par commune : trois accès, fichier CSV Etalab, application DVF et API Immo API

Méthode 1 : le CSV DVF par commune d'Etalab

Les DVF géolocalisées d'Etalab sont découpées par année, puis par département et par commune. L'index public files.data.gouv.fr/geo-dvf/latest/csv/ liste, au 2 novembre 2026, les dossiers 2021 à 2025. Pour une commune, l'URL suit ce modèle :

https://files.data.gouv.fr/geo-dvf/latest/csv/2024/communes/75/75101.csv

Le fichier est un CSV en UTF-8 séparé par des virgules. Son en-tête commence par id_mutation, date_mutation, numero_disposition, nature_mutation, valeur_fonciere, puis l'adresse, code_commune, nom_commune, les lots, type_local, surface_reelle_bati, nombre_pieces_principales, surface_terrain, longitude et latitude.

Récupérer plusieurs années d'une commune

Comme il y a un fichier par année, l'historique d'une commune se reconstruit en concaténant les millésimes. En Python :

import pandas as pd

insee, dep = "75101", "75"
frames = []
for annee in range(2021, 2026):
    url = f"https://files.data.gouv.fr/geo-dvf/latest/csv/{annee}/communes/{dep}/{insee}.csv"
    frames.append(pd.read_csv(url, dtype={"code_commune": "string", "code_postal": "string"}))
commune = pd.concat(frames, ignore_index=True)
print(len(commune), commune["date_mutation"].min(), commune["date_mutation"].max())

Le script complet de nettoyage (mutations multi-lots, prix au m²) est détaillé dans DVF Python avec pandas. Pour les dates de publication des millésimes, voir le calendrier de mise à jour du DVF.

Méthode 2 : consulter une commune dans l'application DVF

L'application publique app.dvf.etalab.gouv.fr affiche les ventes sur une carte : on choisit un département, une commune, puis une section cadastrale et une parcelle. C'est la bonne porte pour regarder quelques ventes autour d'une adresse. Elle n'est pas faite pour exporter toutes les ventes d'une commune dans un tableur ni pour alimenter un logiciel. Ses limites sont décrites dans notre mode d'emploi de l'app DVF.

Méthode 3 : le DVF par commune via l'API Immo API

Quand une application, un tableau de bord ou un agent IA doit interroger une commune à la demande, télécharger des fichiers devient lourd. Immo API expose deux routes utiles, décrites dans la documentation.

Les ventes d'une commune : GET /api/mutations

Le paramètre commune prend un nom de commune. La recherche est insensible à la casse et englobe les arrondissements : commune=Paris renvoie aussi « Paris 1er Arrondissement ». D'autres filtres se combinent : code_postal, annee, type_local, prix_min, prix_max, avec limit (100 par défaut, 1000 au plus) et offset pour paginer.

curl "https://immoapi.app/api/mutations?commune=Annecy&type_local=Appartement&annee=2024&limit=100"   -H "x-api-key: dvf_live_VOTRE_CLE"

Les statistiques d'une commune : GET /api/stats

GET /api/stats prend commune ou code_postal. La route ne garde que les ventes de plus de 1 000 euros, compte une ligne par mutation, puis renvoie total_mutations, prix_moyen, prix_median, prix_p25, prix_p75, prix_min, prix_max, prix_m2_median et surface_moyenne. Le prix au m² médian est calculé sur les ventes d'un seul appartement ou d'une seule maison de plus de 9 m².

curl "https://immoapi.app/api/stats?commune=Annecy"   -H "x-api-key: dvf_live_VOTRE_CLE"
Calcul des statistiques DVF par commune : filtrer les ventes, dédupliquer les mutations, médiane et prix au m² médian

Fichier ou API : quelle méthode choisir

BesoinCSV par communeApplication DVFAPI Immo API
Regarder quelques ventesPossibleIdéalPossible
Analyser une commune dans un tableurIdéalNon prévuExport JSON paginé
Prix médian et prix au m²À calculer soi-mêmeNonGET /api/stats
Interroger des communes à la demandeTéléchargement par communeNonUne requête par commune
CoûtGratuitGratuitAbonnement, voir tarifs

Pour comparer plus largement les fournisseurs de données, voir notre comparatif des API immobilières.

Les pièges du DVF par commune

  • Les mutations multi-lignes. Une vente de plusieurs lots occupe plusieurs lignes, avec la même valeur foncière répétée. Additionner les lignes compte plusieurs fois le même prix : il faut regrouper sur id_mutation.
  • Les petites communes. Avec une dizaine de ventes par an, une médiane bouge beaucoup d'une année à l'autre. Regroupez plusieurs années ou élargissez au rayon avec GET /api/mutations/nearby.
  • Les communes nouvelles et fusions. Le CSV géolocalisé garde ancien_code_commune et ancien_nom_commune : utile pour suivre une commune qui a changé de code.
  • Les homonymes. Plusieurs communes portent le même nom. Côté API, ajoutez code_postal pour lever l'ambiguïté. Côté fichier, filtrez sur le code INSEE.
  • Les ventes atypiques. Ventes à l'euro symbolique, ventes en bloc, terrains : filtrez nature_mutation et type_local avant tout calcul. Le prix au m² par commune est détaillé dans connaître le prix au m² de sa ville.
Checklist DVF par commune : code INSEE, arrondissements, multi-lots, petites communes, homonymes

FAQ : DVF par commune

Où télécharger le DVF d'une seule commune ?

Dans les DVF géolocalisées d'Etalab : files.data.gouv.fr/geo-dvf/latest/csv/<année>/communes/<département>/<code INSEE>.csv. Il y a un fichier par commune et par année, gratuit, en CSV.

Quel code utiliser pour Paris, Lyon ou Marseille ?

Le code INSEE de l'arrondissement : 75101 à 75120 pour Paris, 69381 à 69389 pour Lyon, 13201 à 13216 pour Marseille. Il n'y a pas de fichier unique pour la ville entière.

Le code postal suffit-il pour filtrer une commune ?

Non. Un code postal peut regrouper plusieurs communes. Dans le fichier, filtrez sur code_commune. Dans l'API, utilisez commune, et ajoutez code_postal en cas d'homonymie.

Comment obtenir le prix au m² médian d'une commune ?

Avec GET /api/stats?commune=, le champ prix_m2_median le donne directement. Avec le fichier, calculez-le sur les ventes d'un seul logement, après regroupement par id_mutation.

Pourquoi ma commune n'apparaît-elle pas dans le DVF ?

Soit elle est en Alsace-Moselle (Bas-Rhin, Haut-Rhin, Moselle), où le DVF n'est pas publié, soit elle a changé de code après une fusion : cherchez l'ancien code dans ancien_code_commune.

Quelles années sont disponibles par commune ?

Au 2 novembre 2026, l'index des DVF géolocalisées propose les années 2021 à 2025. La DGFiP publie les mises à jour deux fois par an.

Passer à l'échelle de toutes les communes

Pour une commune, le CSV d'Etalab suffit. Pour des dizaines de communes, un tableau de bord ou un agent IA, une requête GET /api/stats?commune= par commune évite de télécharger et de nettoyer les fichiers. Les paramètres sont dans la documentation, et l'accès commence par l'essai gratuit présenté sur la page tarifs.