Skip to content

Workspace-scoped live activity stream (SSE)

GET
/workspaces/{id}/activity/stream
curl --request GET \
--url https://your-org.evershell.ai/v1/workspaces/example/activity/stream \
--header 'Authorization: Bearer <token>'

The live counterpart of GET /v1/workspaces/{id}/activity: server-sent events for this workspace’s category=activity rows as they’re emitted, honoring the same filters. Same heartbeat + max-stream-duration semantics as the other SSE endpoints.

Permissions: workspace:read or workspace:read:own (creator-match on :own).

id
required
string
event_type
string

Filter to a single event type.

task_id
string

Filter to events for one task.

filter
Array<string>

PromQL-style matchers, same syntax as GET /v1/workspaces/{id}/activity.

api_key
string

Event stream

Media type text/event-stream

Each event has shape event: activity\nid: <event id>\ndata: <JSON AuditEvent>\n\n.

string

Resource not found in the caller’s org

Media type application/json
object
error
required
object
code
required

Closed-enum slug (e.g. permission_denied, validation_error, workspace_not_found)

string
message
required

Human-readable summary

string
request_id
required

Server-generated request id for correlating logs

string
details

Optional structured context. Validation errors land at details.fields as a per-field map.

object
key
additional properties
any
Example
{
"error": {
"code": "permission_denied",
"message": "caller lacks required scope",
"request_id": "7f3a9c2e"
}
}