---
# @generated by sylphx-gen 0.1.0 from contracts@3118f36f16f799965338811e17ed3a9f565a9f136b14c95e9c94a1e21d42ea3e. Do not edit.
title: "List session events"
description: "`agents.session_events.list` (GET /v1/{parent}/session_events): Lists a session's events in sequence order."
type: reference
product: agents
summary: "Lists a session's events in sequence order."
updated: 2026-09-28
nav: false
---

Lists a session's events in sequence order. To follow a session, call again with the filter `sequence > N`, N the last sequence read; `wait` holds the call open until a newer event is appended or the wait ends.

**Not available yet.** Sylphx Agents is declared in the registry but no backend serves it: every call answers `501` with the problem code `UNIMPLEMENTED`.

- **Path** `GET https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/agent_sessions/agent-session/session_events`
- **Scope** `agents:sessions`
- **Effect** `read` — nothing is written.
- **Collection** [session_events](/docs/api/session_events)
- **Query** `page_size`, `page_token`, `filter`, `wait`
- **Pagination** the answer carries `session_events` and, when there is more, `next_page_token`

## Request

| Field | Type | What it is |
| --- | --- | --- |
| `parent` | `string` | The session to list in. Required. |
| `page_size` | `int32` | At most this many; default 50, clamped to 1000. |
| `page_token` | `string` | `next_page_token` of the previous page. |
| `filter` | `string` | AIP-160 filter, limited to `type` and `sequence`; for example `sequence > 42`. |
| `wait` | `duration` | When no event matches the filter, wait up to this long for one, at most 60s; unset answers at once. |

## Response

| Field | Type | What it is |
| --- | --- | --- |
| `session_events` | `SessionEvent[]` | The page. |
| `next_page_token` | `string` | The token of the next page; empty on the last page. |

### SessionEvent

| Field | Type | What it is |
| --- | --- | --- |
| `name` | `string` | `orgs/{org}/projects/{project}/envs/{env}/agent_sessions/{agent_session}/session_events/{session_event}`. |
| `uid` | `string` | `sevt_<cell><ulid>`; never reused. Output only. |
| `meta` | `ResourceMeta` | Resource metadata. |
| `sequence` | `int64` | The position in the session's log, from 1, with no gaps. Output only. |
| `type` | `SessionEventType` | What the event is. Output only. One of `user_message`, `steer`, `agent_message`, `tool_call`, `tool_result`, `approval_requested`, `approval_decided`, `status`, `compaction`, `thought`, `file_change`, `response`, `error`. |
| `turn` | `int64` | The turn it belongs to, from 1; 0 for an event outside a turn. Output only. |
| `step` | `int64` | The step within the turn, from 1, assigned by the runtime; 0 for an event that is not a step. Output only. |
| `create_time` | `timestamp` | When it was appended. Output only. |
| `message` | `Message` | For USER_MESSAGE, STEER and AGENT_MESSAGE. One of the `payload` group. |
| `tool_call` | `ToolCall` | For TOOL_CALL. One of the `payload` group. |
| `tool_result` | `ToolResult` | For TOOL_RESULT. One of the `payload` group. |
| `approval` | `Approval` | For APPROVAL_REQUESTED and APPROVAL_DECIDED. One of the `payload` group. |
| `status_change` | `StatusChange` | For STATUS. One of the `payload` group. |
| `thought` | `Message` | For THOUGHT: a reasoning summary, never private model reasoning. One of the `payload` group. |
| `file_change` | `FileChange` | For FILE_CHANGE. One of the `payload` group. |
| `response` | `TurnResult` | For RESPONSE: the completed turn's answer and usage. One of the `payload` group. |
| `error` | `ErrorEvent` | For ERROR. One of the `payload` group. |

### ResourceMeta

| Field | Type | What it is |
| --- | --- | --- |
| `generation` | `int64` | Increases by one on every change to `spec`. Output only. |
| `etag` | `string` | Strong ETag (AIP-154): changes on any change to spec, status, or metadata. Send it back as `If-Match` or `etag` to make Update and Delete conditional; a mismatch fails with ABORTED / 409 `ETAG_MISMATCH`. Output only. |
| `create_time` | `timestamp` | When the Resource was created. Output only. |
| `update_time` | `timestamp` | When the Resource last changed. Output only. |
| `delete_time` | `timestamp` | Set while the Resource is being deleted. Output only. |
| `labels` | `map<string, string>` | Caller-writable, indexed labels (AIP-122 label rules). |
| `annotations` | `map<string, string>` | Caller-writable, unindexed annotations. |
| `display_name` | `string` | Caller-writable human-readable name. |
| `creator` | `string` | The principal that created the Resource. Output only. |

### Message

| Field | Type | What it is |
| --- | --- | --- |
| `parts` | `ContentPart[]` | The content, in order; 1 to 64 parts. Required. |

### ToolCall

