Kadens logoKadens logoKadens
  • Entdecken
  • Preise
AnmeldenAnfangen
Kadens logoKadens logoKadens

Unterricht

  1. Erste Schritte
  2. Akademie
  3. Zertifikate
  4. Lernen
  5. Kurse

Geld

  1. Abonnements
  2. Finanzen
  3. Tickets

Terminplanung

  1. Veranstaltungen
  2. Arbeit

Personen

  1. Gemeinschaft
  2. Mailing
  3. Formulare
  4. Bewerbungen
  5. Gemeinschaften

Plattform

  1. Website
  2. Entdecken
  3. Konto

Entwickler

  1. Überblick
  2. API-Schlüssel und Berechtigungen
  3. Website-Widgets
  4. Webhooks
  5. KI-Assistenten (MCP)
  6. REST-API
Nicht gefunden, wonach du suchst?Such noch einmal··Sprich mit uns
Kadens logoKadens logoKadens

Wo Tänzer sich verbinden, lernen und wachsen

Produkt

  • Entdecken
  • Kurse
  • Veranstaltungen
  • Communitys
  • Mentoring

Für Unternehmen

  • Kadens für den Unterricht
  • Kadens für Veranstaltungen
  • Kadens für Formulare
  • Kadens für Zertifikate
  • Erstelle deine Website
  • Preise
  • Buche eine Live-Demo

Ressourcen

  • Hilfecenter
  • Neuigkeiten
  • Entwickler
  • Support

Unternehmen

  • Kontakt
  • Instagram
  • Datenschutzrichtlinie
  • Nutzungsbedingungen
  • Cookie-Richtlinie
HilfecenterKontakt
Dokumentation durchsuchen · REST-API

Unterricht

  1. Erste Schritte
  2. Akademie
  3. Zertifikate
  4. Lernen
  5. Kurse

Geld

  1. Abonnements
  2. Finanzen
  3. Tickets

Terminplanung

  1. Veranstaltungen
  2. Arbeit

Personen

  1. Gemeinschaft
  2. Mailing
  3. Formulare
  4. Bewerbungen
  5. Gemeinschaften

Plattform

  1. Website
  2. Entdecken
  3. Konto

Entwickler

  1. Überblick
  2. API-Schlüssel und Berechtigungen
  3. Website-Widgets
  4. Webhooks
  5. KI-Assistenten (MCP)
  6. REST-API
  1. Hilfecenter
  2. Entwickler
  3. REST-API

REST-API

Die REST-API ist das, was Zapier, Make, n8n und dein eigener Code aufrufen, um die Ereignisse deines Kontos zu lesen und sie zu abonnieren. Sie spricht JSON über HTTPS, und jede Anfrage trägt einen API-Schlüssel.

·10 Min.
Auf dieser Seite
  1. Überblick
  2. Authentifizierung
  3. Fehler
  4. Ratenbegrenzungen
  5. Endpunkte
  6. REST-Hooks für Integrationen
  7. Und jetzt?

Überblick

Jeder Endpunkt liegt unter der Basis-URL unten, gefolgt von der Version, zum Beispiel /v1/me.

Die Beispiele auf dieser Seite lesen die Basis-URL aus KADENS_API_URL und deinen Schlüssel aus KADENS_API_KEY, sodass du sie unverändert einfügen kannst.

Anfragen und Antworten sind JSON. Sende Content-Type: application/json mit jeder Anfrage, die einen Body hat.

Die Version ist Teil des Pfads. Jedes Ereignis trägt außerdem die Version seines Formats in seinem Feld version, aktuell 2026-10-01, damit dein Code erkennt, welche Form es erhalten hat.

Authentifizierung

Jede Anfrage braucht einen API-Schlüssel im Authorization-Header als Bearer-Token. Jeder Endpunkt gibt die benötigte Berechtigung an.

API-Schlüssel und Berechtigungen

Fehler

Fehler verwenden Standard-HTTP-Statuscodes und einen JSON-Body mit dem Status, einer Nachricht, dem Pfad und einer Anfrage-Id, die du gegenüber dem Support angeben kannst.

StatusBedeutung
400Die Abfrage oder der Body hat die Validierung nicht bestanden. Prüfe die Felder anhand dieser Referenz.
401Der Schlüssel fehlt, ist falsch formatiert, widerrufen oder abgelaufen.
403Der Schlüssel ist gültig, hat aber nicht die für diesen Endpunkt nötige Berechtigung.
429Zu viele Anfragen. Warte die Zeit aus dem Header Retry-After und versuche es dann erneut.
Fehlerantwort
1
2
3
4
5
6
7
{
  "statusCode": 401,
  "message": "Missing or invalid API key",
  "timestamp": "2026-10-01T10:00:00.000Z",
  "path": "/api/v1/events",
  "requestId": "req_7c1e0b"
}

