Buildings
Manage buildings within a building owner.
List Buildings
/building_owners/{buildingOwnerId}/buildingsList all buildings for a building owner. Results are paginated.
Authentication
x-api-key header
buildingOwnerIdstringBuilding owner / customer ID
limitnumberMax results per page (default: 100, max: 1000)next_tokenstringPagination token — pass the nextToken value from a previous response
200Success401Missing or invalid API key404Building owner not found
All endpoints may also return 429 (rate limit) and 500 (server error). See Common Patterns for details.
buildingsBuilding[]Array of building objectsbuildings[].idstringUnique identifierbuildings[].namestringBuilding namebuildings[].numberOfFilesnumberTotal number of documents in the buildingbuildings[].createdAtstringISO 8601 creation timestampbuildings[].updatedAtstringISO 8601 last update timestampnextTokenstring | nullToken for the next page, null if this is the last page
Response
{
"buildings": [
{
"id": "bld-789",
"name": "Oslo Office Tower",
"numberOfFiles": 2450,
"createdAt": "2024-06-01T08:00:00Z",
"updatedAt": "2025-11-15T12:30:00Z"
}
],
"nextToken": null
}Create Building
/building_owners/{buildingOwnerId}/buildingsCreate a new building for a building owner. Note: the response is a plain JSON string (the new building ID), not an object.
Authentication
x-api-key header
buildingOwnerIdstringBuilding owner / customer ID
namestringrequiredName for the new building
Request Body Example
{ "name": "Oslo Office Tower" }200Building created — response is a plain JSON string (the new building ID), not an object400Invalid request body401Missing or invalid API key403API key lacks permission404Building owner not found
All endpoints may also return 429 (rate limit) and 500 (server error). See Common Patterns for details.
Response
"bld-new-456"Get Building
/building_owners/{buildingOwnerId}/buildings/{buildingId}Get a single building by ID.
Authentication
x-api-key header
buildingOwnerIdstringBuilding owner / customer IDbuildingIdstringBuilding ID
200Success401Missing or invalid API key404Building not found
All endpoints may also return 429 (rate limit) and 500 (server error). See Common Patterns for details.
idstringUnique identifiernamestringBuilding namenumberOfFilesnumberTotal number of documentscreatedAtstringISO 8601 creation timestampupdatedAtstringISO 8601 last update timestamp
Response
{
"id": "bld-789",
"name": "Oslo Office Tower",
"numberOfFiles": 2450,
"createdAt": "2024-06-01T08:00:00Z",
"updatedAt": "2025-11-15T12:30:00Z"
}Update Building
/building_owners/{buildingOwnerId}/buildings/{buildingId}Update building details.
Authentication
x-api-key header
buildingOwnerIdstringBuilding owner / customer IDbuildingIdstringBuilding ID
namestringUpdated building name
Request Body Example
{ "name": "Oslo Office Tower (Renovated)" }200Building updated400Invalid request body401Missing or invalid API key403API key lacks permission404Building not found
All endpoints may also return 429 (rate limit) and 500 (server error). See Common Patterns for details.
idstringUnique identifiernamestringUpdated building namenumberOfFilesnumberTotal number of documentscreatedAtstringISO 8601 creation timestampupdatedAtstringISO 8601 last update timestamp
Response
{
"id": "bld-789",
"name": "Oslo Office Tower (Renovated)",
"numberOfFiles": 2450,
"createdAt": "2024-06-01T08:00:00Z",
"updatedAt": "2026-01-10T09:45:00Z"
}Delete Building
/building_owners/{buildingOwnerId}/buildings/{buildingId}Delete a building and all its documents. Returns 409 if the building has documents currently being processed.
Authentication
x-api-key header
buildingOwnerIdstringBuilding owner / customer IDbuildingIdstringBuilding ID
200Building deleted401Missing or invalid API key403API key lacks permission404Building not found409Building has active processing — cannot delete
All endpoints may also return 429 (rate limit) and 500 (server error). See Common Patterns for details.
messagestringConfirmation message
Response
{ "message": "Building with ID bld-789 has been deleted successfully" }Processing Status
/building_owners/{buildingOwnerId}/buildings/{buildingId}/statusGet the processing status for a building's documents.
Authentication
x-api-key header
buildingOwnerIdstringBuilding owner / customer IDbuildingIdstringBuilding ID
200Success401Missing or invalid API key404Building not found
All endpoints may also return 429 (rate limit) and 500 (server error). See Common Patterns for details.
total_documentsnumberTotal number of documentsprocessed_documentsnumberNumber of documents that have been processedcategorized_documentsnumberNumber of documents that have been categorisedextracted_percentagenumberPercentage of documents with extracted text (0-100)categorized_percentagenumberPercentage of documents that are categorised (0-100)extracted_textbooleanWhether text extraction is completeextracted_filebooleanWhether file extraction is completeuncompressed_packagebooleanWhether package decompression is completevalid_filebooleanWhether the file is validinvalid_filebooleanWhether any files are invalidcategorisedbooleanWhether categorisation is completeskip_extract_filebooleanWhether file extraction was skippedtext_extraction_errorbooleanWhether a text extraction error occurred
Response
{
"total_documents": 2450,
"processed_documents": 2430,
"categorized_documents": 2400,
"extracted_percentage": 99,
"categorized_percentage": 98,
"extracted_text": true,
"extracted_file": true,
"uncompressed_package": true,
"valid_file": true,
"invalid_file": false,
"categorised": true,
"skip_extract_file": false,
"text_extraction_error": false
}Deficiency Report
/building_owners/{buildingOwnerId}/buildings/{buildingId}/reportGet the deficiency report for a building, including themes and progress details.
Authentication
x-api-key header
buildingOwnerIdstringBuilding owner / customer IDbuildingIdstringBuilding ID
countrystringCountry code for regulatory framework (e.g. NO, GB)localestringLocale for the report (e.g. nb, en)
200Success401Missing or invalid API key404Building not found
All endpoints may also return 429 (rate limit) and 500 (server error). See Common Patterns for details.
themesReportTheme[]Array of report theme/category objectsthemes[].idstringTheme IDthemes[].nameIdstringName identifierthemes[].themestringTheme groupthemes[].namestringDisplay namethemes[].descriptionstringTheme descriptionthemes[].lawsstringRelevant laws and regulationsthemes[].disciplinestringTechnical disciplinethemes[].commentstringAdditional commentthemes[].statusstringCompliance statusthemes[].parentIdstring | nullParent theme ID for hierarchy, null for top-level themesthemes[].createdAtstringISO 8601 creation timestampthemes[].updatedAtstringISO 8601 last update timestampprogressDetailsProgressDetail[]Progress summary per themeprogressDetails[].themestringTheme nameprogressDetails[].progressnumberNumber of items completedprogressDetails[].totalnumberTotal number of itemsprogressDetails[].percentagenumberCompletion percentage (0-100)
Response
{
"themes": [
{
"id": "theme-001",
"nameId": "fire-safety",
"theme": "Safety",
"name": "Fire Safety",
"description": "Fire safety documentation and compliance",
"laws": "TEK17 §11",
"discipline": "Fire",
"comment": "",
"status": "partial",
"parentId": null,
"createdAt": "2025-06-15T10:00:00Z",
"updatedAt": "2025-06-15T10:00:00Z"
}
],
"progressDetails": [
{
"theme": "Fire Safety",
"progress": 8,
"total": 12,
"percentage": 67
}
]
}