| Field | Type | What it is |
| --- | --- | --- |
| `id` | `string` | The call's id within the session, `(turn, step)` based. Output only. |
| `tool` | `string` | The tool name. Output only. |
| `input` | `struct` | The input, as the model sent it. Output only. |
| `model_call_id` | `string` | The model's own id for the call, as sent; never used as a key. Output only. |
| `client` | `bool` | Whether the client runs it (a ClientTool). Output only. |

### ToolResult

| Field | Type | What it is |
| --- | --- | --- |
| `call_id` | `string` | The ToolCall's `id`. Output only. |
| `output` | `value` | The output. Output only. |
| `error` | `bool` | Whether the call failed; `output` then holds the error. Output only. |
| `duration` | `duration` | How long the call took. Output only. |

### Approval

| Field | Type | What it is |
| --- | --- | --- |
| `call_id` | `string` | The ToolCall's `id`. Output only. |
| `decision` | `ApprovalDecision` | The answer, once given; unset while it waits. Output only. One of `approve`, `reject`. |
| `remember` | `bool` | Whether the answer covers later calls of the same tool in this session ("always allow"). Output only. |
| `principal` | `string` | Who answered. Output only. |
| `reason` | `string` | The reason given, if any. Output only. |

### StatusChange

| Field | Type | What it is |
| --- | --- | --- |
| `state` | `SessionState` | The state after the change. Output only. One of `idle`, `running`, `awaiting_approval`, `awaiting_client`, `failed`. |
| `reason` | `string` | Why, for FAILED and INTERRUPTED: a registry error code and message. Output only. |

### FileChange

| Field | Type | What it is |
| --- | --- | --- |
| `path` | `string` | The path relative to the session's repository root. Output only. |
| `change` | `string` | `added`, `modified`, `deleted`, `renamed` or `copied`. Output only. |
| `added` | `int64` | Lines added, when reported by the harness. Output only. |
| `removed` | `int64` | Lines removed, when reported by the harness. Output only. |
| `old_path` | `string` | The previous path, for a rename or copy. Output only. |
| `source` | `string` | `edit` for an incremental edit or `final` for the turn's final diff. Output only. |

### TurnResult

| Field | Type | What it is |
| --- | --- | --- |
| `text` | `string` | The final response's text. Output only. |
| `is_error` | `bool` | Whether the turn ended with an error. Output only. |
| `usage` | `TurnTokenUsage` | Model token usage reported by the harness. Output only. |
| `cost_micros` | `int64` | The reported cost, in micro-USD. Output only. |
| `duration` | `duration` | How long the turn ran. Output only. |

### ErrorEvent

| Field | Type | What it is |
| --- | --- | --- |
| `kind` | `string` | The registry error code or harness error kind. Output only. |
| `message` | `string` | A safe error description. Output only. |

### ContentPart

| Field | Type | What it is |
| --- | --- | --- |
| `text` | `string` | Text. One of the `part` group. |
| `file` | `FileRef` | A file, by Sylphx Data object URL or an https URL. One of the `part` group. |

### TurnTokenUsage

| Field | Type | What it is |
| --- | --- | --- |
| `input_tokens` | `int64` | Input tokens. Output only. |
| `output_tokens` | `int64` | Output tokens. Output only. |
| `cache_read_tokens` | `int64` | Input tokens read from the model's cache. Output only. |
| `cache_write_tokens` | `int64` | Input tokens written to the model's cache. Output only. |

## Errors

- [`RESOURCE_NOT_FOUND`](/docs/api/errors/RESOURCE_NOT_FOUND) — The named Resource does not exist or is not visible.
- [`UNAUTHENTICATED`](/docs/api/errors/UNAUTHENTICATED) — No valid key or token was presented.
- [`PERMISSION_DENIED`](/docs/api/errors/PERMISSION_DENIED) — The key lacks the method's permission.
- [`INVALID_FIELD`](/docs/api/errors/INVALID_FIELD) — A field failed validation.
- [`PAGE_TOKEN_MISMATCH`](/docs/api/errors/PAGE_TOKEN_MISMATCH) — A page token was reused with different parameters.

Every error arrives in the body [Errors](/docs/platform/errors) describes.

## Examples

**cURL**

```curl
curl "https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/agent_sessions/agent-session/session_events" \
  -H "Authorization: Bearer $SYLPHX_API_KEY"
```

**TypeScript**

```ts
const response = await sylphx.agents.sessionEvents.list({ parent: 'orgs/acme/projects/shop/envs/production/agent_sessions/agent-session' })
```

**Rust**

```rust
let mut req = sylphx::agents::ListSessionEventsRequest::default();
req.parent = "orgs/acme/projects/shop/envs/production/agent_sessions/agent-session".to_string();
let response = sx.agents().session_events().list(req).await?;
```

**CLI**

```bash
sylphx agents session-events list orgs/acme/projects/shop/envs/production/agent_sessions/agent-session
```

**MCP**

```json
{ "method_id": "agents.session_events.list", "args": {"parent":"orgs/acme/projects/shop/envs/production/agent_sessions/agent-session"} }
```
