c0mm0.com — the continuously verified register of European data

Register record·DATASET·FR·AGENCYSTALE · checked 5d ago
L

Vacant housing in the private housing stock (LOVAC)Logements vacants du parc privé (LOVAC)

Logements vacants du parc privé (LOVAC)Vacant housing in the private housing stock (LOVAC)

DatasetDiscovered1/7blocked by verifiedQuery nowOpen workbenchSubscribe🇫🇷France

This national French dataset provides figures on vacant housing units within the private housing stock, broken down by commune, department, and region. It is published by the DHUP (Direction de l'habitat, de l'urbanisme et des paysages) housing department and made available through Etalab's open data platform. The data covers economic aspects of housing vacancy across France and can be used to analyze the extent and distribution of unoccupied private dwellings at various administrative levels, supporting local and national housing policy analysis.DHUP / Logement · Données économiques — French national public dataset.

donnees economiques
32
poor

Weighted across five axes. Tap a ring for what it measures.

Data schema (28 fields)

Filterable via the API (28)
CODGEO_26LIBGEO_26pp_vacant_26pp_vacant_plus_2ans_26ff_pp_total_25pp_vacant_25pp_vacant_plus_2ans_25ff_pp_total_24pp_vacant_24pp_vacant_plus_2ans_24ff_pp_total_23pp_vacant_23pp_vacant_plus_2ans_23ff_pp_total_22pp_vacant_22pp_vacant_plus_2ans_22ff_pp_total_21pp_vacant_21pp_vacant_plus_2ans_21ff_pp_total_20pp_vacant_20pp_vacant_plus_2ans_20EPCI_26LIB_EPCI_26DEPLIB_DEPREGLIB_REG

Click a field to see example values.

FieldTypeDescription
CODGEO_26Filterable via the APICodgeo 26stringINSEE municipality code as of 2026.INSEE municipality code as of 2026.
LIBGEO_26Filterable via the APILibgeo 26stringMunicipality name as of 2026.Municipality name as of 2026.
pp_vacant_26Filterable via the APIPp vacant 26stringNumber of vacant private-sector housing units in 2026.Number of vacant private-sector housing units in 2026.
pp_vacant_plus_2ans_26Filterable via the APIPp vacant plus 2ans 26stringNumber of private-sector housing units vacant for over 2 years in 2026.Number of private-sector housing units vacant for over 2 years in 2026.
ff_pp_total_25Filterable via the APIFf pp total 25stringTotal number of private-sector housing units in 2025.Total number of private-sector housing units in 2025.
pp_vacant_25Filterable via the APIPp vacant 25stringNumber of vacant private-sector housing units in 2025.Number of vacant private-sector housing units in 2025.
pp_vacant_plus_2ans_25Filterable via the APIPp vacant plus 2ans 25stringNumber of private-sector housing units vacant for over 2 years in 2025.Number of private-sector housing units vacant for over 2 years in 2025.
ff_pp_total_24Filterable via the APIFf pp total 24stringTotal number of private-sector housing units in 2024.Total number of private-sector housing units in 2024.
pp_vacant_24Filterable via the APIPp vacant 24stringNumber of vacant private-sector housing units in 2024.Number of vacant private-sector housing units in 2024.
pp_vacant_plus_2ans_24Filterable via the APIPp vacant plus 2ans 24stringNumber of private-sector housing units vacant for over 2 years in 2024.Number of private-sector housing units vacant for over 2 years in 2024.
ff_pp_total_23Filterable via the APIFf pp total 23stringTotal number of private-sector housing units in 2023.Total number of private-sector housing units in 2023.
pp_vacant_23Filterable via the APIPp vacant 23stringNumber of vacant private-sector housing units in 2023.Number of vacant private-sector housing units in 2023.
pp_vacant_plus_2ans_23Filterable via the APIPp vacant plus 2ans 23stringNumber of private-sector housing units vacant for over 2 years in 2023.Number of private-sector housing units vacant for over 2 years in 2023.
ff_pp_total_22Filterable via the APIFf pp total 22stringTotal number of private-sector housing units in 2022.Total number of private-sector housing units in 2022.
pp_vacant_22Filterable via the APIPp vacant 22stringNumber of vacant private-sector housing units in 2022.Number of vacant private-sector housing units in 2022.
pp_vacant_plus_2ans_22Filterable via the APIPp vacant plus 2ans 22stringNumber of private-sector housing units vacant for over 2 years in 2022.Number of private-sector housing units vacant for over 2 years in 2022.
ff_pp_total_21Filterable via the APIFf pp total 21stringTotal number of private-sector housing units in 2021.Total number of private-sector housing units in 2021.
pp_vacant_21Filterable via the APIPp vacant 21stringNumber of vacant private-sector housing units in 2021.Number of vacant private-sector housing units in 2021.
pp_vacant_plus_2ans_21Filterable via the APIPp vacant plus 2ans 21stringNumber of private-sector housing units vacant for over 2 years in 2021.Number of private-sector housing units vacant for over 2 years in 2021.
ff_pp_total_20Filterable via the APIFf pp total 20stringTotal number of private-sector housing units in 2020.Total number of private-sector housing units in 2020.
pp_vacant_20Filterable via the APIPp vacant 20stringNumber of vacant private-sector housing units in 2020.Number of vacant private-sector housing units in 2020.
pp_vacant_plus_2ans_20Filterable via the APIPp vacant plus 2ans 20stringNumber of private-sector housing units vacant for over 2 years in 2020.Number of private-sector housing units vacant for over 2 years in 2020.
EPCI_26Filterable via the APIEpci 26stringCode of the inter-municipal body (EPCI) as of 2026.Code of the inter-municipal body (EPCI) as of 2026.
LIB_EPCI_26Filterable via the APILib epci 26stringName of the inter-municipal body (EPCI) as of 2026.Name of the inter-municipal body (EPCI) as of 2026.
DEPFilterable via the APIstringCode of the French department.Code of the French department.
LIB_DEPFilterable via the APILib depstringName of the French department.Name of the French department.
REGFilterable via the APIstringCode of the French region.Code of the French region.
LIB_REGFilterable via the APILib regstringName of the French region.Name of the French region.