Ratenbegrenzungen

Begrenzungen werden pro API-Schlüssel gezählt. Wird eine davon überschritten, kommt 429 zurück, bis das Zeitfenster zurückgesetzt wird.

ZeitfensterLimit
Pro Sekunde40 Anfragen
Pro 10 Sekunden250 Anfragen
Pro Minute800 Anfragen
Mit einem 429 umgehen
Lies den Header Retry-After, warte so viele Sekunden und versuche es erneut. Der Body trägt errorCode: RATE_LIMITED, damit dein Code die Nachricht nicht auswerten muss.

Endpunkte

GET/v1/me

Testet den Schlüssel: gibt das Konto zurück, zu dem er gehört, und seine Berechtigungen. Funktioniert mit jedem gültigen Schlüssel.

Bash
1
2
curl "$KADENS_API_URL/v1/me" \
  -H "Authorization: Bearer $KADENS_API_KEY"
Beispielantwort
1
2
3
4
5
6
7
8
9
10
11
{
  "entity": {
    "id": "6f1c2d3e-4b5a-4c7d-8e9f-0a1b2c3d4e5f",
    "name": "Barcelona Salsa Studio"
  },
  "apiKeyId": "9a8b7c6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d",
  "scopes": [
    "webhooks.read",
    "webhooks.write"
  ]
}
GET/v1/event-typesBerechtigung: webhooks.read

Listet jeden Ereignistyp auf, den du abonnieren kannst, mit einem Beispiel für jeden und den Feldern, die personenbezogene Daten enthalten.

Bash
1
2
curl "$KADENS_API_URL/v1/event-types" \
  -H "Authorization: Bearer $KADENS_API_KEY"
Beispielantwort
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
{
  "apiVersion": "2026-10-01",
  "data": [
    {
      "type": "order.paid",
      "family": "orders",
      "descriptionKey": "Webhooks.events.order_paid",
      "sample": {
        "order": {
          "id": "ord_91ac04",
          "status": "paid",
          "created_at": "2026-10-01T09:58:02Z",
          "paid_at": "2026-10-01T10:00:00Z",
          "event": {
            "id": "evt_7f3c2a",
            "name": "Salsa Congress Barcelona 2026"
          },
          "totals": {
            "gross": {
              "amount": 12000,
              "currency": "EUR"
            },
            "fees": {
              "amount": 600,
              "currency": "EUR"
            },
            "net": {
              "amount": 11400,
              "currency": "EUR"
            },
            "tax": {
              "amount": 2083,
              "currency": "EUR"
            }
          },
          "buyer": {
            "entity_id": "ent_5b21",
            "name": "Lucia Martin",
            "email": "lucia@example.com"
          },
          "lines": [
            {
              "ticket_type_id": "tt_full_pass",
              "name": "Full pass",
              "quantity": 1,
              "unit_price": {
                "amount": 12000,
                "currency": "EUR"
              }
            }
          ]
        }
      },
      "personalDataPaths": [
        "order.buyer.name",
        "order.buyer.email"
      ]
    }
  ]
}
GET/v1/eventsBerechtigung: webhooks.read

Listet die neuesten Ereignisse zuerst, im selben Format wie Webhook-Zustellungen. Integrationen nutzen dies, um Beispieldaten anzuzeigen.

Bash
1
2
curl "$KADENS_API_URL/v1/events?type=order.paid&limit=10" \
  -H "Authorization: Bearer $KADENS_API_KEY"
