Häufigste Integrationen: So geht's
Die häufigsten Integrationsmuster zwischen der LabKey-Zugangskontrolle und Verwaltungssoftware, PMS, Buchungs- und Zahlungsplattformen, mit realen Beispielen, die bereits im produktiven Einsatz sind.
Das technische Schema ist einfach und robust: Sie können Ihre Software an die API-Schicht Ihrer Installation anbinden und diese eigenständig verwalten.

Die API-Struktur ermöglicht es Ihnen, Vorgänge durchzuführen, die nahezu alle Funktionen des Manage-Panels simulieren, das im Lieferumfang des KITs enthalten ist. Alle Aufrufe müssen aktiviert sein und von einer autorisierten IP-Adresse stammen.
Im Folgenden finden Sie die vollständige Anleitung zu allen verfügbaren Aufrufen, gegliedert nach Funktionsbereich. Dieselbe Dokumentation ist auch in interaktiver Form auf Postman verfügbar: hier klicken!.
Hinweis: Es ist auch eine erweiterte Version des API-Dienstes verfügbar (API PRO), mit der Sie die Logs der API-Aufrufe einsehen und den Öffnungsaufruf aus der Ferne durchführen können — siehe den Abschnitt API Pro oder kontaktieren Sie uns, um mehr zu erfahren.
Praktische Beispiele für die Integration mit Buchungssystemen, PMS, Zahlungs- und Reservierungsplattformen finden Sie unter Häufigste Integrationen: So geht’s.
Alle Aufrufe (mit Ausnahme der Statusprüfung) erfordern ein Bearer-Token, das über den Aufruf authorize erhalten und als Header in den nachfolgenden Anfragen übergeben wird.
authorize erneuert werden.authorize: nicht autorisierte IP-Adresse oder falscher secret_key (invalid_access), falsche Anmeldedaten (invalid_credentials), allgemeiner Fehler (could not create token).invalid_token). Etwaige spezifische Fehler werden im Feld messages der JSON-Antwort angegeben.POST /api/v2/authorize — Token abrufenGibt das Bearer-Token zurück, das für alle nachfolgenden Aufrufe verwendet werden soll.
email (E-Mail-Adresse des Bedieners), password (Passwort des Bedieners), secret_key (der autorisierten IP-Adresse zugeordnet, zu finden im Panel im Bereich API / Setup)tokeninvalid_credentials (falsche E-Mail-Adresse oder Passwort), invalid_credentials2 (nicht autorisierte IP-Adresse oder falscher secret_key), invalid_access1 (secret_key fehlt)GET /api/v2/ — StatustestPrüft, ob das Panel aktiv und funktionsfähig ist (gibt Test aus). Erfordert keine Authentifizierung und keine Parameter.
PUT /api/v2/adduser — Neuen Benutzer anlegenLegt einen neuen Benutzer im Panel an.
name (Vorname), surname (Nachname)email, phone, prefix (URL-codierte Landesvorwahl, z. B. +39 → %2b39), tags (Array; jedes Komma wird durch einen Unterstrich ersetzt), status (1 = aktiviert, 0 = deaktiviert), fields (Array benutzerdefinierter Zusatzfelder im Format fields[id_campo]=valore)PUT /api/v2/updateuser — Benutzer bearbeitenAktualisiert die Daten eines bestehenden Benutzers.
user_id, name, surnameemail, phone, prefix, tags, status (1 = aktiviert, 0 = deaktiviert), fields (Array von Zusatzfeldern, gleiches Format wie bei AddUser)DELETE /api/v2/deleteuser — Benutzer löschenLöscht einen Benutzer aus dem Panel.
user_idGET /api/v2/getusers — BenutzerlisteGibt die Daten aller im Panel vorhandenen Benutzer zurück, oder eines bestimmten, wenn der optionale Parameter übergeben wird.
user_id, tags (filtert Benutzer nach Tag), getGrantInfo (wenn 1, werden auch die Details der zugehörigen Zugänge einbezogen)GET /api/v2/users/getStatus — BenutzerstatusGibt zurück, ob ein Benutzer aktiviert oder deaktiviert ist.
user_idPOST /api/v2/users/changeStatus — Benutzerstatus ändern (noch nicht verfügbar)Bei status = 1 wird der Benutzer für Zugänge aktiviert, bei status = 0 deaktiviert.
user_id, status (1 = aktiviert, 0 = deaktiviert)GET /api/v2/getGroup — GruppenlisteGibt die Daten aller im Panel vorhandenen Gruppen zurück, oder einer oder mehrerer bestimmter, wenn der optionale Parameter übergeben wird.
group_id (kann ein Array sein)POST /api/v2/grantAccessGroup — Zugang zu einer Gruppe aktivierenAktiviert den Zugang eines oder mehrerer Benutzer zu einer oder mehreren angegebenen Gruppen und erstellt die Benutzer-Gruppen-Zuordnung.
user_id (kann ein Array sein), group_id (kann ein Array sein)POST /api/v2/dropAccessGroup — Zugang zu einer Gruppe entziehenEntzieht die Zugangsberechtigungen eines Benutzers, der einer Gruppe zugehört, und entfernt die Benutzer-Gruppen-Zuordnung.
user_id (kann ein Array sein), group_id (kann ein Array sein)GET /api/v2/getcredits — GuthabenstandGibt das verfügbare Guthaben zurück.
GET /api/v2/getprices — PreislisteGibt die Preisliste für das Aufladen des Guthabens zurück.
POST /api/v2/recharge — Guthaben aufladenFührt eine Guthabenaufladung durch.
user_id, amount (z. B. 10.50)GET /api/v2/getunusednfc — Freie NFC-SchlüsselGibt die Liste der NFC-Schlüssel zurück, die keinem Benutzer zugeordnet sind. Kein Parameter erforderlich.
GET /api/v2/getallnfc — Liste der NFC-SchlüsselGibt die Daten zu allen im Panel vorhandenen NFC-Schlüsseln zurück, unabhängig davon, ob sie zugeordnet sind oder nicht.
limit, offsetoffset ohne limit verwendetPUT /api/v2/addkey — NFC-Schlüssel hinzufügenFügt einen neuen NFC-Schlüssel hinzu.
nfc_key_code (RFID-Code, gelesen mit einem Standardlesegerät: wird gemäß dem LabKey-Standard umgewandelt — verwenden Sie keinen Code aus einem Zugangslog), nfc_key_name (dem Schlüssel zuzuordnender Name)force_hex (erzwingt die Umwandlung des Codes aus einer Hexadezimalzeichenkette; wenn nicht angegeben, erfolgt die Umwandlung automatisch nur, wenn der Code mindestens einen Buchstaben enthält)PUT /api/v2/addkey2user — NFC-Schlüssel einem Benutzer zuordnenOrdnet einen NFC-Schlüssel einem bestimmten Benutzer zu.
user_id, nfc_key_idDELETE /api/v2/deletekey — NFC-Schlüssel löschenLöscht einen NFC-Schlüssel.
nfc_key_code (gemäß LabKey-Standard umgewandelter RFID-Code, z. B. 1234567890 → 210215073)nfc_key_code fehltGET /api/v2/getnfcdetails — Details eines NFC-SchlüsselsGibt die Details zu einem NFC-Schlüssel zurück.
nfc_key_code (gemäß LabKey-Standard umgewandelter Code)POST /api/v2/editnfc — NFC-Schlüssel bearbeitenBearbeitet die Details eines NFC-Schlüssels.
nfc_key_code, namenfc_key_code nicht gefunden oder fehlt, name fehltPOST /api/v2/edittastierino — Tastenfeld-Code ändernÄndert den Code eines Tastenfelds (Pinpad).
old_pinpad_key_code (alter, zu ersetzender Code), new_pinpad_key_code (neuer Code)POST /api/v2/updatepinpad — Tastenfeld-Code für Benutzer aktualisierenAktualisiert den Tastenfeld-Code über die Auswahl des Benutzers.
user_id, new_pinpad_key_codePOST /api/v2/getqrcode — QR-Code erzeugenErzeugt einen QR-Code für den ausgewählten Benutzer, verwendbar ausgehend von der „message string".
user_idimage (wenn 1, wird das QR-Code-Bild base64-codiert zurückgegeben), with_background (erfordert image=1; wenn 1, wird dem Bild ein dekorativer Hintergrund hinzugefügt)POST /api/v2/getfasturl — Fast URL erzeugenErzeugt die Fast URL für den ausgewählten Benutzer, verwendbar ausgehend vom Feld „fast_url".
user_idGET /api/v2/getallpinpad — Liste der Tastenfeld-CodesGibt alle Tastenfeld-Codes und die zugehörigen Details zurück.
limit, offsetlimit als auch offset setzen oder beide leer lassen; limit/offset müssen Ganzzahlen seinPOST /api/v2/getGrantInfo — Details eines ZugangsGibt die Daten zum angegebenen Zugang zurück.
involved_associations (eine oder mehrere vom Aufruf grantaccess zurückgegebene IDs)involved_associations gesendet werdeninvolved_associations nicht gefundenPOST /api/v2/automategetGrantInfo — Vereinfachte ZugangsdetailsKomfortaufruf zur Vereinfachung der Nutzung von getGrantInfo.
user_id (kann ein Array sein), unique_name (kann ein Array sein — Name der ausgewählten LabKey)GET /api/v2/getuservarcodetails — Details der Zugangspunkte eines BenutzersGibt alle Details zu den Zugangspunkten zurück, die dem ausgewählten Benutzer zugeordnet sind.
user_idPOST /api/v2/grantaccess — Zugang aktivierenAktiviert den Zugang eines Benutzers. Um eine Kombination mehrerer Technologien (NFC, Tastenfeld, Barcode) zu konfigurieren, kann diese API mehrmals mit unterschiedlicher key_id aufgerufen werden.
user_id, key_id (ID des dem Benutzer zugeordneten Zugangsschlüssels: nfc_key_id für NFC/Pocket, pinpad_key_id für Tastenfeld/Barcode verwenden), data (JSON-Zeichenkette mit den Parametern jedes Zugangspunkts: Datumsbereich datei/datef, Uhrzeiten houri/hourf, Wochentage mo,tu,we,th,fr,sa,su, Feiertage tv, command_device_id, id_rele, technology)check_overalapping, force_same_idrele_commanddeviceidPOST /api/v2/editaccess — Zugang bearbeitenKomfortaufruf, der nacheinander dropaccess und grantaccess ausführt und eine neue involved_associations für den Benutzer zurückgibt. Kein atomarer Vorgang: Wenn dropaccess erfolgreich abgeschlossen wird, grantaccess jedoch fehlschlägt, bleiben die Zuordnungen trotzdem gelöscht.
involved_associations (kann ein Array sein), user_id, key_id, data (JSON-Zeichenkette, gleiches Format wie bei GrantAccess)DELETE /api/v2/dropaccess — Zugang entziehenEntzieht die Zugangsberechtigungen.
involved_associations (aus der Antwort von grantaccess erhaltener Code)POST /api/v2/isAccessible — Zugänglichkeit eines Zugangspunkts prüfenPrüft, ob ein Zugangspunkt in einem bestimmten Zeitraum zugänglich ist.
unique_name, from_date (Zeitstempel), to_date (Zeitstempel), id_releGET /api/v2/antipassback/ — ZählerdetailsGibt die Details zur Zählerverwaltung für den angegebenen Benutzer und Zugangspunkt zurück. Die Antwort ist ein Array mit den Details für jedes Relais.
user_id, unique_nameis_active (1/0, Zähler aktiv oder nicht), has_total/number_total (Gesamtzugangslimit), has_day/number_day (Tageslimit), has_week/number_week (Wochenlimit), has_month/number_month (Monatslimit)POST /api/v2/antipassback/update_or_create — Zähler einstellenErstellt oder aktualisiert die Zählerkonfiguration für ein oder mehrere Relais.
user_id, data (JSON-Zeichenkette mit den Feldern is_active, has_total/number_total, has_day/number_day, has_week/number_week, has_month/number_month für jede LabKey und jedes Relais)is_active gesetzt ist, kann nur eines von has_total, has_day, has_week oder has_month aktiviert werden — eine gleichzeitige Aktivierung ist nicht möglich.GET /api/v2/getlabkeys — Liste der LabKeysGibt die Details der Steuergeräte/LabKeys zurück.
unique_name, labkey_id, key_tipeGET /api/v2/getbuildings — Liste der StandorteGibt die Informationen zu den dem Panel zugeordneten Standorten zurück.
structure_id, structure_name, referentGET /api/v2/getlogs — ZugangsprotokolleGibt die Zugangsprotokolle zurück.
from (Startdatum), to (Enddatum), unique_name (Name der LabKey), labkey_id, user_id, limit (Paginierung), offset (Paginierung)POST /api/v2/sendemail — E-Mail sendenSendet eine E-Mail an einen Kunden, zum Beispiel mit den Zugangsdetails.
user_id (Empfänger), operator_email (Absender)message (individuelle Nachricht; wenn nicht angegeben, wird eine Standardnachricht gesendet), cc_emails (Array von Adressen in Kopie), show_sender_name, send_permissions_list, send_fast_url, send_qr_codeAlerts — Echtzeit-BenachrichtigungenErmöglicht den Empfang automatischer Benachrichtigungen an einen eigenen Endpunkt, sobald ein Ereignis eintritt (z. B. ein Zugang). Der Webhook wird im Manage-Panel im Bereich Alert → Alert Standard konfiguriert.
user_id, full_name, id_log, key_code, result_boolean (Zugang erlaubt oder nicht), timestamp, is_log_offline, unique_name, labkey_id, tags, event_typeVerwaltung der benutzerdefinierten Felder, die dem Benutzerstammdatensatz zugeordnet werden können (siehe auch Neuen Benutzer anlegen).
GET /api/v2/customfields — FeldlisteGibt die Liste der Zusatzfelder mit den zugehörigen Attributen zurück.
limit, offsetGET /api/v2/customfields/{id_field} — FelddetailGibt die Details eines bestimmten Zusatzfelds zurück.
GET /api/v2/customfields/count — FeldanzahlGibt die Anzahl der gespeicherten Zusatzfelder zurück.
POST /api/v2/customfields/create — Feld erstellenErstellt ein neues Zusatzfeld.
type_field (text oder date), name_field (max. 255 Zeichen)order (numerisch), is_required (1 = bei der Benutzererfassung erforderlich), can_disable_user (1 = ja; nur mit type_field=date verwendbar — das System deaktiviert den Benutzer automatisch um Mitternacht, wenn das eingegebene Datum in der Vergangenheit liegt)POST /api/v2/customfields/{id_field}/update — Feld bearbeitenAktualisiert ein bestehendes Zusatzfeld. Gleiche Parameter wie bei create.
GET /api/v2/customfieldsuser/{id_user}/ — Feldliste für BenutzerGibt alle für einen Benutzer ausgefüllten Zusatzfelder zurück.
limit, offsetGET /api/v2/customfieldsuser/{id_user}/{id_field} — Feldwert für BenutzerGibt den Wert eines bestimmten Zusatzfelds für den angegebenen Benutzer zurück.
POST /api/v2/customfieldsuser/{id_user}/{id_field}/create — Feldwert festlegenErstellt den Wert eines Zusatzfelds für den Benutzer.
value (max. 255 Zeichen)can_disable_user (0 = nein, 1 = ja)POST /api/v2/customfieldsuser/{id_user}/{id_field}/update — Feldwert aktualisierenAktualisiert den Wert eines Zusatzfelds für den Benutzer. Gleiche Parameter wie bei create.
Verwaltung vordefinierter Vorlagen für wiederkehrende Zugänge (siehe auch Vorlagen).
GET /api/v2/templates/count — VorlagenanzahlGibt die Anzahl der gespeicherten Vorlagen zurück.
GET /api/v2/templates/ — VorlagenlisteGibt die Liste der Vorlagen zurück.
limit, offsetGET /api/v2/templates/detail — VorlagendetailGibt das Detail einer bestimmten Vorlage zurück.
template_idPOST /api/v2/templates/addAccessUser — Vorlage auf Benutzer anwendenWendet eine Zugangsvorlage auf einen Benutzer an. Es gibt zwei Möglichkeiten: Angabe von sowohl timestamp_start als auch timestamp_end (das System legt Beginn und Ende des Zugangs auf diese Werte fest), oder Angabe nur von timestamp_start, wobei das System das Ende automatisch anhand der Vorlageneinstellungen berechnet.
user_id, template_idtimestamp_start (Standard: jetzt), timestamp_endVerwaltung der Feiertage (siehe auch Feiertage): Während der konfigurierten Zeiträume öffnen die ausgewählten Zugangspunkte nur für zugelassene Benutzer.
GET /api/v2/festivita — FeiertagslisteGibt alle Feiertage zurück, oder einen bestimmten, wenn die ID übergeben wird.
idGET /api/v2/festivita/count — FeiertagsanzahlGibt die Anzahl der konfigurierten Feiertage zurück.
idGET /api/v2/festivita/is_holiday — Feiertag prüfenPrüft, ob ein bestimmtes Datum/eine bestimmte Uhrzeit in einen Feiertagszeitraum fällt.
datetime (Format YYYY-MM-DD HH:MM:SS)unique_name, labkey_id, rele (Array), user_idis_holiday (boolescher Wert)POST /api/v2/festivita/create — Feiertag erstellenErstellt einen neuen Feiertag.
title, start_datetime (Format YYYY-MM-DD HH:MM:SS), end_datetime (Format YYYY-MM-DD HH:MM:SS)description, recurring (1 = jährlich wiederkehrend), notification_email, monday…sunday (1 = an diesem Tag aktiv), varcos (JSON-Array der betroffenen labkey_id/rele), user_ids (Array der betroffenen Benutzer)POST /api/v2/festivita/update — Feiertag bearbeitenAktualisiert einen bestehenden Feiertag. Gleiche optionale Parameter wie bei create.
idtitle, start_datetime, end_datetime, recurring, active (1 = aktiviert, 0 = deaktiviert), notification_email, monday…sunday, varcos, user_idsDELETE /api/v2/festivita/delete — Feiertag löschenLöscht einen Feiertag.
idDie häufigsten Integrationsmuster zwischen der LabKey-Zugangskontrolle und Verwaltungssoftware, PMS, Buchungs- und Zahlungsplattformen, mit realen Beispielen, die bereits im produktiven Einsatz sind.