Sessions

Sessions represent conversations between the user and the agent. Each session tracks its messages, model, and status.

GET/sessionAuthenticated

List all sessions with pagination.

ParameterTypeRequiredDescription
archivedbooleanNoInclude archived sessions (query param)
limitnumberNoResults per page (default 50, max 200)
offsetnumberNoPagination offset (default 0)
curl "http://127.0.0.1:7741/session?limit=10&offset=0" \
  -H "Authorization: Bearer $TOKEN"
200Response
{
  "ok": true,
  "data": [
    {
      "id": "a1b2c3d4",
      "title": "GitHub issue summary",
      "model": "claude-sonnet-4-20250514",
      "created_at": 1709467200000,
      "updated_at": 1709470800000,
      "archived_at": null,
      "parent_session_id": null,
      "agent_type": "main"
    }
  ]
}
GET/session/:idAuthenticated

Get a single session with all its messages.

200Response
{
  "ok": true,
  "data": {
    "session": {
      "id": "a1b2c3d4",
      "title": "GitHub issue summary",
      "model": "claude-sonnet-4-20250514",
      "created_at": 1709467200000,
      "updated_at": 1709470800000,
      "archived_at": null,
      "parent_session_id": null,
      "agent_type": "main"
    },
    "messages": [
      {
        "id": "m1",
        "session_id": "a1b2c3d4",
        "role": "user",
        "content": "Summarize my issues",
        "created_at": 1709467200000
      },
      {
        "id": "m2",
        "session_id": "a1b2c3d4",
        "role": "assistant",
        "content": "You have 3 open issues...",
        "created_at": 1709467205000
      }
    ]
  }
}
POST/session/:id/resumeAuthenticated

Resume an archived session (unarchive and mark active).

200Response
{
  "ok": true,
  "data": {
    "session_id": "a1b2c3d4",
    "status": "resumed"
  }
}
DELETE/session/:idAuthenticated

Archive a session (soft delete).

200Response
{
  "ok": true,
  "data": {
    "session_id": "a1b2c3d4",
    "status": "archived"
  }
}