Beispielantwort
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
{
  "data": [
    {
      "id": "msg_2f8a1c7e",
      "type": "order.paid",
      "version": "2026-10-01",
      "occurred_at": "2026-10-01T10:00:00Z",
      "account": {
        "id": "ent_1a0f",
        "name": "Barcelona Salsa Studio"
      },
      "subject": {
        "type": "order",
        "id": "ord_91ac04",
        "sequence": 2
      },
      "correlation_id": null,
      "livemode": true,
      "data": {
        "order": {
          "id": "ord_91ac04",
          "status": "paid",
          "created_at": "2026-10-01T09:58:02Z",
          "paid_at": "2026-10-01T10:00:00Z",
          "event": {
            "id": "evt_7f3c2a",
            "name": "Salsa Congress Barcelona 2026"
          },
          "totals": {
            "gross": {
              "amount": 12000,
              "currency": "EUR"
            },
            "fees": {
              "amount": 600,
              "currency": "EUR"
            },
            "net": {
              "amount": 11400,
              "currency": "EUR"
            },
            "tax": {
              "amount": 2083,
              "currency": "EUR"
            }
          },
          "buyer": {
            "entity_id": "ent_5b21"
          },
          "lines": [
            {
              "ticket_type_id": "tt_full_pass",
              "name": "Full pass",
              "quantity": 1,
              "unit_price": {
                "amount": 12000,
                "currency": "EUR"
              }
            }
          ]
        }
      }
    }
  ],
  "nextCursor": null,
  "hasMore": false
}
ParameterTypBeschreibung
typestringNur Ereignisse dieses Typs.
limitintegerWie viele Ereignisse zurückgegeben werden, von 1 bis 100. Standard ist 25.
cursorstringDer nextCursor der vorherigen Seite, um die nächste zu lesen.
Personenbezogene Daten sind standardmäßig verborgen
Namen, E-Mail-Adressen und andere personenbezogene Felder werden aus Ereignissen entfernt, sofern der Schlüssel nicht auch die Berechtigung people.read hat.
POST/v1/webhooks/subscriptionsBerechtigung: webhooks.write

Erstellt einen von der Integration verwalteten Endpunkt. Er erscheint schreibgeschützt im Dashboard. Gibt 201 zurück, wenn das Abonnement erstellt wird, und 200 mit dem bestehenden, wenn dasselbe Abonnement bereits existiert.

Bash
1
2
3
4
curl -X POST "$KADENS_API_URL/v1/webhooks/subscriptions" \
  -H "Authorization: Bearer $KADENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"targetUrl":"https://hooks.example.com/kadens","eventTypes":["order.paid","attendee.checked_in"],"integration":"zapier","externalRef":"zap_812734"}'
Beispielantwort
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
  "id": "3d9f2b71-8c4e-4a6f-9b1d-5e7a0c2f8d14",
  "created": true,
  "targetUrl": "https://hooks.example.com/kadens",
  "eventTypes": [
    "order.paid",
    "attendee.checked_in"
  ],
  "integration": "zapier",
  "externalRef": "zap_812734",
  "apiVersion": "2026-10-01",
  "secret": "whsec_Zk3v9QmT1rX8bLp2Wc6yHn4s",
  "createdAt": "2026-10-01T10:00:00.000Z"
}
FeldTypBeschreibung
targetUrlErforderlichstringDie HTTPS-Adresse, an die Kadens Ereignisse zustellt.
eventTypesErforderlichstring[]Die zuzustellenden Ereignistypen, von 1 bis 50. Lies die Liste aus /v1/event-types.
integrationErforderlichstringWer das Abonnement verwaltet: zapier, make, n8n oder other.
externalRefstringDeine eigene Id für dieses Abonnement, bis zu 255 Zeichen.
DELETE/v1/webhooks/subscriptions/:idBerechtigung: webhooks.write

Entfernt einen von der Integration erstellten Endpunkt. Gibt 204 ohne Body zurück.

Bash
1
2
curl -X DELETE "$KADENS_API_URL/v1/webhooks/subscriptions/3d9f2b71-8c4e-4a6f-9b1d-5e7a0c2f8d14" \
  -H "Authorization: Bearer $KADENS_API_KEY"

REST-Hooks für Integrationen

Automatisierungstools verbinden sich mit Kadens über das REST-Hooks-Muster: Sie abonnieren, wenn ein Workflow eingeschaltet wird, und melden sich ab, wenn er ausgeschaltet wird.

  1. 1

    Abonnieren

    Das Tool ruft POST /v1/webhooks/subscriptions mit der Zieladresse und den gewünschten Ereignistypen auf. Behalte die Id und das Signaturgeheimnis aus der Antwort.
  2. 2

    Ereignisse empfangen

    Kadens sendet jedes passende Ereignis als signiertes POST an diese Adresse. Prüfe die Signatur mit dem Geheimnis, bevor du dem Inhalt vertraust.
  3. 3

    Abmelden

    Wird der Workflow ausgeschaltet, ruft das Tool DELETE /v1/webhooks/subscriptions/:id mit der behaltenen Id auf.

So erstellte Abonnements erscheinen schreibgeschützt in deinem Dashboard, markiert mit der Integration, die sie verwaltet.

So prüfst du Signaturen

Und jetzt?

Im Dashboard öffnen

War das hilfreich?

Zurück
KI-Assistenten (MCP)

Auf dieser Seite

  1. Überblick
  2. Authentifizierung
  3. Fehler
  4. Ratenbegrenzungen
  5. Endpunkte
  6. REST-Hooks für Integrationen
  7. Und jetzt?