Schema captured from tabular 1 day ago.

Query the data

Pick columns and a sort, then fetch a live preview straight from the source. Choose an API-filterable column (marked ▾) under “Where” to pick from its list of values.

=

Sample data (8 records)

Record 1DEP: 01 · REG: 84
{
  "DEP": "01",
  "REG": "84",
  "EPCI_26": "200069193",
  "LIB_DEP": "Ain",
  "LIB_REG": "Auvergne-Rhône-Alpes",
  "CODGEO_26": "01001",
  "LIBGEO_26": "L'Abergement-Clémenciat",
  "LIB_EPCI_26": "Communauté de communes de la Dombes",
  "pp_vacant_20": "20",
  "pp_vacant_21": "16",
  "pp_vacant_22": "27",
  "pp_vacant_23": "15",
  "pp_vacant_24": "15",
  "pp_vacant_25": "s",
  "pp_vacant_26": "16",
  "ff_pp_total_20": "339",
  "ff_pp_total_21": "340",
  "ff_pp_total_22": "353",
  "ff_pp_total_23": "355",
  "ff_pp_total_24": "358",
  "ff_pp_total_25": "361",
  "pp_vacant_plus_2ans_20": "s",
  "pp_vacant_plus_2ans_21": "s",
  "pp_vacant_plus_2ans_22": "s",
  "pp_vacant_plus_2ans_23": "s",
  "pp_vacant_plus_2ans_24": "s",
  "pp_vacant_plus_2ans_25": "s",
  "pp_vacant_plus_2ans_26": "s"
}
Record 2DEP: 01 · REG: 84
{
  "DEP": "01",
  "REG": "84",
  "EPCI_26": "240100883",
  "LIB_DEP": "Ain",
  "LIB_REG": "Auvergne-Rhône-Alpes",
  "CODGEO_26": "01002",
  "LIBGEO_26": "L'Abergement-de-Varey",
  "LIB_EPCI_26": "Communauté de communes de la Plaine de l'Ain",
  "pp_vacant_20": "13",
  "pp_vacant_21": "s",
  "pp_vacant_22": "s",
  "pp_vacant_23": "s",
  "pp_vacant_24": "11",
  "pp_vacant_25": "s",
  "pp_vacant_26": "16",
  "ff_pp_total_20": "181",
  "ff_pp_total_21": "181",
  "ff_pp_total_22": "181",
  "ff_pp_total_23": "180",
  "ff_pp_total_24": "180",
  "ff_pp_total_25": "180",
  "pp_vacant_plus_2ans_20": "s",
  "pp_vacant_plus_2ans_21": "s",
  "pp_vacant_plus_2ans_22": "s",
  "pp_vacant_plus_2ans_23": "s",
  "pp_vacant_plus_2ans_24": "s",
  "pp_vacant_plus_2ans_25": "s",
  "pp_vacant_plus_2ans_26": "s"
}
Record 3DEP: 01 · REG: 84
{
  "DEP": "01",
  "REG": "84",
  "EPCI_26": "240100883",
  "LIB_DEP": "Ain",
  "LIB_REG": "Auvergne-Rhône-Alpes",
  "CODGEO_26": "01004",
  "LIBGEO_26": "Ambérieu-en-Bugey",
  "LIB_EPCI_26": "Communauté de communes de la Plaine de l'Ain",
  "pp_vacant_20": "679",
  "pp_vacant_21": "678",
  "pp_vacant_22": "605",
  "pp_vacant_23": "626",
  "pp_vacant_24": "628",
  "pp_vacant_25": "374",
  "pp_vacant_26": "587",
  "ff_pp_total_20": "5776",
  "ff_pp_total_21": "5843",
  "ff_pp_total_22": "5922",
  "ff_pp_total_23": "5918",
  "ff_pp_total_24": "5949",
  "ff_pp_total_25": "6005",
  "pp_vacant_plus_2ans_20": "163",
  "pp_vacant_plus_2ans_21": "190",
  "pp_vacant_plus_2ans_22": "182",
  "pp_vacant_plus_2ans_23": "188",
  "pp_vacant_plus_2ans_24": "200",
  "pp_vacant_plus_2ans_25": "207",
  "pp_vacant_plus_2ans_26": "210"
}
Record 4DEP: 01 · REG: 84
{
  "DEP": "01",
  "REG": "84",
  "EPCI_26": "200042497",
  "LIB_DEP": "Ain",
  "LIB_REG": "Auvergne-Rhône-Alpes",
  "CODGEO_26": "01005",
  "LIBGEO_26": "Ambérieux-en-Dombes",
  "LIB_EPCI_26": "Communauté de communes Dombes Saône Vallée",
  "pp_vacant_20": "38",
  "pp_vacant_21": "88",
  "pp_vacant_22": "58",
  "pp_vacant_23": "39",
  "pp_vacant_24": "61",
  "pp_vacant_25": "28",
  "pp_vacant_26": "54",
  "ff_pp_total_20": "693",
  "ff_pp_total_21": "762",
  "ff_pp_total_22": "786",
  "ff_pp_total_23": "795",
  "ff_pp_total_24": "809",
  "ff_pp_total_25": "883",
  "pp_vacant_plus_2ans_20": "s",
  "pp_vacant_plus_2ans_21": "s",
  "pp_vacant_plus_2ans_22": "s",
  "pp_vacant_plus_2ans_23": "s",
  "pp_vacant_plus_2ans_24": "s",
  "pp_vacant_plus_2ans_25": "13",
  "pp_vacant_plus_2ans_26": "13"
}
Record 5DEP: 01 · REG: 84
{
  "DEP": "01",
  "REG": "84",
  "EPCI_26": "200040350",
  "LIB_DEP": "Ain",
  "LIB_REG": "Auvergne-Rhône-Alpes",
  "CODGEO_26": "01006",
  "LIBGEO_26": "Ambléon",
  "LIB_EPCI_26": "Communauté de communes Bugey Sud",
  "pp_vacant_20": "s",
  "pp_vacant_21": "11",
  "pp_vacant_22": "s",
  "pp_vacant_23": "s",
  "pp_vacant_24": "s",
  "pp_vacant_25": "s",
  "pp_vacant_26": "s",
  "ff_pp_total_20": "s",
  "ff_pp_total_21": "s",
  "ff_pp_total_22": "s",
  "ff_pp_total_23": "s",
  "ff_pp_total_24": "s",
  "ff_pp_total_25": "s",
  "pp_vacant_plus_2ans_20": "s",
  "pp_vacant_plus_2ans_21": "s",
  "pp_vacant_plus_2ans_22": "s",
  "pp_vacant_plus_2ans_23": "s",
  "pp_vacant_plus_2ans_24": "s",
  "pp_vacant_plus_2ans_25": "s",
  "pp_vacant_plus_2ans_26": "s"
}
Record 6DEP: 01 · REG: 84
{
  "DEP": "01",
  "REG": "84",
  "EPCI_26": "240100883",
  "LIB_DEP": "Ain",
  "LIB_REG": "Auvergne-Rhône-Alpes",
  "CODGEO_26": "01007",
  "LIBGEO_26": "Ambronay",
  "LIB_EPCI_26": "Communauté de communes de la Plaine de l'Ain",
  "pp_vacant_20": "101",
  "pp_vacant_21": "95",
  "pp_vacant_22": "85",
  "pp_vacant_23": "93",
  "pp_vacant_24": "111",
  "pp_vacant_25": "81",
  "pp_vacant_26": "99",
  "ff_pp_total_20": "1222",
  "ff_pp_total_21": "1237",
  "ff_pp_total_22": "1246",
  "ff_pp_total_23": "1254",
  "ff_pp_total_24": "1264",
  "ff_pp_total_25": "1270",
  "pp_vacant_plus_2ans_20": "35",
  "pp_vacant_plus_2ans_21": "35",
  "pp_vacant_plus_2ans_22": "30",
  "pp_vacant_plus_2ans_23": "37",
  "pp_vacant_plus_2ans_24": "37",
  "pp_vacant_plus_2ans_25": "53",
  "pp_vacant_plus_2ans_26": "49"
}
Record 7DEP: 01 · REG: 84
{
  "DEP": "01",
  "REG": "84",
  "EPCI_26": "240100883",
  "LIB_DEP": "Ain",
  "LIB_REG": "Auvergne-Rhône-Alpes",
  "CODGEO_26": "01008",
  "LIBGEO_26": "Ambutrix",
  "LIB_EPCI_26": "Communauté de communes de la Plaine de l'Ain",
  "pp_vacant_20": "23",
  "pp_vacant_21": "21",
  "pp_vacant_22": "19",
  "pp_vacant_23": "23",
  "pp_vacant_24": "27",
  "pp_vacant_25": "15",
  "pp_vacant_26": "20",
  "ff_pp_total_20": "344",
  "ff_pp_total_21": "346",
  "ff_pp_total_22": "347",
  "ff_pp_total_23": "348",
  "ff_pp_total_24": "349",
  "ff_pp_total_25": "351",
  "pp_vacant_plus_2ans_20": "s",
  "pp_vacant_plus_2ans_21": "s",
  "pp_vacant_plus_2ans_22": "s",
  "pp_vacant_plus_2ans_23": "s",
  "pp_vacant_plus_2ans_24": "s",
  "pp_vacant_plus_2ans_25": "s",
  "pp_vacant_plus_2ans_26": "s"
}
Record 8DEP: 01 · REG: 84
{
  "DEP": "01",
  "REG": "84",
  "EPCI_26": "200040350",
  "LIB_DEP": "Ain",
  "LIB_REG": "Auvergne-Rhône-Alpes",
  "CODGEO_26": "01009",
  "LIBGEO_26": "Andert-et-Condon",
  "LIB_EPCI_26": "Communauté de communes Bugey Sud",
  "pp_vacant_20": "23",
  "pp_vacant_21": "23",
  "pp_vacant_22": "12",
  "pp_vacant_23": "16",
  "pp_vacant_24": "27",
  "pp_vacant_25": "26",
  "pp_vacant_26": "28",
  "ff_pp_total_20": "s",
  "ff_pp_total_21": "s",
  "ff_pp_total_22": "s",
  "ff_pp_total_23": "s",
  "ff_pp_total_24": "s",
  "ff_pp_total_25": "s",
  "pp_vacant_plus_2ans_20": "s",
  "pp_vacant_plus_2ans_21": "s",
  "pp_vacant_plus_2ans_22": "s",
  "pp_vacant_plus_2ans_23": "s",
  "pp_vacant_plus_2ans_24": "s",
  "pp_vacant_plus_2ans_25": "s",
  "pp_vacant_plus_2ans_26": "17"
}

Live sample captured at profiling time — values may have changed upstream.

Verification Status

Using the API

Query examples

curl -s 'https://tabular-api.data.gouv.fr/api/resources/2e0417b4-902d-4c60-90e7-bf5df148cb87/data/?page=1&page_size=20' -H 'Accept: application/json'

First rows as JSON (page/page_size pagination, page_size ≤ 200).

Dataset

Volume & freshness

Records
35k
34912

License

No license declared upstream.

○ Documentation○ Data dictionary○ Versioning

Source: data.gouv.fr · Open original page

Machine-readable & source

Logements vacants du parc privé (LOVAC) — live verification badge

Embed this badge in a README or wiki — it always shows the latest verification state and quality tier.