Die API eignet sich zum Beispiel für eigene Software, interne Dashboards, Reporting-Lösungen oder Integrationen mit Make, Zapier, n8n und anderen Systemen.
Die aktuelle API-Version v1 ist ausschließlich lesend. Daten können über die API abgerufen, aber nicht erstellt, geändert oder gelöscht werden.
1. Voraussetzungen
Für den Zugriff benötigst du einen API-Key aus deinem WebinarSuite-Account.
Du findest die Verwaltung unter:
API-Verwaltung → Meine eigene API
Dort kannst du einen neuen API-Key erstellen und festlegen, auf welche Daten dieser Key zugreifen darf.
Je nach gewählten Berechtigungen stehen folgende Bereiche zur Verfügung:
Plain text
2. Wichtiger Sicherheitshinweis
Dein API-Key ist ein Zugangsschlüssel zu deinen WebinarSuite-Daten.
Er gehört deshalb ausschließlich auf deinen Server oder in die sichere Secret-Verwaltung deiner Automatisierungsplattform.
Verwende den API-Key niemals direkt in:
- JavaScript auf deiner Webseite
- öffentlich zugänglichem Frontend-Code
- GitHub-Repositories
- öffentlich sichtbaren Dateien
- Browser-Erweiterungen, in denen der Key ausgelesen werden kann
Die WebinarSuite API ist für Server-zu-Server-Kommunikation vorgesehen.
Direkte API-Aufrufe aus Webseiten bzw. Browser-JavaScript werden nicht unterstützt.
3. Basis-URL
Alle Endpunkte der aktuellen Version befinden sich unter:
https://my.webinarsuite.me/api/v1
Die Versionsnummer /v1 ist Bestandteil der API.
4. Authentifizierung
Bei jedem Request muss dein API-Key im HTTP-Header Authorization übertragen werden.
Format:
Ein WebinarSuite API-Key beginnt beispielsweise mit:
Beispiel mit cURL:
Der API-Key darf nicht als URL-Parameter übertragen werden.
/api/v1/me?api_key=ws_live_...
5. Verbindung testen
Der einfachste Verbindungstest ist:
Beispiel:
Eine erfolgreiche Antwort sieht grundsätzlich so aus:
Damit kannst du gleichzeitig prüfen:
- ob der API-Key gültig ist,
- mit welchem Account du verbunden bist,
- welchen Namen der API-Key besitzt,
- welche Berechtigungen der Key besitzt.
6. Verfügbare Endpunkte
Die API v1 stellt folgende Endpunkte bereit:
7. Öffentliche IDs
Die API verwendet bewusst keine internen Datenbank-IDs.
Webinare besitzen beispielsweise eine öffentliche Kennung wie:
Landingpages:
Accounts:
Für Anmeldungen wird der tkey verwendet.
Nutze ausschließlich diese öffentlichen Kennungen.
Eine interne oder numerische ID wie:
ist kein gültiger Ersatz für eine Webinar- oder Landingpage-ID.
Beispiel:
Nicht:
8. Webinare abrufen
Alle Webinare:
Beispiel:
Ein bestimmtes Webinar:
Beispiel:
Dafür benötigt dein API-Key die Berechtigung:
9. Landingpages abrufen
Alle Landingpages:
Einzelne Landingpage:
Beispiel:
Dafür benötigt dein API-Key:
10. Anmeldungen abrufen
Alle Anmeldungen werden über folgenden Endpunkt abgerufen:
Beispiel:
Dafür benötigt dein Key:
Eine einzelne Anmeldung kannst du über ihren tkey abrufen:
Beispiel:
Der tkey ist die stabile öffentliche Kennung einer Anmeldung und eignet sich deshalb auch hervorragend als eindeutiger Schlüssel in deiner eigenen Datenbank.
11. Teilnahmen abrufen
Teilnahmedaten werden über folgenden Endpunkt abgerufen:
Beispiel:
"https://my.webinarsuite.me/api/v1/teilnahmen?limit=50"
Dafür benötigt dein API-Key:
Über diesen Bereich können unter anderem Teilnahmesessions mit Daten wie Wiedergabedauer sowie Join- und Endzeitpunkt abgerufen werden.
12. Listen und Pagination
Listen werden nicht unbegrenzt in einer einzigen Antwort ausgegeben.
Standardmäßig liefert ein Request maximal:
Mit dem Parameter limit kannst du die Anzahl verändern.
Beispiel:
Der maximale Wert beträgt:
Eine Listen-Antwort enthält zusätzlich Informationen zur Pagination:
Wenn:
zurückgegeben wird, existiert mindestens eine weitere Seite.
Verwende anschließend den zurückgegebenen next_cursor für den nächsten Request.
Beispiel:
Wichtig:
Verändere oder dekodiere den Cursor nicht für deine Programmlogik.
Der Cursor ist für deinen Client ein undurchsichtiger Wert. Übernimm ihn exakt so, wie die API ihn zurückgibt.
13. Beispiel: alle Anmeldungen durchlaufen
Das Prinzip sieht folgendermaßen aus:
Eine Integration sollte sich niemals darauf verlassen, dass alle Daten mit einem einzigen Request zurückgegeben werden.
14. Nur neue oder geänderte Daten abrufen
Für regelmäßige Synchronisationen solltest du nicht jedes Mal sämtliche Datensätze neu abrufen.
Dafür gibt es den Parameter:
Beispiel:
Der Zeitwert wird im ISO-8601-Format übergeben.
Beispiel mit cURL:
seit und cursor können gemeinsam verwendet werden.
Der seit-Wert definiert dabei das Zeitfenster und der Cursor blättert durch die darin gefundenen Datensätze.
15. Empfohlene Synchronisationsstrategie
Für eine zuverlässige Integration empfehlen wir folgende Vorgehensweise:
Speichere nach einem erfolgreichen Synchronisationslauf den zuletzt verarbeiteten updated_at-Zeitpunkt.
Beim nächsten Lauf verwendest du diesen Wert wieder als seit-Parameter.
Ziehe dabei eine kleine Sicherheitsüberlappung ab, beispielsweise eine Minute.
Beispiel:
Letzter erfolgreich verarbeiteter Zeitpunkt:
Nächster Abruf:
Durch diese kleine Überlappung vermeidest du, dass Änderungen an einer zeitlichen Grenze verloren gehen.
16. Warum Datensätze doppelt auftreten können
Während du mehrere Seiten abrufst, können sich Daten in WebinarSuite gleichzeitig ändern.
Wird ein bereits gelieferter Datensatz aktualisiert, kann sich dessen Position innerhalb der Sortierung verändern.
Dadurch kann derselbe Datensatz während eines Synchronisationslaufs unter Umständen ein zweites Mal erscheinen.
Das ist beabsichtigt.
Die API priorisiert:
Kein Datensatz soll verloren gehen.
Deine Integration sollte deshalb sogenannte idempotente Verarbeitung verwenden.
Bei Anmeldungen bedeutet das:
Verwende den tkey als eindeutigen Schlüssel und führe ein Upsert durch.
Vereinfacht:
Vermeide deshalb eine Logik wie:
Sonst erzeugst du bei einer erneuten Lieferung Duplikate.
17. Zeitstempel
Zeitangaben der API werden in UTC und im ISO-8601-Format ausgegeben.
Beispiel:
Wenn du die Zeiten einem Benutzer anzeigen möchtest, solltest du sie anschließend in dessen lokale Zeitzone umrechnen.
Für Webinar-Termine solltest du den von der API gelieferten UTC-Terminwert verwenden.
18. Rate Limit
Die API ist gegen übermäßig viele Requests geschützt.
Der aktuelle Ausgangswert liegt bei:
Die tatsächlichen Informationen findest du in den Response-Headern:
Diese Werte sollte deine Anwendung auswerten.
Wird das Limit überschritten, antwortet die API mit:
Zusätzlich wird ein Header zurückgegeben:
Deine Anwendung sollte danach nicht sofort erneut anfragen, sondern bis zum angegebenen Zeitpunkt bzw. Zeitraum warten.
Vermeide feste Schleifen wie:
Das verschärft das Problem nur.
19. Fehlerformat
Fehler werden einheitlich als JSON zurückgegeben.
Grundstruktur:
Für deine Programmlogik solltest du möglichst den Wert in:
verwenden und nicht versuchen, den Text aus message auszuwerten.
20. Häufige HTTP-Statuscodes
200 – OK
Der Request wurde erfolgreich verarbeitet.
400 – Bad Request
Der Request enthält einen ungültigen Parameter.
Beispiele:
Kontrolliere insbesondere:
- Datum und ISO-Format
- Cursor
- Webinar-ID
- Landingpage-ID
- Limit
401 – Unauthorized
Es wurde kein oder kein gültiger API-Key übermittelt.
Mögliche Fehler:
Prüfe den Header:
403 – Forbidden
Der API-Key ist gültig, besitzt aber nicht die notwendige Berechtigung.
Beispiel:
Möchtest du beispielsweise Anmeldungen abrufen, benötigt dein Key:
404 – Not Found
Die angeforderte Ressource wurde nicht gefunden.
Das kann beispielsweise bei einer unbekannten Webinar-, Landingpage- oder Anmeldungskennung auftreten.
Aus Sicherheitsgründen unterscheidet die API nicht danach, ob eine Kennung überhaupt nicht existiert oder zu einem anderen WebinarSuite-Account gehört.
429 – Too Many Requests
Das Rate Limit wurde überschritten.
Werte den Header:
aus und wiederhole den Request erst danach.
21. Beispiel in JavaScript / Node.js
Wichtig:
ist hier bewusst eine Server-Umgebungsvariable.
Speichere den Key nicht direkt in öffentlich ausgeliefertem JavaScript.
22. Beispiel in PHP
23. Beispiel in Python
24. Beispiel für Make, n8n oder vergleichbare Systeme
Bei Automatisierungsplattformen verwendest du normalerweise ein HTTP-Modul.
Konfiguration:
Methode
URL
Header
Wert:
Als Query-Parameter kannst du beispielsweise setzen:
oder für einen regelmäßigen Sync:
Wenn pagination.has_more den Wert true besitzt, muss anschließend mit dem gelieferten next_cursor die nächste Seite abgerufen werden.
25. Empfohlene Architektur einer Integration
Eine produktive Integration sollte ungefähr folgendermaßen arbeiten:
Nicht empfohlen:
Der API-Key darf nicht beim Besucher landen.
26. Einen regelmäßigen Sync bauen
Ein robuster Synchronisationsprozess sieht beispielsweise so aus:
Erst nachdem ein kompletter Lauf erfolgreich abgeschlossen wurde, solltest du deinen gespeicherten Sync-Zeitpunkt fortschreiben.
Damit vermeidest du Datenverluste, wenn beispielsweise dein eigener Server während des Imports ausfällt.
27. API-Key deaktivieren
Wird eine Integration nicht mehr benötigt, solltest du den dazugehörigen API-Key in WebinarSuite entfernen bzw. widerrufen.
Dadurch verliert ausschließlich dieses angebundene System seinen Zugriff.
Das ist einer der Gründe, warum wir empfehlen:
Ein System = ein eigener API-Key.
Verwende nach Möglichkeit nicht denselben Key gleichzeitig für mehrere unabhängige Anwendungen.
28. Unterstützte Daten in API v1
Die aktuelle Version konzentriert sich bewusst auf die wichtigsten Daten für Integrationen:
- Webinare
- Landingpages
- Anmeldungen
- Teilnahmen
Nicht Bestandteil von API v1 sind derzeit unter anderem:
Chat-Verläufe, Livestream-Daten, KI-Inhalte und Umfragen.
Ebenfalls nicht vorhanden sind in v1 schreibende API-Endpunkte.
Du kannst deshalb über die API beispielsweise keine neue Anmeldung erzeugen oder Webinar-Daten verändern.
29. Kurzreferenz
Basis-URL:
Authentifizierung:
Verbindung testen:
Webinare:
Landingpages:
Anmeldungen:
Teilnahmen:
Pagination:
Inkrementelle Synchronisierung:
Standard-Limit:
Maximales Limit:
API-Version:
30. Checkliste für deine erste Integration
- API-Key in WebinarSuite erzeugen
- nur die benötigten Berechtigungen auswählen
- Key sicher als Secret speichern
/api/v1/meaufrufen- Antwort und Scopes kontrollieren
- benötigten Daten-Endpunkt testen
- Pagination implementieren
seitfür regelmäßige Synchronisation verwenden- Datensätze idempotent verarbeiten
- bei Anmeldungen
tkeyals eindeutigen Schlüssel verwenden - HTTP-Fehler behandeln
- Rate-Limit-Header beachten
- bei
429denRetry-After-Header berücksichtigen - API-Key niemals im Browser veröffentlichen
Damit hast du die technische Grundlage, um eine eigene Anwendung oder Integration mit WebinarSuite aufzubauen.