---
title: "Buildings, units and per-building rollups"
method: GET
path: "/api/v1/buildings"
tags: ["Portfolio"]
---

# Buildings, units and per-building rollups

`GET /api/v1/buildings`

## Request

- Base URL: `http://localhost:5180`
- URL: `http://localhost:5180/api/v1/buildings`
- Auth: API key in cookie `better-auth.session_token`

Every building and every unit in it, each unit with what it was bought for where that is on file (`acquisition`: purchase date, price and costs, in cents). Rollups carry rent roll, value, arrears and vacancy per building, sorted worst-first.

## Response `200`

Buildings and rollups.

- object
  - `ok` unknown, required
  - `data` object, required
    - `buildings` object[], required
      - `id` string, required: Stable record id, e.g. `lse_012`.
      - `teamId` string, required: Stable record id, e.g. `lse_012`.
      - `name` string, required: The address. Stays the address so search and paperwork still match.
      - `alias` string: What the owner calls it. Shown instead of `name` wherever one is set.
      - `coverDocumentId` string: The photo pinned as its picture. Absent, the newest photo filed against it is shown.
      - `kind` string, required
      - `jurisdictionId` string, required: Jurisdiction pack id: `be-fl`, `be-bru`, `nl`, `fr`, `generic`.
      - `custom` object
    - `units` object[], required
      - `id` string, required: Stable record id, e.g. `lse_012`.
      - `buildingId` string, required: Stable record id, e.g. `lse_012`.
      - `label` string, required: Unique within its building: "3A", "Ground floor", "Parking 12".
      - `kind` string, required
      - `mode` string, required
      - `status` string, required
      - `furnished` boolean, required
      - `marketRent` integer: Market rent estimate. Drives vacancy-cost and yield maths.
      - `custom` object
    - `rollups` object[], required
      - `buildingId` string, required: Stable record id, e.g. `lse_012`.
      - `units` number, required
      - `lettable` number, required
      - `letUnits` number, required
      - `occupancy` number, required: 0 when nothing is lettable, never NaN.
      - `rentRoll` integer, required: Monthly, normalised across rent frequencies.
      - `notEarning` integer, required: What the empty units would earn at their market rate.
      - `unpriced` number, required: Empty units carrying no market rent, so notEarning cannot count them.
      - `emptyUnitIds` string[], required
      - `leavingUnitIds` string[], required
      - `arrearsTotal` integer, required: Money, always in integer cents. €1,250.00 is 125000.
      - `arrearsCases` number, required
      - `value` integer, required: Money, always in integer cents. €1,250.00 is 125000.
      - `mortgageOutstanding` integer, required: Money, always in integer cents. €1,250.00 is 125000.
      - `equity` integer, required: Money, always in integer cents. €1,250.00 is 125000.
  - `meta` object, required
    - `requestId` string, required: Echoed in the x-request-id header. Quote it in a bug report.

---

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