Kursteilnehmer abrufen
Gibt eine paginierte Liste der Teilnahmen eines einzelnen Kurses zurück.
Benötigte Lizenz
Dieser Endpoint erfordert die Kurs-Lizenz des Unternehmens.
Request
GET /api/oauth/v2/resource/courses/{uuid}/attendees
Header
| Header | Wert |
|---|---|
Authorization | Bearer {access_token} |
URL-Parameter
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
uuid | string | Ja | Eindeutige Kurs-ID |
Query-Parameter
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
status | string | Nein | Filtert nach Status, kommagetrennt kombinierbar. Erlaubte Werte: active (nicht storniert), deleted (storniert). Standard: all (alle Werte). Siehe Konventionen. |
offset | integer | Nein | Startposition (Standard: 0) |
limit | integer | Nein | Anzahl Ergebnisse (Standard: 50, Max: 200) |
Hinweis: Dieser Endpoint erfordert immer die Scopes
courses,usersundcustomers.
Hinweis: Ohne
status-Filter sortiert dieser Endpoint nach interner ID aufsteigend, siehe Konventionen.
Response
Erfolg (200 OK)
json
{
"data": [
{
"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"course": "c3d4e5f6-a7b8-9012-cdef-012345678901",
"customer": "f0e1d2c3-b4a5-6789-fedc-ba9876543210",
"bookingDate": "2026-03-01T10:00:00+01:00",
"deleted": false,
"deletedAt": null,
"deletedBy": null,
"stornoReason": null,
"cancelableUntil": "2026-02-28T10:00:00+01:00",
"customerNotice": null,
"billStatus": "open"
}
],
"meta": {
"total": 12,
"offset": 0,
"limit": 50
}
}Response-Felder
| Feld | Typ | Beschreibung |
|---|---|---|
data | Array | Liste der Teilnahmen |
data[].id | string (UUID) | null | Eindeutige Teilnahme-ID. Bis zum Backfill null – ein Client, der einen String erwartet, muss null verkraften. |
data[].course | string (UUID) | null | Kurs. Nachladen über Kurs-Details |
data[].customer | string (UUID) | null | Kunde. Nachladen über GET /customers/{uuid} |
data[].bookingDate | string (ISO 8601) | null | Buchungsdatum |
data[].deleted | boolean | true, wenn die Teilnahme storniert ist – Status ist entweder angemeldet oder storniert |
data[].deletedAt | string (ISO 8601) | null | Zeitpunkt der Stornierung, null wenn nicht storniert |
data[].deletedBy | string (UUID) | null | Benutzer, der die Teilnahme storniert hat. Nachladen über GET /users/{uuid} |
data[].stornoReason | string | null | Stornierungsgrund |
data[].cancelableUntil | string (ISO 8601) | null | Letzter Zeitpunkt für eine kostenlose Stornierung |
data[].customerNotice | string | null | Notiz zum Kunden bei dieser Teilnahme |
data[].billStatus | string | Abrechnungsstatus: open, invoiced, ignore, unknown |
meta.total | integer | Gesamtanzahl der Teilnahmen (unter Berücksichtigung des status-Filters) |
meta.offset | integer | Aktuelle Startposition |
meta.limit | integer | Anzahl der zurückgegebenen Einträge |
Beispiele
bash
curl -X GET "https://my.offisy.at/api/oauth/v2/resource/courses/b2c3d4e5-f6a7-8901-bcde-f01234567890/attendees?status=all&offset=0&limit=50" \
-H "Authorization: Bearer {access_token}"Parameter
Zuerst Token anfordern
Mögliche Fehler
| Status | Code | Beschreibung |
|---|---|---|
| 400 | validation_error | status enthält einen ungültigen Wert |
| 401 | invalid_client | Ungültiger oder fehlender Access Token |
| 403 | insufficient_scope | Scope courses, users oder customers fehlt |
| 403 | insufficient_scope | Kurs-Lizenz nicht vorhanden |
| 404 | not_found | Kurs nicht gefunden |