### Get All Properties using Go Source: https://developers.facilioo.de/docs/quick-start This Go code snippet demonstrates how to make a GET request to the Facilioo API to retrieve all properties associated with an account. It requires the `net/http` and `io` packages for making the request and reading the response. The output is the JSON response body containing the property data. ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://staging-api.facilioo.de/api/properties" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("accept", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` -------------------------------- ### GET /api/properties Source: https://developers.facilioo.de/docs/quick-start This endpoint retrieves all properties associated with your Facilioo account. It requires authentication via access and refresh tokens. ```APIDOC ## GET /api/properties ### Description Retrieves all properties associated with the authenticated Facilioo account. ### Method GET ### Endpoint /api/properties ### Parameters #### Query Parameters None #### Request Body None ### Request Example ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://staging-api.facilioo.de/api/properties" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("accept", "application/json") // Add Authorization header here with your token res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` ### Response #### Success Response (200) - **properties** (array) - A list of property objects. - **property_id** (string) - The unique identifier for the property. - **name** (string) - The name of the property. - **address** (string) - The address of the property. #### Response Example ```json { "properties": [ { "property_id": "prop_123", "name": "Example Property", "address": "123 Main St, Anytown" } ] } ``` ``` -------------------------------- ### GET Request for /api/terms - Ruby Example Source: https://developers.facilioo.de/reference/term Provides a Ruby example for fetching terms via a GET request to the /api/terms endpoint. This code snippet uses the 'httparty' gem to handle the HTTP request and headers. ```ruby require 'httparty' url = 'https://api.facilioo.de/api/terms' headers = { 'accept' => 'application/json', 'api-version' => '2.0' } response = HTTParty.get(url, headers: headers) puts response.body ``` -------------------------------- ### Sample Topic Example Source: https://developers.facilioo.de/reference/post_api-topics An example of a 'Sample Topic' object, demonstrating a full topic entry with a number, title, description, and associated IDs. Includes creation and modification timestamps. ```json { "number": 1, "title": "Begrüßung und Protokoll", "description": "Die Verwaltung begrüßt die Liegenschaft zur diesjährigen Versammlung und ernennt Herrn Müller als Protokollant.", "externalId": null, "conferenceId": 1, "propertyId": null, "created": "2026-01-28T08:38:19Z", "lastModified": null, "deleted": null, "id": 1 } ``` -------------------------------- ### GET Request for /api/terms - Python Example Source: https://developers.facilioo.de/reference/term Illustrates how to make a GET request to the /api/terms endpoint using Python's 'requests' library. This example demonstrates setting up the request URL and headers for retrieving terms. ```python import requests url = "https://api.facilioo.de/api/terms" headers = { "accept": "application/json", "api-version": "2.0" } response = requests.get(url, headers=headers) print(response.json()) ``` -------------------------------- ### Entrance Examples Source: https://developers.facilioo.de/reference/get_api-units-id-entrance Provides example JSON payloads for different entrance scenarios, including detailed and minimal configurations. ```APIDOC ## Entrance Examples ### Description These examples illustrate the structure of entrance data for various use cases. ### Example 1: Nedlitzer Str., First Entrance ```json { "number": "WEG 047 - 71", "name": "Nedlitzer Str. 71", "propertyId": 4, "fullStreet": "Nedlitzer Str. 71", "zipCode": "14469", "city": "Potsdam", "description": "Marcs old home", "isProperty": false, "externalId": "-8", "isArchived": false, "latitude": 52.425791724932374, "longitude": 13.054429787721375, "unitsCount": 0, "created": "2026-01-27T08:38:19Z", "lastModified": null, "deleted": null, "id": 1 } ``` ### Example 2: Nedlitzer Str., Second Entrance ```json { "number": "WEG 047 - 73", "name": "Nedlitzer Str. 73", "propertyId": 4, "fullStreet": "Nedlitzer Str. 73", "zipCode": "14469", "city": "Potsdam", "description": "Bernds old home", "isProperty": false, "externalId": "-9", "isArchived": false, "latitude": 52.42602357359753, "longitude": 13.05443324187974, "unitsCount": 0, "created": "2026-01-27T08:38:19Z", "lastModified": null, "deleted": null, "id": 2 } ``` ### Example 3: Nedlitzer Str., Minimal Entrance ```json { "number": null, "name": null, "propertyId": 4, "fullStreet": null, "zipCode": null, "city": null, "description": null, "isProperty": false, "externalId": null, "isArchived": false, "latitude": null, "longitude": null, "unitsCount": 0, "created": "2026-01-27T08:38:19Z", "lastModified": null, "deleted": null, "id": 3 } ``` ### Example 4: Nedlitzer Str., Fourth Entrance (Partial) ```json { "number": "WEG 047 - 77", "name": "Nedlitzer Str. 77", "propertyId": 4, "fullStreet": "Nedlitzer Str. 77", "zipCode": "14469", "city": "Potsdam", "description": "Maxs old home", "isProperty": true } ``` ``` -------------------------------- ### Get Voting Groups (Python) Source: https://developers.facilioo.de/reference/votingprocedure Example Python code snippet using the 'requests' library to fetch voting groups. It sets up the GET request with headers and prints the JSON response. ```python import requests url = "https://api.facilioo.de/api/voting-procedures" headers = { "accept": "application/json", "api-version": "2.0" } response = requests.get(url, headers=headers) print(response.json()) ``` -------------------------------- ### Example Property Data (JSON) Source: https://developers.facilioo.de/reference/get_api-conferences-id-property Provides an example of a property object conforming to the defined schema. This example illustrates typical values for a property, such as its name, address, and tenant ID. ```json { "tenantId": 1, "number": "WEG 1", "name": "Ku'damm 92", "fullStreet": "Kurfürstendamm 92", "zipCode": "10709", "city": "Berlin", "resolutionCollectionStartOffset": 0, "imageId": null, "isArchived": false, "externalId": "420", "externalOldId": null, "latitude": null, "longitude": null, "key": null, "unitsCount": 0, "parentId": 0, "description": null, "eligibleUnitsSelected": false } ``` -------------------------------- ### GET Request for /api/terms - Node.js Example Source: https://developers.facilioo.de/reference/term Provides a Node.js example using the 'axios' library to fetch terms from the /api/terms endpoint. This snippet shows how to configure the request with the correct URL and headers. ```javascript const axios = require('axios'); const options = { method: 'GET', url: 'https://api.facilioo.de/api/terms', headers: { 'accept': 'application/json', 'api-version': '2.0' } }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); }); ``` -------------------------------- ### GET Request for /api/terms - PHP Example Source: https://developers.facilioo.de/reference/term Shows a PHP implementation for making a GET request to the /api/terms endpoint. This snippet utilizes cURL to send the request with appropriate headers and retrieve the terms data. ```php ``` -------------------------------- ### Create Booking Account - cURL Example Source: https://developers.facilioo.de/reference/bookingaccount Example of how to create a booking account using a cURL request. This demonstrates the POST method, URL, and necessary headers like 'accept', 'api-version', and 'content-type'. ```shell curl --request POST \ --url https://api.facilioo.de/api/booking-accounts \ --header 'accept: application/json' \ --header 'api-version: 2.0' \ --header 'content-type: application/json' ``` -------------------------------- ### Example Unit Data (English Unit Description) Source: https://developers.facilioo.de/reference/get_api-properties-id-technical-unit Presents an example of a unit with an English description for its position, demonstrating internationalization capabilities within the unit data. This example also includes some null values. ```json { "typeId": 1, "holdingTypeId": 2, "number": "003", "position": "Second Floor, Right Side", "entranceId": 1, "hidden": null } ``` -------------------------------- ### Get API Health Check (PHP) Source: https://developers.facilioo.de/reference/healthcheck Shows a PHP implementation for making a GET request to the /api/health endpoint. This example utilizes cURL functions in PHP to send the request to the facilioo API. ```php ``` -------------------------------- ### Get Voting Majorities (Ruby) Source: https://developers.facilioo.de/reference/votingmajority Demonstrates how to retrieve voting majority data using Ruby. This example would likely use the 'net/http' library or a gem like 'httparty' to make the GET request. ```ruby # Ruby example (using net/http) require 'net/http' require 'uri' uri = URI.parse('https://api.facilioo.de/api/voting-majorities') http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true # if you need SSL request = Net::HTTP::Get.new(uri.request_uri) request['accept'] = 'application/json' request['api-version'] = '2.0' response = http.request(request) puts response.body ``` -------------------------------- ### Example Paginated List of EntranceRead Source: https://developers.facilioo.de/reference/get_api-properties-id-entrances Demonstrates the structure of a paginated response containing a list of 'EntranceRead' objects. This example includes two entrance entries and pagination metadata. ```json { "items": [ { "number": "WEG 047 - 71", "name": "Nedlitzer Str. 71", "propertyId": 4, "fullStreet": "Nedlitzer Str. 71", "zipCode": "14469", "city": "Potsdam", "description": "Marcs old home", "isProperty": false, "externalId": "-8", "isArchived": false, "latitude": 52.425791724932374, "longitude": 13.054429787721375, "unitsCount": 0, "created": "2026-01-27T08:38:18Z", "lastModified": null, "deleted": null, "id": 1 }, { "number": "WEG 047 - 73", "name": "Nedlitzer Str. 73", "propertyId": 4, "fullStreet": "Nedlitzer Str. 73", "zipCode": "14469", "city": "Potsdam", "description": "Bernds old home", "isProperty": false, "externalId": "-9", "isArchived": false, "latitude": 52.42602357359753, "longitude": 13.05443324187974, "unitsCount": 0, "created": "2026-01-27T08:38:18Z", "lastModified": null, "deleted": null, "id": 2 }, { "number": null, "name": null, "propertyId": 4, "fullStreet": null, "zipCode": null, "city": null, "description": null, "isProperty": false, "externalId": null, "isArchived": false, "latitude": null, "longitude": null, "unitsCount": 0, "created": "2026-01-27T08:38:18Z", "lastModified": null } ], "pageNumber": 1, "pageSize": 10, "totalPages": 1, "totalCount": 2, "hasPreviousPage": false, "hasNextPage": false } ``` -------------------------------- ### Get Voting Majorities (Python) Source: https://developers.facilioo.de/reference/votingmajority Illustrates how to retrieve voting majority data using Python. This example would commonly use the 'requests' library to perform the HTTP GET request with appropriate headers. ```python # Python example (using requests) import requests url = "https://api.facilioo.de/api/voting-majorities" headers = { "accept": "application/json", "api-version": "2.0" } try: response = requests.get(url, headers=headers) response.raise_for_status() # Raise an exception for bad status codes data = response.json() print(data) except requests.exceptions.RequestException as e: print(f"Error fetching voting majorities: {e}") ``` -------------------------------- ### Example Unit Data (Regular Unit of Entrance) Source: https://developers.facilioo.de/reference/get_api-properties-id-technical-unit Provides an example of a 'Regular Unit of Entrance' conforming to the UnitRead schema. This example demonstrates the structure and typical values for a unit, including specific IDs, dimensions, and timestamps. ```json { "typeId": 1, "holdingTypeId": 2, "number": "001", "position": "EG Links", "entranceId": 1, "hidden": true, "squareMeters": 60, "roomCount": 3, "rentReduction": 30, "description": "rent reduction set on 2022-11-01", "externalId": "950074a9-3b20-4477-919b-874a0c82a984", "externalIdOld": "123-33-33", "isArchived": false, "created": "2026-01-27T08:38:18Z", "lastModified": null, "deleted": null, "id": 1 } ``` -------------------------------- ### POST /websites/developers_facilioo_de/connect Source: https://developers.facilioo.de/reference/get_api-connects-id Creates a new external connection with the provided configuration details. ```APIDOC ## POST /websites/developers_facilioo_de/connect ### Description Creates a new external connection with the provided configuration details. ### Method POST ### Endpoint /websites/developers_facilioo_de/connect ### Parameters #### Request Body - **name** (string) - Required - The name of the connection. - **type** (string) - Required - The type of the external system. - **externalApiToken** (string) - Optional - The API token for the external system. - **externalInitialAccount** (string) - Optional - The initial account identifier for the external system. - **externalHost** (string) - Optional - The host address of the external system. - **externalUsername** (string) - Optional - The username for authentication with the external system. - **externalPassword** (string) - Optional - The password for authentication with the external system. - **shouldImport** (boolean) - Required - Flag to indicate if data import is enabled. - **shouldExport** (boolean) - Required - Flag to indicate if data export is enabled. - **configuration** (string) - Optional - Additional configuration settings as a JSON string. - **debugMode** (boolean) - Required - Flag to enable or disable debug mode. - **serverAccessDescription** (string) - Optional - A description of server access. - **notes** (string) - Optional - Any additional notes about the connection. - **initialSync** (boolean) - Required - Flag to indicate if an initial synchronization should be performed. ### Request Example ```json { "name": "ExampleConnection", "type": "SomeExternalSystem", "shouldImport": true, "shouldExport": false, "debugMode": false, "initialSync": true } ``` ### Response #### Success Response (200) - **id** (string) - The unique identifier of the created connection. - **name** (string) - The name of the connection. - **type** (string) - The type of the external system. - **shouldImport** (boolean) - Indicates if data import is enabled. - **shouldExport** (boolean) - Indicates if data export is enabled. - **debugMode** (boolean) - Indicates if debug mode is enabled. - **initialSync** (boolean) - Indicates if an initial synchronization is performed. #### Response Example ```json { "id": "conn_12345abc", "name": "ExampleConnection", "type": "SomeExternalSystem", "shouldImport": true, "shouldExport": false, "debugMode": false, "initialSync": true } ``` #### Error Response (401) - **description**: Error: Unauthorized #### Error Response (404) - **type** (string) - The type of the error. - **title** (string) - The title of the error. - **status** (integer) - The HTTP status code. - **detail** (string) - A detailed description of the error. - **instance** (string) - The instance of the error. ### Security - **Bearer**: JWT Bearer token required. ``` -------------------------------- ### Get Consumption Readings (Ruby) Source: https://developers.facilioo.de/reference/consumptionreadingdate Example Ruby code using the 'httparty' gem to make a GET request for consumption reading dates. It configures the URL and sets the 'accept' and 'api-version' headers. ```ruby require 'httparty' response = HTTParty.get('https://api.facilioo.de/api/consumption-reading-dates', headers: { 'accept' => 'application/json', 'api-version' => '2.0' } ) puts response.body ``` -------------------------------- ### Minimal Property Object Example (JSON) Source: https://developers.facilioo.de/reference/delete_api-properties-id-shares-attributes-attributeid Demonstrates a minimal property object with only required fields populated. This example, 'Minimal Example without Optional Fields', shows a property where most address and identification details are null. ```json { "tenantId": 2, "number": null, "name": null, "fullStreet": null, "zipCode": null, "city": null, "resolutionCollectionStartOffset": 0, "imageId": null, "isArchived": false, "externalId": null, "externalOldId": null, "latitude": null, "longitude": null, "key": null, "unitsCount": 0, "parentId": 0, "description": null, "eligibleUnitsSelected": false, "created": "2026-01-27T08:38:18Z", "lastModified": null, "deleted": null, "id": 3 } ``` -------------------------------- ### Get Consumption Readings (Node.js) Source: https://developers.facilioo.de/reference/consumptionreadingdate Example Node.js code using the 'axios' library to make a GET request for consumption reading dates. It includes setting headers for accept and API version. ```javascript const axios = require('axios'); const options = { method: 'GET', url: 'https://api.facilioo.de/api/consumption-reading-dates', headers: { 'accept': 'application/json', 'api-version': '2.0' } }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); }); ``` -------------------------------- ### List Colors - Ruby Example Source: https://developers.facilioo.de/reference/color This Ruby snippet demonstrates how to call the /api/colors endpoint to get a paginated list of colors. It uses the 'net/http' library to construct and send the GET request with appropriate headers. ```ruby require 'net/http' require 'uri' uri = URI.parse('https://api.facilioo.de/api/colors') request = Net::HTTP::Get.new(uri) request['accept'] = 'application/json' request['api-version'] = '2.0' response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http| http.request(request) end puts response.body ``` -------------------------------- ### Example Unit Data (Another Regular Unit) Source: https://developers.facilioo.de/reference/get_api-properties-id-technical-unit Illustrates another example of a unit, 'Another Regular Unit of Entrance', showcasing variations in data, particularly with nullable fields. This helps understand how incomplete or optional data is represented. ```json { "typeId": 1, "holdingTypeId": 2, "number": "002", "position": "1. OG, Rechts", "entranceId": 1, "hidden": null, "squareMeters": null, "roomCount": null, "rentReduction": null, "description": null, "externalId": "bd90ea37-85ba-4033-b648-edeeb2a781d5", "externalIdOld": null, "isArchived": false, "created": "2026-01-27T08:38:18Z", "lastModified": null, "deleted": null, "id": 2 } ``` -------------------------------- ### Property Examples Source: https://developers.facilioo.de/reference/delete_api-properties-id-shares-attributes-attributeid Provides example request and response bodies for Property objects, illustrating different scenarios. ```APIDOC ## Property Examples This section provides examples of Property objects as they might appear in requests or responses. ### Example 1: Headquarters of facilioo ```json { "tenantId": 1, "number": "WEG 1", "name": "Ku'damm 92", "fullStreet": "Kurfürstendamm 92", "zipCode": "10709", "city": "Berlin", "resolutionCollectionStartOffset": 0, "imageId": null, "isArchived": false, "externalId": "420", "externalOldId": null, "latitude": null, "longitude": null, "key": null, "unitsCount": 0, "parentId": 0, "description": null, "eligibleUnitsSelected": false, "created": "2026-01-27T08:38:18Z", "lastModified": null, "deleted": null, "id": 1 } ``` ### Example 2: Headquarters for freiheit.software ```json { "tenantId": 1, "number": "WEG 4", "name": "Jägerstr. 39", "fullStreet": "Jägerstraße 39", "zipCode": "14467", "city": "Potsdam", "resolutionCollectionStartOffset": 0, "imageId": null, "isArchived": false, "externalId": "4", "externalOldId": null, "latitude": null, "longitude": null, "key": null, "unitsCount": 0, "parentId": 0, "description": null, "eligibleUnitsSelected": false, "created": "2026-01-27T08:38:18Z", "lastModified": null, "deleted": null, "id": 2 } ``` ### Example 3: Minimal Example without Optional Fields ```json { "tenantId": 2, "number": null, "name": null, "fullStreet": null, "zipCode": null, "city": null, "resolutionCollectionStartOffset": 0, "imageId": null, "isArchived": false, "externalId": null, "externalOldId": null, "latitude": null, "longitude": null, "key": null, "unitsCount": 0, "parentId": 0, "description": null, "eligibleUnitsSelected": false, "created": "2026-01-27T08:38:18Z", "lastModified": null, "deleted": null, "id": 3 } ``` ### Example 4: Property with Entrances ```json { "tenantId": 1, "number": "WEG 047", "name": "Nedlizter Str. 71-77", "fullStreet": "Nedlitzer Str. 71-77", "zipCode": "14469", "city": "Potsdam", "resolutionCollectionStartOffset": 0, "imageId": null, "isArchived": false, "externalId": null, "externalOldId": null, "latitude": null, "longitude": null, "key": null, "unitsCount": 0, "parentId": 0, "description": null, "eligibleUnitsSelected": false, "created": "2026-01-27T08:38:18Z", "lastModified": null, "deleted": null, "id": 4 } ``` ``` -------------------------------- ### Get Voting Groups (Ruby) Source: https://developers.facilioo.de/reference/votingprocedure Example Ruby code snippet using the 'net/http' library to make a GET request for voting groups. It shows how to set the request method, URL, and headers, and process the response. ```ruby require 'net/http' require 'uri' uri = URI.parse('https://api.facilioo.de/api/voting-procedures') http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true request = Net::HTTP::Get.new(uri.request_uri) request['accept'] = 'application/json' request['api-version'] = '2.0' response = http.request(request) puts response.body ``` -------------------------------- ### Facilioo Property Example: Property with Entrances Source: https://developers.facilioo.de/reference/get_api-conferences-id-property An example JSON object for a property that includes details relevant to its entrances. This demonstrates how to populate fields for properties with multiple access points. ```json { "tenantId": 1, "number": "WEG 047", "name": "Nedlizter Str. 71-77", "fullStreet": "Nedlitzer Str. 71-77", "zipCode": "14469", "city": "Potsdam", "resolutionCollectionStartOffset": 0, "imageId": null, "isArchived": false, "externalId": "-15", "externalOldId": null } ```