---
title: "One building dossier"
method: GET
path: "/api/v1/buildings/{id}"
tags: ["Portfolio"]
---

# One building dossier

`GET /api/v1/buildings/{id}`

## Request

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

The address and everything standing on it: its units, the rollup that triages it, the loans against it, the tenancies in force, its compliance certificates and its filing.

## Path parameters

- `id` string, required

## Response `200`

The dossier.

- object
  - `ok` unknown, required
  - `data` object, required
    - `building` 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
    - `label` string, required: What the owner calls it when an alias is set, the address otherwise.
    - `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
    - `rollup` 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.
    - `mortgages` object[], required: Loans secured on this address, including one secured on a single lot, counted once.
      - `id` string, required: Stable record id, e.g. `lse_012`.
      - `buildingId` string, required: Stable record id, e.g. `lse_012`.
      - `unitId` string: Set when the loan is secured on one lot, so a unit loan is never counted twice at building level.
      - `lender` string, required
      - `reference` string
      - `principal` integer, required: Money, always in integer cents. €1,250.00 is 125000.
      - `outstanding` integer, required: Money, always in integer cents. €1,250.00 is 125000.
      - `interestRate` number, required: A decimal ratio. 0.21 is 21%.
      - `rateType` 'fixed' | 'variable' | 'mixed', required
      - `startDate` string, required: A calendar date, `YYYY-MM-DD`.
      - `termMonths` number, required
      - `monthlyPayment` integer, required: Money, always in integer cents. €1,250.00 is 125000.
      - `deferralMonths` number: Months at the start with nothing repaid; their simple interest, before tax, is added to the principal.
      - `interestVat` number: Tax charged on the interest of every instalment, as a ratio (0.10 for Morocco). The instalment is worked at the rate times one plus this.
      - `kind` 'bank' | 'plan': `plan` is a payment plan of dates and amounts with no interest; absent is a bank credit.
      - `instalments` object[]: A payment plan’s instalments, each counted as paid once its date has come.
        - `id` string, required: Stable record id, e.g. `lse_012`.
        - `dueDate` string, required: A calendar date, `YYYY-MM-DD`.
        - `amount` integer, required: Money, always in integer cents. €1,250.00 is 125000.
      - `currentSplit` object: This month’s payment split, recomputed from the amortisation schedule. Only the interest half is deductible.
        - `interest` integer, required: Money, always in integer cents. €1,250.00 is 125000.
        - `principal` integer, required: Money, always in integer cents. €1,250.00 is 125000.
      - `nextReviewDate` string: A calendar date, `YYYY-MM-DD`.
    - `activeLeases` object[], required: One per occupied unit, counting a unit under notice.
      - `id` string, required: Stable record id, e.g. `lse_012`.
      - `reference` string, required
      - `parties` object[], required: Everyone the tenancy names. Absent is refused: every read resolves a tenant through it.
        - `contactId` string, required: Stable record id, e.g. `lse_012`.
        - `role` 'tenant' | 'co_tenant' | 'guarantor' | 'occupant', required
        - `jointlyLiable` boolean, required
        - `sharePct` number: A decimal ratio. 0.21 is 21%.
      - `custom` object
      - `unitId` string, required: Stable record id, e.g. `lse_012`.
      - `extraUnits` object[]: Further units let under this lease, a parking space or a cellar. `rent` is each one’s own part of the lease’s rent; absent comes with the main unit.
        - `unitId` string, required: Stable record id, e.g. `lse_012`.
        - `rent` integer: Money, always in integer cents. €1,250.00 is 125000.
      - `type` string, required
      - `status` 'draft' | 'pending_signature' | 'active' | 'notice_given' | 'ended' | 'terminated_early' | 'cancelled', required
      - `startDate` string, required: A calendar date, `YYYY-MM-DD`.
      - `endDate` string, nullable, required: A calendar date, `YYYY-MM-DD`.
      - `signedOn` string: The day the lease was signed, when it was signed outside the product.
      - `signedByOwnerAt` string: When the owner signed it in the product, which is the last signature a lease signed here takes.
      - `rent` integer, required: Money, always in integer cents. €1,250.00 is 125000.
      - `rentFrequency` string, required
      - `rentDueDay` number, required: Day of the month rent falls due.
      - `chargesProvision` integer, required: Monthly provision for service charges, settled annually.
      - `currency` string, required
    - `certificates` object[], required: The building’s own certificates and its units’, with status recomputed from the expiry date on read.
      - `id` string, required: Stable record id, e.g. `lse_012`.
      - `type` string, required: `epc`, `electrical`, `gas`, `boiler_service`, `chimney`, `asbestos` and the rest.
      - `buildingId` string: Stable record id, e.g. `lse_012`.
      - `unitId` string: Stable record id, e.g. `lse_012`.
      - `reference` string
      - `issuedOn` string, required: A calendar date, `YYYY-MM-DD`.
      - `validUntil` string: A calendar date, `YYYY-MM-DD`.
      - `issuedBy` string
      - `documentId` string: Stable record id, e.g. `lse_012`.
      - `status` 'valid' | 'expiring' | 'expired' | 'missing' | 'not_applicable', required
      - `mandatory` boolean, required: Whether this jurisdiction legally requires it before the unit may be let.
      - `notes` string
    - `documents` object[], required: Paper linked to the building, to any of its units or to any of those certificates, newest first.
      - `id` string, required: Stable record id, e.g. `lse_012`.
      - `name` string, required
      - `kind` string, required: `lease`, `invoice`, `certificate`, `inspection_report` and the rest. This is the product’s own filing.
      - `mimeType` string, required
      - `size` number, required: Bytes.
      - `createdAt` string, required: ISO 8601 timestamp.
      - `links` object[], required: Every place the document is shown. A document can hang off any record, and off more than one; `folderId` is the folder that place files it in.
        - `kind` string, required
        - `id` string, required: Stable record id, e.g. `lse_012`.
        - `folderId` string: Stable record id, e.g. `lse_012`.
      - `expiresOn` string: Set on anything that expires, which is what feeds the compliance calendar.
      - `generated` boolean, required: True when the AI produced it rather than the owner uploading it.
      - `templateId` string: Stable record id, e.g. `lse_012`.
      - `language` 'en' | 'nl' | 'fr' | 'de': One of the four the product itself authors wording in: the clause library, the seeded messages, the words on a notice.
      - `folderId` string: No longer written. The folder is kept per place, on each of `links`.
      - `tags` string[], required
      - `status` 'withdrawn': `withdrawn` on a generated letter filed for a case that has since closed paid. Absent means the document stands.
      - `provenance` object, required
        - `actor` object, required
          - `kind` 'owner' | 'ai' | 'tenant' | 'contractor' | 'system' | 'channel', required: `ai` is Dardaris acting on the owner’s behalf. Everything it touches is marked.
          - `id` string: Stable record id, e.g. `lse_012`.
          - `name` string, required
        - `at` string, required: ISO 8601 timestamp.
        - `workflowRunId` string: Set when an automated run produced this, linking the record back to the run.
        - `reasoning` string: The rationale the AI recorded at the moment it acted.
  - `meta` object, required
    - `requestId` string, required: Echoed in the x-request-id header. Quote it in a bug report.

## Other responses

- `404`: No building with that id belongs to you.

---

[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)
