A session is a learner’s practice run against a published scenario. Learners normally start practice themselves; integrations can also start a session server-to-server and receive the credentials to connect.

Start a session

Activate a session for a learner against a published scenario slug:
The session is created in active state and the response carries the credentials to connect:
Errors: 404 for an unknown user, 400 for invalid filters or a deployment that does not allow the requested mode, and 409 when the learner’s earlier session for the same assignment can no longer be reactivated. Starting a new direct session abandons the learner’s other active sessions for the same scenario.

List sessions

Combine any of these filters:
Results are sorted by creation time, newest first. The response includes pagination metadata — page through by increasing offset until offset >= total:
The list response contains session metadata without transcript or evidence payloads. Fetch one session for the full result.

Get session results

The detail response includes:
  • Pinned persona, scenario, and domain versions.
  • Session status, delivery mode, and timestamps.
  • Transcript data when available.
  • Evidence data when available.
  • audioUrl — a presigned download URL for the recording, valid for one hour (null when no recording exists).

Delete a session

Deletion is a soft delete: the session is hidden from list and detail results, but the record (including transcript and audio) is retained for auditing.
A successful deletion returns 204 No Content. Deleted sessions no longer appear in list or detail responses and cannot be restored through the API.