c0mm0.com — the continuously verified register of European data

Register record·API·FR·MUNICIPALITY·Updated AnnualVERIFIED · checked 3h ago
E

Rent control frameworkEncadrement des loyers

Encadrement des loyersRent control framework

APIExecutable4/7Query nowOpen workbenchSubscribe🇫🇷France

This API provides data on rent control ("encadrement des loyers") in France, indicating reference, maximum, and minimum rent levels applicable in regulated zones. It is published as part of the national housing open-data program under the DHUP (Housing, Urban Planning and Landscapes Directorate) and related housing bodies, with an annual refresh cycle. The dataset supports checks on whether rents comply with local caps, particularly in areas such as Paris where rent control policy is enforced, and can be used by tenants, landlords, and public authorities to verify allowable rent amounts by property characteristics and location.Encadrement des loyers — official French public-data API published by DHUP / Logement (Bien, Annuel refresh).

housingprices
70
good

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

Data schema (14 fields)

Filterable via the API (12)
anneeid_zoneid_quartiernom_quartierpieceepoquemeuble_txtrefmaxminvillecode_grand_quartier

Click a field to see example values.

FillFieldTypeDescription
100%anneeFilterable via the APIAnnéetextYear the rent control reference applies to.Year the rent control reference applies to.
100%id_zoneFilterable via the APISecteurs géographiquesintIdentifier of the geographic rent-control sector.Identifier of the geographic rent-control sector.
100%id_quartierFilterable via the APINuméro du quartierintCity of Paris district number (C_QU).Numéro de quartier Ville de Paris - C_QU
100%nom_quartierFilterable via the APINom du quartiertextName of the district.Name of the district.
100%pieceFilterable via the APINombre de pièces principalesintNumber of main rooms in the dwelling.Number of main rooms in the dwelling.
100%epoqueFilterable via the APIEpoque de constructiontextPeriod during which the building was constructed.Period during which the building was constructed.
100%meuble_txtFilterable via the APIType de locationtextRental type, furnished or unfurnished.Rental type, furnished or unfurnished.
100%refFilterable via the APILoyers de référencedoubleReference rent in euros per square metre of living area.en euros par mètre carré de surface habitable
100%maxFilterable via the APILoyers de référence majorésdoubleUpper reference rent limit in euros per square metre of living area.en euros par mètre carré de surface habitable
100%minFilterable via the APILoyers de référence minorésdoubleLower reference rent limit in euros per square metre of living area.en euros par mètre carré de surface habitable
villeFilterable via the APItextCity to which the rent control zone belongs.City to which the rent control zone belongs.
code_grand_quartierFilterable via the APINuméro INSEE du quartierintINSEE code identifying the district.INSEE code identifying the district.
geo_shapeShapegeo_shapeGeographic boundary polygon of the district.Geographic boundary polygon of the district.
geo_point_2dCoordinatesgeo_point_2dGeographic centroid coordinates of the district.Geographic centroid coordinates of the district.

Schema captured from opendatasoft 21 days 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 (5 records)

