> For the complete documentation index, see [llms.txt](https://docs.buildings.ability.abb/collection/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.buildings.ability.abb/collection/german/fur-entwickler/rest-api.md).

# REST API

## REST-API

Überblick über die BuildingPro Suites REST-API Die BuildingPro Suites REST-API ermöglicht einen einheitlichen Zugriff auf die Ressourcen und Daten einer BuildingPro Suites-Umgebung. Die Beschreibung der API liegt im weit verbreiteten [OpenAPI](https://www.openapis.org/) Format vor und kann daher auf vielfältige Weise wiederverwendet werden.

[![](https://api.eliona.io/favicon-32x32.png)BuildingPro Suites API](https://api.eliona.io/)

Das [BuildingPro Suites App SDK](https://doc.eliona.io/collection/referenzen/app-sdk) stellt vorgefertigte Bibliotheken für verschiedene Programmiersprachen bereit, um über die API auf BuildingPro Suites zuzugreifen.

### Zugriff und Authentifizierung

Die BuildingPro Suites API ist über den URL-Pfad erreichbar `/api/v2`. Wenn beispielsweise die URL für BuildingPro Suites `https://my.eliona.domain`, lautet die API über die folgende URL erreichbar:

> `https://my.eliona.domain/api/v2`

Zur Authentifizierung wird ein API-Schlüssel verwendet. Dieser wird vom BuildingPro-Suites-Administrator pro Anwendung ausgestellt und kann ein Ablaufdatum haben. Bei der Erstellung muss bekannt sein, welche API-Endpunkte benötigt werden und ob Lese- oder Schreibzugriff gewährt werden soll. Der API-Schlüssel muss im HTTP-Header des Aufrufs als `X-Api-Key`:

```
GET https://my.eliona.domain/api/v2/assets/158
X-Api-Key: {{key}}
```

#### **Postman-Collection** mit Beispielen

Eine Postman-Collection mit mehreren Anfragebeispielen steht für einfache API-Tests zur Verfügung. Sie können die `postman_collection.json` Datei direkt über die folgende URL in Postman importieren. Stellen Sie vor der Verwendung der Collection sicher, dass Sie die `api-server` als auch `read-write-token` Variablen an Ihre Umgebung anpassen.

> <https://raw.githubusercontent.com/eliona-smart-building-assistant/eliona-api/refs/heads/main/examples/postman-collection.json>

### Clients für den API-Zugriff

**Clients für verschiedene Programmiersprachen**

Mit der OpenAPI-Beschreibung der Schnittstelle lassen sich geeignete Clients für eine Vielzahl von Programmiersprachen mithilfe von [OpenAPI-Generatoren](https://openapi-generator.tech/docs/generators). Verschiedene Methoden stehen für die Generierung zur Verfügung. Es wird empfohlen, das bereitgestellte Docker-Image zu verwenden. Auf die neueste Version der OpenAPI-Beschreibung wird hierfür verwiesen:

> <https://raw.githubusercontent.com/eliona-smart-building-assistant/eliona-api/main/openapi.yaml>

Hier ist ein Beispielaufruf, um einen Client für die Programmiersprache Go zu generieren.

{% code lineNumbers="true" %}

```bash
docker run --rm \
     -v "${PWD}:/local" \
     openapitools/openapi-generator-cli:v6.2.1 generate \
     -g go \
     -i [https://raw.githubusercontent.com/eliona-smart-building-assistant/eliona-api/main/openapi.yaml](https://raw.githubusercontent.com/eliona-smart-building-assistant/eliona-api/main/openapi.yaml) \
     -o /local \
     --additional-properties="packageName=api"
```

{% endcode %}

Für die Programmiersprachen Go und Python wird ein Client fortlaufend aktualisiert und über GitHub bereitgestellt.

{% embed url="<https://github.com/eliona-smart-building-assistant/python-eliona-api-client>" %}
Python-Client für die BuildingPro Suites API
{% endembed %}

{% embed url="<https://github.com/eliona-smart-building-assistant/go-eliona-api-client>" %}
Go-Client für die BuildingPro Suites API
{% endembed %}

Postman: Import der API-Beschreibung

Die OpenAPI-Beschreibung der BuildingPro Suites REST-Schnittstelle kann in Postman importiert werden. Dadurch stehen alle Endpunkte zur Abfrage zur Verfügung. Importieren Sie dazu die folgende URL in Postman:

> <https://raw.githubusercontent.com/eliona-smart-building-assistant/eliona-api/main/openapi.yaml>

<figure><img src="https://1888287146-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB9s2DNtIvhBdrJ64xR9g%2Fuploads%2Fy06Xa74cDM69ZY7u8yJR%2Fimage.png?alt=media&#x26;token=e486405a-9a8e-4f83-ae20-02901d94af16" alt=""><figcaption></figcaption></figure>

Import-URL für den Workspace Nachdem die OpenAPI-Datei importiert wurde, stehen alle Endpunkte zur Verfügung. Um die API zu verwenden, muss der API-Schlüssel unter dem Abschnitt "Authorization" und die jeweilige Basis-URL unter "Variables" eingetragen werden.

#### Mock für API-Tests

Für das Testen der API steht ein entsprechender BuildingPro Suites Mock zur Verfügung. Dieser kann unabhängig von einer vollständigen BuildingPro Suites-Umgebung verwendet werden. Der Mock bietet eine vollständige API-Implementierung und eine vereinfachte BuildingPro Suites-Datenbank mithilfe eines Docker-Netzwerks. Das passende `docker-compose.yml` und die Datenbankdefinition werden über GitHub bereitgestellt:

{% embed url="<https://github.com/eliona-smart-building-assistant/eliona-mock>" %}
BuildingPro Suites Mock
{% endembed %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.buildings.ability.abb/collection/german/fur-entwickler/rest-api.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
