Role State Manager
API Contract
REST
/api/v1/role-sessions
5 endpoints
GET
/api/v1/role-sessions/api/v1/role-sessions
List active role sessions
Public
Response Example
{
"data": [
{
"session_id": "sess_c1d2e3f4",
"user_id": "usr_8f3a1b2c",
"current_role": "coordinator",
"previous_role": "mentor",
"switched_at": "2026-03-26T08:30:00Z",
"is_active": true
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 12
}
}
GET
/api/v1/role-sessions/api/v1/role-sessions/:sessionId
Get current role state for a session
Public
Response Example
{
"session_id": "sess_c1d2e3f4",
"user_id": "usr_8f3a1b2c",
"current_role": "coordinator",
"previous_role": "mentor",
"switched_at": "2026-03-26T08:30:00Z",
"is_active": true
}
POST
/api/v1/role-sessions/api/v1/role-sessions
Initialize a role session for a user
Public
Request Example
{
"user_id": "usr_8f3a1b2c",
"initial_role": "mentor"
}
Response Example
{
"session_id": "sess_c1d2e3f4",
"user_id": "usr_8f3a1b2c",
"current_role": "mentor",
"previous_role": null,
"switched_at": "2026-03-26T10:20:00Z",
"is_active": true
}
PUT
/api/v1/role-sessions/api/v1/role-sessions/:sessionId
Switch active role within an existing session
Public
Request Example
{
"new_role": "coordinator",
"reset_state": false
}
Response Example
{
"session_id": "sess_c1d2e3f4",
"user_id": "usr_8f3a1b2c",
"current_role": "coordinator",
"previous_role": "mentor",
"switched_at": "2026-03-26T10:25:00Z",
"is_active": true
}
DELETE
/api/v1/role-sessions/api/v1/role-sessions/:sessionId
Reset and terminate a role session
Public
Response Example
{
"deleted": true,
"session_id": "sess_c1d2e3f4"
}