---
title: "One building's public page"
method: GET
path: "/public/buildings/{building_id}"
tags: ["Public building pages"]
---

# One building's public page

`GET /public/buildings/{building_id}`

## Request

- Base URL: `https://api.baseray.ai/v1`
- URL: `https://api.baseray.ai/v1/public/buildings/{building_id}`
- Auth: none required

The public facts of one building that has a public page: in Czechia an addressed building whose register gives its floors, completion date and use; in Romania an addressed building whose register gives at least two of floors, construction year and floor area. Any other building answers 404. A retired building whose replacement has a public page answers 301: its page moved for good to that one.

## Path parameters

- `building_id` string, uuid, required

## Response `200`

OK

- PublicBuilding: One building's public facts.
  - `id` string, uuid, required: The building's baseray id, the same as in the rest of this API.
  - `country` 'cz' | 'dk' | 'ro', required
  - `slug` string, required: A readable slug for the building's page URL, from its locality and address.
  - `address` PublicBuildingAddress, required: The building's address, from an address record.
    - `street` string, nullable, required: Street name; null for a village address without streets.
    - `number` string, nullable, required: House number as the address record writes it.
    - `locality` string, nullable, required: Town or village.
    - `district` string, nullable, required: City district or sector, where the place has them.
    - `county` string, nullable, required: County (Romanian județ, Czech kraj).
    - `postcode` string, nullable, required: Postcode; null when none is on record.
    - `label` string, required: The full address on one line, as it is written locally.
  - `facts` PublicBuildingFacts, required: Each fact is its value or `null` (unknown, never zero), and says whether it is an estimate.
    - `use` PublicUseFact, required
      - `value` string, nullable, required: Use code, e.g. `residential_multi`; null when unknown.
      - `label` string, nullable, required: The use in the country's own words, e.g. `Bytový dům`.
      - `estimate` boolean, required: True when the value is modelled rather than taken from a record or a measurement.
    - `floors` PublicFloorsFact, required
      - `value` integer, nullable, required: Floors; null when unknown.
      - `estimate` boolean, required: True when the value is modelled rather than taken from a record or a measurement.
      - `includesUnderground` boolean, required: True when the count includes floors below ground.
    - `built` PublicBuiltFact, required
      - `year` integer, nullable, required: Year of completion; null when only the era is known or nothing is.
      - `era` string, nullable, required: The period it was built in, e.g. `1919–1945`, where the record gives a period rather than a year.
      - `estimate` boolean, required: True when the value is modelled rather than taken from a record or a measurement.
    - `footprintArea` PublicAreaFact, required
      - `value` number, nullable, required: Area in m²; null when unknown.
      - `unit` 'm2', required
      - `estimate` boolean, required: True when the value is modelled rather than taken from a record or a measurement.
    - `floorArea` PublicFloorAreaFact, required
      - `value` number, nullable, required: Floor area in m²; null when unknown.
      - `unit` 'm2', required
      - `scope` 'usable' | 'gross' | 'null', nullable, required: `usable` (the usable floor area) or `gross` (the built floor area); null when unknown.
      - `estimate` boolean, required: True when the value is modelled rather than taken from a record or a measurement.
    - `height` PublicHeightFact, required
      - `value` number, nullable, required: Height in metres; null when unknown.
      - `unit` 'm', required
      - `estimate` boolean, required: True when the value is modelled rather than taken from a record or a measurement.
    - `volume` PublicVolumeFact, required
      - `value` number, nullable, required: Volume in m³; null when unknown.
      - `unit` 'm3', required
      - `estimate` boolean, required: True when the value is modelled rather than taken from a record or a measurement.
    - `roofArea` PublicAreaFact, required
      - `value` number, nullable, required: Area in m²; null when unknown.
      - `unit` 'm2', required
      - `estimate` boolean, required: True when the value is modelled rather than taken from a record or a measurement.
    - `roofShape` PublicTextFact, required
      - `value` string, nullable, required: The value; null when unknown.
      - `estimate` boolean, required: True when the value is modelled rather than taken from a record or a measurement.
    - `dwellings` PublicCountFact, required
      - `value` integer, nullable, required: The count; null when unknown.
      - `estimate` boolean, required: True when the value is modelled rather than taken from a record or a measurement.
    - `floodZone` PublicFloodZone, required
      - `value` string, required: The flood zone the building lies in.
      - `estimate` false, required: Always false: the value is taken from an official map.
    - `seismicZone` PublicSeismicZone, required
      - `designAccelerationG` number, required: The design ground acceleration of the building's seismic zone, in g.
      - `estimate` false, required: Always false: the value is taken from an official map.
    - `cadastralRef` PublicCadastralReference, required
      - `value` string, required: The building's number in the national register.
      - `officialUrl` string, nullable, required: The register's own public page for the building, where it has one.
  - `outline` PublicPolygon, required: The building's outline as a GeoJSON Polygon.
    - `type` 'Polygon', required
    - `coordinates` array[], required: GeoJSON rings of `[longitude, latitude]` positions in WGS84; the first ring is the outline, any further ones holes.
      - array[]
        - number[]
  - `centroid` number[], required: `[longitude, latitude]` of the outline's centre, WGS84.
  - `context` PublicBuildingContext, required: How the building compares with its street and locality; null where too little is known.
    - `streetBuildings` integer, nullable, required: Buildings on the same street.
    - `olderThanShareOnStreet` number, nullable, required: Share (0–1) of the street's buildings with a known age that this building is older than.
    - `tallerThanShareInLocality` number, nullable, required: Share (0–1) of the locality's buildings with a known height that this building is taller than.
  - `place` PublicPlaceReference, required
    - `country` 'cz' | 'dk' | 'ro', required
    - `slug` string, required: The place's slug, for `/public/places/{country}/{slug}/stats`.
    - `name` string, required: The place's name.
  - `streetPage` object, nullable: The page of the building's street; null where its street has none.
    - `slug` string, required: For `/public/places/{country}/{slug}/streets/{street}`, with the place's slug.
    - `name` string, required
  - `gated` PublicGatedCounts, required: What signing in shows, as counts only.
    - `solarChecked` boolean, required: True when the roof has been checked for solar panels; the verdict is shown only after signing in.
    - `registeredCompanies` integer, required: Companies with their registered office at the address; who they are is shown only after signing in. A registered office is not ownership.
  - `updatedAt` string, date, required: When the building's facts last changed.
  - `street` PublicNeighbourBuilding[]: Other buildings with a public page on the same street of the same locality, closest house numbers first; empty without a street.
    - `id` string, uuid, required
    - `country` 'cz' | 'dk' | 'ro', required
    - `slug` string, required: Not unique: always put the `id` in URLs.
    - `label` string, required: Its one-line address, as on its page.
    - `number` string, nullable, required
    - `use` string, nullable, required: The register's own wording of its use, in the local language; null where unknown.
    - `floors` object, nullable, required
      - `value` integer, required
      - `includesUnderground` boolean, required
    - `built` object, nullable, required
      - `year` integer, nullable, required
      - `era` string, nullable, required
    - `distanceM` number: Metres between the two outlines; only in `nearby`.
  - `nearby` PublicNeighbourBuilding[]: The closest other buildings with a public page off that street (within about 600 m), nearest first, each with `distanceM`.
    - `id` string, uuid, required
    - `country` 'cz' | 'dk' | 'ro', required
    - `slug` string, required: Not unique: always put the `id` in URLs.
    - `label` string, required: Its one-line address, as on its page.
    - `number` string, nullable, required
    - `use` string, nullable, required: The register's own wording of its use, in the local language; null where unknown.
    - `floors` object, nullable, required
      - `value` integer, required
      - `includesUnderground` boolean, required
    - `built` object, nullable, required
      - `year` integer, nullable, required
      - `era` string, nullable, required
    - `distanceM` number: Metres between the two outlines; only in `nearby`.
  - `surroundings` PublicSurroundingOutline[]: Outlines of every building within about 65 m of this one, with or without a public page, nearest first.
    - `outline` PublicPolygon, required: The building's outline as a GeoJSON Polygon.
      - `type` 'Polygon', required
      - `coordinates` array[], required: GeoJSON rings of `[longitude, latitude]` positions in WGS84; the first ring is the outline, any further ones holes.
        - array[]
          - number[]
    - `id` string, uuid, nullable, required: Set only where that building has a public page.
    - `slug` string, nullable, required
    - `sameStreet` boolean, required: Its address names the same street in the same locality.

## Other responses

- `301`: The building was retired and replaced: its page moved for good to the page of the building that replaced it, which `Location` and the body name. Kept an hour, like a refusal, so a replacement that gains or loses its page is followed within the hour.
- `404`: No such page (`not_found`).
- `429`: Too many requests from this address in a minute (`rate_limited`); retry after `Retry-After` seconds.
- `503`: The building catalogue is unavailable right now (`unavailable`); retry after `Retry-After` seconds.

---

[API](https://skmtc.dev/baseray/apis/baseray-api.md) · [All operations](https://skmtc.dev/baseray/apis/baseray-api/llms.txt) · [OpenAPI document](https://skmtc.dev/baseray/apis/baseray-api/revisions/2dc2808717f7?raw)
