Quickstart
Dieser Einstieg holt veröffentlichte Kurse über die öffentliche REST-API. Voraussetzung ist ein Workspace, in dem du Owner oder Admin bist, sowie mindestens ein veröffentlichter Kurs mit geplantem Termin.
1. API-Key erzeugen
Abschnitt betitelt „1. API-Key erzeugen“- Im Dashboard Integrationen öffnen.
- Einen Namen vergeben, zum Beispiel
Kurskatalog. - Den Scope
courses:readwählen. - API-Key erstellen wählen.
- Den einmal angezeigten Wert beginnend mit
orb_api_lokal speichern.
Der Klartext ist danach nicht mehr lesbar. Bei Verlust den Key rotieren und den neuen Wert verwenden. Den Key nicht in Git, Tickets, Screenshots oder Client-Code ablegen.
Für Buchungen zusätzlich bookings:read setzen. Name und E-Mail der
Teilnehmenden erfordern participants:read (setzt bookings:read voraus).
2. Kurse lesen
Abschnitt betitelt „2. Kurse lesen“Ersetze YOUR_API_KEY durch den gespeicherten Key. Die Basis-URL der
Produktions-API ist https://api.orbinaut.ccl-dev.com.
curl -sS \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json" \ https://api.orbinaut.ccl-dev.com/api/public/v1/coursesErwartete erfolgreiche Antwort:
{ "data": [ { "id": "course-run-id", "title": "Aquarellkurs", "description": "Einführung ins Aquarell", "sessions": [ { "id": "session-id", "startsAt": "2026-09-01T17:00:00.000Z", "durationMinutes": 90, "timeZone": "Europe/Berlin", "location": "Studio Mitte" } ] } ]}Die Antwort darf nicht zwischengespeichert werden
(Cache-Control: private, no-store).
3. Buchungen lesen
Abschnitt betitelt „3. Buchungen lesen“Derselbe Aufruf mit einem Key, der bookings:read besitzt:
curl -sS \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json" \ https://api.orbinaut.ccl-dev.com/api/public/v1/bookingsOhne participants:read enthält jedes Element id, courseRunId, source,
status, createdAt und updatedAt. Mit dem Scope kommt
participant: { "name", "email" } hinzu. Es gibt keine Cursor-Pagination;
die API liefert höchstens die 100 neuesten Buchungen.
Typische Fehler
Abschnitt betitelt „Typische Fehler“Fehlender oder ungültiger Key:
{ "error": { "code": "invalid_api_key", "message": "A valid API key is required" }}Key ohne den nötigen Scope (HTTP 403):
{ "error": { "code": "missing_scope", "message": "The bookings:read scope is required" }}Mehr als 120 Anfragen in 60 Sekunden liefern HTTP 429 mit
error.code rate_limit_exceeded und Header Retry-After: 60.
Die vollständige Feldliste steht in der Referenz.
Das OpenAPI-Dokument liegt unter
/openapi/public-v1.yaml.