Record 1max: 32.9 · min: 19.2
{
  "max": 32.9,
  "min": 19.2,
  "ref": 27.4,
  "annee": "2025",
  "piece": 2,
  "ville": "PARIS",
  "epoque": "1946-1970",
  "id_zone": 5,
  "geo_shape": {
    "type": "Feature",
    "geometry": {
      "type": "Polygon",
      "coordinates": [
        [
          [
            2.3553447343852665,
            48.871262685264895
          ],
          [
            2.3542605804166112,
            48.86933005072561
          ],
          [
            2.352631014364641,
            48.86969449879282
          ],
          [
            2.350960685459888,
            48.870049489907146
          ],
          [
            2.347880282483183,
            48.870704148509446
          ],
          [
            2.347900471891945,
            48.87200665691326
          ],
          [
            2.3479119512804676,
            48.8740239108311
          ],
          [
            2.3482465068115874,
            48.875793736103766
          ],
          [
            2.348321129071744,
            48.876019723671796
          ],
          [
            2.3486612992964715,
            48.87663406745335
          ],
          [
            2.349084948148027,
            48.87742251003853
          ],
          [
            2.3514048047135003,
            48.87709813159916
          ],
          [
            2.355369054416522,
            48.876558067305695
          ],
          [
            2.3560198123562435,
            48.87649359542387
          ],
          [
            2.3561179028036126,
            48.876489320615775
          ],
          [
            2.356165506082169,
            48.87648724557451
          ],
          [
            2.3580835401814877,
            48.876162712909334
          ],
          [
            2.358032126726192,
            48.876068862320494
          ],
          [
            2.3579445916319752,
            48.875912655039414
          ],
          [
            2.3578900112329224,
            48.8758022306218
          ],
          [
            2.3577729474672235,
            48.87559176526929
          ],
          [
            2.3572736026883967,
            48.87469398819949
          ],
          [
            2.3567748167673397,
            48.87381638065245
          ],
          [
            2.3559040366508555,
            48.87226852338971
          ],
          [
            2.3553447343852665,
            48.871262685264895
          ]
        ]
      ]
    },
    "properties": {}
  },
  "meuble_txt": "non meublé",
  "id_quartier": 38,
  "geo_point_2d": {
    "lat": 48.87361766097465,
    "lon": 2.352282894951218
  },
  "nom_quartier": "Porte-Saint-Denis",
  "code_grand_quartier": 7511038
}
Record 2max: 33.4 · min: 19.5
{
  "max": 33.4,
  "min": 19.5,
  "ref": 27.8,
  "annee": "2025",
  "piece": 1,
  "ville": "PARIS",
  "epoque": "1971-1990",
  "id_zone": 11,
  "geo_shape": "[large value omitted]",
  "meuble_txt": "non meublé",
  "id_quartier": 77,
  "geo_point_2d": {
    "lat": 48.87153120058614,
    "lon": 2.3875492398498035
  },
  "nom_quartier": "Belleville",
  "code_grand_quartier": 7512077
}
Record 3max: 34 · min: 19.8
{
  "max": 34,
  "min": 19.8,
  "ref": 28.3,
  "annee": "2023",
  "piece": 1,
  "ville": "PARIS",
  "epoque": "1971-1990",
  "id_zone": 8,
  "geo_shape": "[large value omitted]",
  "meuble_txt": "meublé",
  "id_quartier": 57,
  "geo_point_2d": {
    "lat": 48.83429362836976,
    "lon": 2.296919974448867
  },
  "nom_quartier": "Saint-Lambert",
  "code_grand_quartier": 7511557
}
Record 4max: 31.3 · min: 18.3
{
  "max": 31.3,
  "min": 18.3,
  "ref": 26.1,
  "annee": "2024",
  "piece": 1,
  "ville": "PARIS",
  "epoque": "1946-1970",
  "id_zone": 10,
  "geo_shape": "[large value omitted]",
  "meuble_txt": "non meublé",
  "id_quartier": 67,
  "geo_point_2d": {
    "lat": 48.888481513920595,
    "lon": 2.313856169006357
  },
  "nom_quartier": "Batignolles",
  "code_grand_quartier": 7511767
}
Record 5max: 25.3 · min: 14.8
{
  "max": 25.3,
  "min": 14.8,
  "ref": 21.1,
  "annee": "2024",
  "piece": 4,
  "ville": "PARIS",
  "epoque": "1946-1970",
  "id_zone": 9,
  "geo_shape": "[large value omitted]",
  "meuble_txt": "meublé",
  "id_quartier": 69,
  "geo_point_2d": {
    "lat": 48.89257777114592,
    "lon": 2.334363089913081
  },
  "nom_quartier": "Grandes-Carrières",
  "code_grand_quartier": 7511869
}

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

Verification Status

Using the API

Configuration

Base URL
https://opendata.paris.fr/api/explore/v2.1/catalog/datasets/logement-encadrement-des-loyers

License

  • Redistributable
  • Attribution required

Query examples

curl -s 'https://opendata.paris.fr/api/explore/v2.1/catalog/datasets/logement-encadrement-des-loyers/records?limit=20' -H 'Accept: application/json'

First 20 records of the dataset as JSON.

Uses the Opendatasoft Explore v2.1 syntax — supports select, where, group_by and order_by.

Full API documentation ↗

Rate limits

10 000 req/day
per ipmeasured
observed 21 days ago

Dataset

Volume & freshness

Records
18k
17920
Update cadence
Annual
declared upstream
Last upstream update
1 year ago
2025-06-17

License

No license declared upstream.

Documentation Data dictionary Versioning

Source: opendatasoft

Machine-readable & source

Encadrement des loyers — live verification badge

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