List Attendees
Returns a paginated list of attendances for a single course.
Required license
This endpoint requires the company's course license.
Request
GET /api/oauth/v2/resource/courses/{uuid}/attendees
Header
| Header | Value |
|---|---|
Authorization | Bearer {access_token} |
URL parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Unique course ID |
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | No | Filters by status, combinable as a comma-separated list. Allowed values: active (not canceled), deleted (canceled). Default: all (all values). See Conventions. |
offset | integer | No | Start position (default: 0) |
limit | integer | No | Number of results (default: 50, max: 200) |
Note: This endpoint always requires the scopes
courses,usersandcustomers.
Note: Without a
statusfilter, this endpoint sorts by internal ID ascending, see Conventions.
Response
Success (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 fields
| Field | Type | Description |
|---|---|---|
data | Array | List of attendances |
data[].id | string (UUID) | null | Unique attendance ID. null until the backfill — a client expecting a string must handle null. |
data[].course | string (UUID) | null | Course. Look up via Course Details |
data[].customer | string (UUID) | null | Customer. Look up via GET /customers/{uuid} |
data[].bookingDate | string (ISO 8601) | null | Booking date |
data[].deleted | boolean | true if the attendance is canceled — status is either registered or canceled |
data[].deletedAt | string (ISO 8601) | null | Cancellation timestamp, null if not canceled |
data[].deletedBy | string (UUID) | null | User who canceled the attendance. Look up via GET /users/{uuid} |
data[].stornoReason | string | null | Cancellation reason |
data[].cancelableUntil | string (ISO 8601) | null | Last time for a free cancellation |
data[].customerNotice | string | null | Note about the customer for this attendance |
data[].billStatus | string | Billing status: open, invoiced, ignore, unknown |
meta.total | integer | Total number of attendances (considering the status filter) |
meta.offset | integer | Current start position |
meta.limit | integer | Number of returned entries |
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
Possible errors
| Status | Code | Description |
|---|---|---|
| 400 | validation_error | status contains an invalid value |
| 401 | invalid_client | Invalid or missing access token |
| 403 | insufficient_scope | Scope courses, users, or customers is missing |
| 403 | insufficient_scope | Course license not present |
| 404 | not_found | Course not found |