Skip to main content
Buildings come from the BDNB (Base de données nationale des bâtiments), the French national building database. It merges the cadastre, land files, energy certificates and other public sources around one object per building. A building id looks like bdnb-bg-1M1D-U5N1-HH7E and stays stable from one release to the next. Gabin links each building to the companies around it: the establishments located there (from SIRENE) and the legal entities that own premises in it (from the land files). How the link is made is explained in data sources.

From an address to who occupies and owns the building

This example starts from a street address in Lyon and ends with the companies located in the building, its corporate owners and its property manager.
1

Geocode the address

GET /v1/geocode returns the normalized address and, for a house-number match, the BDNB building at that point.
Only a housenumber match carries a building. A street match has none.
2

Read the building profile

companies_count tells you how many companies are linked to the building before you list them.
3

List the companies linked to the building

Each entry has roles:
  • occupant: an establishment of the company is located in the building, matched by address or position. establishment gives its SIRET, trade name and activity.
  • owner: the company owns property in the building, according to the land files. establishment is null for an owner only.
A company that both occupies and owns appears once with both roles. Active companies come first, then by name.
4

Read the corporate owners

GET /v1/buildings/{id}/owners details the owners that are legal entities, the one holding the most premises first.
  • holdings lists the premises (unit) and land (parcel) held, with the codes of the MAJIC land files: floor ("00" ground floor), right (P owner, U usufructuary, N bare owner…), owner_group.
  • property_manager is set when the entity looks like a property manager (régie, syndic) rather than an owner. Here the first entry is the registered condominium manager.
  • likely_owner is set for an occupant that looks like the owner without a land title, for example an SCI (real-estate holding company) registered at the building’s address. Its sources is ["sirene"].
5

Read the condominium

condominium is null when the building is not a registered condominium. A volunteer manager is an individual and is never named: manager is null and volunteer_manager is true.
If you start from a place name rather than an address (“hôpital Édouard Herriot”), use GET /v1/places. See zones and addresses.

Find buildings in an area

GET /v1/buildings lists the buildings of one area, ordered by id. Give exactly one area: Without an area, or with more than one, the API returns 400 INVALID. A larger bounding box is refused:

Filters

string
Main uses, comma-separated: residential, tertiary (offices, shops, public facilities), industrial (industry, warehouses), mixed.
integer
Built in or after this year.
integer
Built in or before this year.
string
Energy classes, comma-separated, for example F,G. The DPE (diagnostic de performance énergétique) is the French energy performance certificate, graded A (best) to G.
integer
At least this many linked companies, counted as in companies_count of the list.
string
default:"json"
json returns a list of building summaries. geojson returns a GeoJSON FeatureCollection in data.
string
default:"point"
With format=geojson: point (the building center) or footprint (the polygon).
This request lists residential or mixed buildings with at least one company, within 150 m of the building above:
The total is counted on the first page (up to 10,000) and carried by the cursor. A filtered search over a large city can take too long and return TIMEOUT: use a bounding box or a district instead.
companies_count in the list counts only legal entities whose establishment is matched to the building by exact address. The building profile and GET /v1/buildings/{id}/companies also count position matches, sole proprietorships and owners, so they can return more.

GeoJSON for a map

format=geojson puts a FeatureCollection in data, ready to load as a map source. Pagination stays in meta. Each feature’s properties is the building summary.
Footprints can be Polygon or MultiPolygon. To draw every building of a neighborhood, use the vector tiles instead of paging through this endpoint.

Building profile

GET /v1/buildings/{id} returns the name of the place, the addresses, the city and district, the use, construction year, levels, dwellings, footprint, height, energy class, heating energy and the number of linked companies. See step 2 of the example above. Find building ids with:
  • GET /v1/buildings (area search, above),
  • GET /v1/geocode (an address) and GET /v1/places (a named place), described in zones and addresses,
  • building_id on an establishment, or headquarters.building_id on a company profile,
  • the batiment_groupe_id property of the buildings tile layer.

Building sections

Each section is a separate request under the building path, so you only pay for what you read. Each one weighs 1. Two short examples on the same building:
The full market series of a zone (prices by segment, rents, demography, income at every level) are at GET /v1/zones/{level}/{code}/market. See zones and addresses.

Companies linked to a building

GET /v1/buildings/{id}/companies merges two sources by SIREN:
  • Occupants: companies with an establishment located in the building, matched by address or position. Sole proprietorships (entrepreneurs individuels) are listed as occupants under their registered name.
  • Owners: legal entities that own property in the building, from the land files.
Companies under SIRENE partial diffusion are never listed. Up to 500 companies can be reached by paging. Above about 100 linked companies, the address is usually a business domiciliation (a company that rents out its address as a registered office).

Buildings of a company

GET /v1/companies/{siren}/buildings is the reverse view: the buildings a company occupies (its establishments matched to a building, open or closed) and owns (land files), merged by building. Buildings both occupied and owned come first, then by number of open establishments.
  • establishments lists the SIRETs of the company’s establishments in the building; active_establishments counts the open ones.
  • units_owned is the number of premises owned according to the BDNB, or null when the company does not own or the count is unknown.
  • Up to 1,000 buildings are read per role, so the total of a large company is a lower_bound.
  • The list is empty for a sole proprietorship or a company under partial diffusion.

Parcels

GET /v1/parcels/{id} returns a cadastral parcel: section, number, area, boundary, city, district and the buildings standing on it (up to 20). A parcel id has 14 characters: the city INSEE code, a 3-character prefix, the section and the plan number. Get ids from GET /v1/buildings/{id}/parcels or from the parcels tile layer.
Owners are not listed on a parcel. For corporate owners, read GET /v1/buildings/{id}/owners.

Personal data

  • Owners, condominium managers and permit applicants are legal entities only. A volunteer condominium manager is never named, and a permit applicant is given only when it is a legal entity.
  • Sole proprietorships appear under their registered name among the occupants, and can appear as likely owners.
  • Companies under SIRENE partial diffusion are never linked to a building.
  • DVF transactions name no party.
See data sources.