---
title: "List Workspace Events"
method: GET
path: "/v1/workspaces/{workspace}/streams/events"
tags: ["v1", "protected", "streams"]
---

# List Workspace Events

`GET /v1/workspaces/{workspace}/streams/events`

## Request

- The document declares no server URL.
- Auth: HTTP bearer

Every event of the workspace's streams the caller may read, newest first.

Each carries what the platform did with it (``processing``); bodies are
left out, the event's own endpoint has them.

## Path parameters

- `workspace` string, required: Slug of the workspace the request acts in

## Query parameters

- `before` integer, nullable: Newest first, before this sequence.
- `limit` integer
- `stream_id` string, uuid, nullable
- `source_type` string, nullable
- `kind` string, nullable: An event kind, or a prefix ending in .* (order.*).
- `sender` string, nullable
- `session_key` string, nullable
- `result` 'queued' | 'processing' | 'handled' | 'error' | 'no_handlers' | 'skipped'
- `since` string, date-time, nullable: Received at or after.
- `until` string, date-time, nullable: Received before.
- `platform` boolean: False leaves out the platform's own events (source type platform); the first page's counts still include them.

## Response `200`

Successful Response

- WorkspaceEventPage
  - `events` FeedEventResponse[], required
    - `attachments` integer, required: How many files the event carries.
    - `causation_id` string, nullable, required
    - `correlation_id` string, nullable, required
    - `depth` integer, required
    - `event_id` string, uuid, required
    - `key` string, required
    - `kind` string, required
    - `occurred_at` string, date-time, required
    - `processing` Processing, required
      - `errors` integer, required
      - `reacted` integer, required: Subscriptions whose reaction is recorded.
      - `skipped` integer, required
      - `status` 'queued' | 'processing' | 'handled' | 'error' | 'no_handlers' | 'skipped', required
      - `subscribers` integer, nullable, required: Subscriptions the router matched; null until it routed the event.
      - `tasks` ProcessingTask[]
        - `id` string, uuid, required
        - `status` string, required
    - `received_at` string, date-time, required
    - `sender` string, nullable, required
    - `sequence` integer, required
    - `session_key` string, nullable, required
    - `source_id` string, uuid, nullable, required
    - `source_type` string, nullable, required
    - `stream_id` string, uuid, required
    - `v` integer
  - `facets` FeedFacetsResponse
    - `capped` boolean: Under a filter other than stream and source type the counts stop after the first 1000 matching events; true when more match, so each count is a lower bound.
    - `source_types` object, required: Events per source type under the other filters.
    - `streams` object, required: Events per stream under the other filters.
  - `next_before` integer, nullable: Pass as ?before= for older events; null at the start.

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-19** `1d8a3995ec6c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/agentarea/apis/agentarea-api/changes/v1/workspaces/:workspace/streams/events/get.md)

---

[API](https://skmtc.dev/agentarea/apis/agentarea-api.md) - [All operations](https://skmtc.dev/agentarea/apis/agentarea-api/llms.txt) - [OpenAPI document](https://skmtc.dev/agentarea/apis/agentarea-api/revisions/5b651833a114?raw)
