레퍼런스HTTP APISessions

List the owner's sessions, newest first

GET
/v1/sessions

Lists the sessions of the credential's owner that the caller can read, newest created_at first, closed ones included, limit per page (default 50, at most 100). Pass next_cursor back as cursor for the next page; it is null on the last one. status keeps only sessions reporting that status, needs_input included; relation keeps the ones the caller started, was shared or administers the agent of; q searches titles and id prefixes; agent_id keeps the sessions of one agent, any of its releases. Every filter only narrows what the caller can read. It changes nothing.

Scope: sessions:read (API key or cookie session).

Authorization

headerAuthorizationBearer <token>

For servers and scripts: an API key sent as an HTTP bearer token, Bearer <key>. It holds exactly the scopes it was issued with; a key issued before scopes existed holds none. It never needs the CSRF header, and it cannot manage agents, members, teams or API keys. Issue one in the web console under Settings → API keys; each operation names the scope it needs.

Scope: sessions:read

Query Parameters

cursor?string

The next_cursor of the page before; omit it for the first page.

Length1 <= length
limit?integer

How many items a page holds at most.

Range1 <= value <= 100
Default50
status?string

Filters on the status each item reports, needs_input included as derived when read.

Value in"queued""running""needs_input""idle""failed""stopped"
agent_id?string

Keeps the sessions created for this agent, whichever of its releases they are pinned to. An agent with no session the caller can read, or no such agent, gives an empty page.

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid
relation?string

Narrows the sessions the caller can read, never widens them; omitted, all. started: the caller started it (for an API key, the key or the person who created it). shared: someone else's session shared with the caller by name or through a team the caller is a member of; sessions every workspace member sees appear only under all. administered: a session of an agent the caller administers, directly or through a team.

Value in"all""started""shared""administered"
q?string

Matches a session whose title contains it, ignoring case, or whose id starts with it.

Length1 <= length <= 200

Response Body

One page of session summaries.

application/json
  1. response
items*array<>
next_cursor*|null
Example Request
curl -X GET 'https://example.com/v1/sessions'
Example Response
{  "items": [    {      "id": "0f8b6a52-3d1e-4c7a-9b2f-5e6d7c8a9b01",      "title": "Fix the flaky checkout test",      "agent": {        "id": "8f6c1d2e-4b3a-4c5d-9e8f-7a6b5c4d3e2f",        "name": "Checkout fixer",        "release_version_no": 3,        "release_label": "2026-10-11_17:00:00",        "release_is_active": true      },      "agent_hidden": false,      "created_by": {        "user_id": "1b2c3d4e-5f60-4718-8a9b-0c1d2e3f4a5b",        "display_name": "Mina Park"      },      "channel": "web",      "slack_permalink": null,      "revision": 7,      "admission_state": "active",      "status": "running",      "runtime": {        "kind": "claude_agent_sdk",        "version": "0.2.1",        "profile_id": "claude-coding-real",        "model": "claude-sonnet-5",        "permission_mode": "default"      },      "model": "claude-sonnet-5",      "repository_id": "sample-app",      "repository": {        "id": "sample-app",        "full_name": "acme/sample-app",        "branch": "main"      },      "current_turn_id": "3",      "queued_turn_count": 1,      "last_event_at": "2026-10-11T08:15:42Z",      "created_at": "2026-10-11T08:00:00Z",      "updated_at": "2026-10-11T08:15:40Z"    }  ],  "next_cursor": null}