Kursspot API
REST-API für eine Akademie. Schlüssel legst du unter „API & Webhooks“ an. Lesen: Umfang read, Ändern: Umfang write. Limit: 120 Anfragen pro Minute und Schlüssel.
Anfang
curl https://DEINE-DOMAIN/api/v1/courses \
-H "Authorization: Bearer kls_…"Die maschinenlesbare Beschreibung (OpenAPI 3) liegt unter /api/v1/openapi.json. Fehler haben immer die Form {"error":{"code","message"}}.
Endpunkte
- GET
/api/v1/membersMitglieder auflisten
Parameter: q, page
- POST
/api/v1/membersMitglied hinzufügen oder einladen
- GET
/api/v1/coursesKurse auflisten
- GET
/api/v1/progressFortschritt einer Person
Parameter: email*, courseId
- POST
/api/v1/enrollmentsPerson in Kurs einschreiben (legt Mitglied bei Bedarf an)
- DELETE
/api/v1/enrollmentsEinschreibung beenden
- GET
/api/v1/hooksEigene Webhook-Abos (REST-Hooks für Zapier/Make) auflisten
- POST
/api/v1/hooksWebhook abonnieren (REST-Hook)
Zapier und Make nutzen dieses Muster für „Instant Trigger“. Die Antwort enthält das Signatur-Geheimnis einmalig.
- DELETE
/api/v1/hooks/{id}Webhook-Abo beenden
Parameter: id*
Webhooks
Jeder Aufruf ist ein POST mit JSON {id, event, createdAt, tenant, data} und den Headern kursspot-event, kursspot-delivery und kursspot-signature (t=ZEIT,v1=HMAC; HMAC-SHA256 über ZEIT.BODY mit deinem Geheimnis). Antworte mit 2xx; sonst wird bis zu 6-mal wiederholt (1 min, 5 min, 30 min, 2 h, 12 h). Prüfe den Zeitstempel (max. 5 Minuten alt), um Wiedereinspielen zu verhindern.
Ereignisse: member.createdmember.removedlesson.completedcourse.completedcertificate.issuedquiz.passedsubmission.createdsubmission.reviewedorder.paidorder.refunded
Zapier und Make
Aktionen (Mitglied hinzufügen, einschreiben) gehen über die HTTP-Module mit einem Schlüssel „Lesen und ändern“. Für sofortige Auslöser abonnieren die Dienste über POST /api/v1/hooks und beenden mit DELETE /api/v1/hooks/ID (REST-Hook-Muster). Eine fertige, veröffentlichte Zapier-App gibt es noch nicht.
MCP für KI-Werkzeuge
Endpunkt POST /api/mcp (JSON-RPC 2.0, Streamable HTTP) mit demselben Bearer-Schlüssel. Werkzeuge: list_members, list_courses, get_progress; mit Schreib-Schlüssel zusätzlich add_member, enroll_member.