HouseInTime API v1
Deine Gebäudeakte. Vernetzt.

Ein Zugang.
Deine Objekte.

Verbinde deine Systeme mit HouseInTime. Lege Gebäude an, lies ihre Daten aus und übertrage Dateien direkt in deine Firmeninstanz.

REST · JSONBenannte API-SchlüsselGetrennte Firmeninstanzen

In wenigen Schritten verbunden.

Dein Schlüssel bestimmt die Instanz. Eine zusätzliche Instanz-ID in der Adresse brauchst du nicht.

01 / ZUGANG

Schlüssel in HouseInTime anlegen

Öffne als Eigentümer einer Firmeninstanz die Einstellungen → API-Schlüssel. Vergib einen Namen, etwa „Buchhaltung“, und kopiere den einmalig angezeigten Schlüssel.

02 / ERSTER AUFRUF

Deine Objekte abrufen

Sende den Schlüssel als Bearer-Header. AppChamp ordnet ihn deiner Instanz zu und leitet die Anfrage an deren HouseInTime-Server weiter.

Die Beispiele verwenden einen Platzhalter. Ersetze ihn in deinem eigenen Client durch den vollständigen Schlüssel.

Ein Schlüssel, eine klare Zuordnung.

Jeder benannte Schlüssel gehört zu einer Firmeninstanz. Er bleibt auf deren versionierte Objekt-API beschränkt und lässt sich einzeln widerrufen.

Authorization: Bearer <API_KEY>

Alternativ: X-Api-Key: <API_KEY>. Verwende genau eine der beiden Varianten. Schlüssel gehören nicht in die URL.

Für Firmeninstanzen. API-Schlüssel können regulär zugeordnete Eigentümer verwalten, im Web und in der mobilen App. Privatkunden und Sammelinstanzen haben keinen API-Zugang. Ein widerrufener Schlüssel ist ab dem nächsten Aufruf ungültig.

Objekte verwalten.

Die erste API-Version unterstützt Anlegen, Auflisten und Lesen deiner Gebäudeobjekte.

GET/objectsAlle Objekte auflisten

Liefert die Objektübersicht deiner Instanz, unter anderem mit Kennung, Name, Revision und Änderungszeit.

[
  {
    "id": "OBJECT_ID",
    "name": "Gebäude A",
    "revision": 1,
    "updatedAt": "2026-11-09T12:00:00Z",
    "archived": false
  }
]
200 OK · application/json

Gekürztes Beispiel. Die Antwort enthält zusätzliche Übersichtsfelder.

POST/objectsObjekt anlegen

Sende JSON mit name (Pflicht, maximal 200 Zeichen) und optional description.

{
  "name": "Gebäude A",
  "description": "Verwaltungsgebäude am Standort Süd"
}
201 Created · application/json

Die Antwort ist ein Snapshot mit document.id, document, revision, media und updatedAt. Verwende document.id für weitere Aufrufe.

GET/objects/{id}Ein Objekt lesen

Liefert den aktuellen Snapshot des Objekts. Ersetze {id} durch dessen Kennung. Unbekannte Kennungen und Objekte anderer Instanzen liefern 404.

200 OK · application/json

Dateien, direkt am Objekt.

Übertrage Pläne, Bilder und andere Originaldateien. Die Datei bleibt dem Objekt deiner Instanz zugeordnet.

POST/objects/{id}/mediaDatei hochladen

Der Request-Body enthält die rohe Datei, kein Multipart-Formular. Setze ihren Content-Type und den URL-codierten Dateinamen als Query-Parameter fileName.

201 Created · application/json

Die Medienbeschreibung enthält id, originalName, contentType, length und sha256 sowie weitere Metadaten.

GET/objects/{id}/media/{mediaId}

Lädt die Originaldatei herunter. Verwende die Medien-ID aus der Upload-Antwort oder dem Objektsnapshot. HTTP-Range-Anfragen werden unterstützt.

200 OK oder 206 Partial Content · ursprünglicher Content-Type

Antworten verstehen.

Prüfe den HTTP-Status deines Aufrufs. Erfolgreiche Objektantworten verwenden JSON; Downloads liefern die Originaldatei.

StatusBedeutungWas du tun kannst
200 / 201Gelesen / angelegtAntwort weiterverarbeiten.
400Ungültige AnfrageJSON, Namen und Header prüfen.
401Schlüssel ungültig oder widerrufenVollständigen Schlüssel und Produktadresse prüfen.
403Aktion nicht freigegebenFirmeninstanz und Eigentümerberechtigung prüfen.
404Objekt, Datei oder Route nicht gefundenKennung und Instanzzuordnung prüfen.
429Zu viele AnfragenAufrufe reduzieren und verzögert wiederholen.
503Instanz wird vorbereitet / ist vorübergehend nicht bereitRetry-After beachten und erneut versuchen.
Für deine Integration: Nutze HTTPS und setze Timeouts. Bei 503 mit Retry-After kannst du nach der angegebenen Wartezeit erneut anfragen. Nach einem Verbindungsabbruch bei einem POST erst den Bestand prüfen, damit kein Objekt doppelt angelegt wird.

Derzeit: bis zu 600 öffentliche API-Aufrufe pro Minute je effektiver Client-IP; bis zu 100 aktive Schlüssel je Instanz. Die konkrete Uploadgrenze hängt von der Bereitstellung und dem Proxy ab. Objektänderung und Objektlöschung sind in v1 noch nicht enthalten.