List onboarding sessions
/onboarding-sessionsLists onboarding sessions, newest started first, and returns one page. A session is one respondent's run through an onboarding flow. Give filter[flow_id] or filter[user_id] (422 without one). Sessions of other organisations' users and of service users never show. Filter by filter[status], filter[flow_test], filter[q] (the user's name) and the filter[started_at] and filter[completed_at] ranges. include=flow embeds each flow. Use GET /onboarding-sessions/{id} for one session. It changes nothing.
Query parameters
- Default:
Page size (1–100). Defaults to 25; values are clamped to the range.
25 Opaque pagination cursor taken from a prior response's
meta.next_cursor.Comma-separated top-level fields to return.
idis always returned.Set to
flowto embed each session's onboarding flow, with its routes.Comma-separated fields to sort by: started_at, created_at, updated_at or completed_at. Prefix a field with
-for descending. Defaults to-started_at, newest first. Sessions not yet completed sort after completed ones by completed_at. The session id is always the final tiebreak.Only sessions of this flow. Takes
[in]and[not_in]with a comma-separated list. This or filter[user_id] is required.Only sessions of this user. Takes
[in]and[not_in]with a comma-separated list. A user outside your organisation, or a service user, matches nothing. This or filter[flow_id] is required.- One of:
Only sessions in this status: in_progress, completed or expired. Takes
[in]and[not_in]with a comma-separated list.in_progress,completed,expired Only test runs of the flow when true, only real sessions when false.
Sessions whose user's name contains this text, ignoring case.
Only sessions started in a range, written
filter[started_at][gte]=2026-10-01. Takes gt, gte, lt and lte.Only sessions completed in a range, written
filter[completed_at][gte]=2026-10-01. Takes gt, gte, lt and lte.
Responses
{
"data": [
{
"id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"flow_id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"user_id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"status": "in_progress",
"flow_test": true,
"started_at": "2026-06-12T10:00:00+00:00",
"completed_at": "2026-06-12T10:00:00+00:00",
"verification": {
"verified_by_id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"note": "string",
"verified_at": "2026-06-12T10:00:00+00:00"
},
"flow": {
"id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"name": "string",
"status": "draft",
"expiry_type": "daily",
"mode_type": "continuous",
"user_types": [],
"routes": [],
"definition": {},
"form_count": 1,
"start_form_id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"created_at": "2026-06-12T10:00:00+00:00",
"updated_at": "2026-06-12T10:00:00+00:00"
},
"created_at": "2026-06-12T10:00:00+00:00",
"updated_at": "2026-06-12T10:00:00+00:00"
}
],
"meta": {
"limit": 1,
"next_cursor": "string",
"prev_cursor": "string"
}
}Authorization failed. error.code is one of org_disabled,
ip_blocked, missing_scope, scope_disabled, user_disabled.
The request can't be processed (HTTP 422): validation_failed with one ErrorDetail per
problem, or a code documented on the operation.
Examples
curl https://your-org-domain/kong/core/api/v2/onboarding-sessions\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"