Workspace-scoped live activity stream (SSE)
const url = 'https://your-org.evershell.ai/v1/workspaces/example/activity/stream';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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).
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Query Parameters
Section titled “Query Parameters ”Filter to a single event type.
Filter to events for one task.
PromQL-style matchers, same syntax as GET /v1/workspaces/{id}/activity.
Responses
Section titled “ Responses ”Event stream
Each event has shape event: activity\nid: <event id>\ndata: <JSON AuditEvent>\n\n.
Resource not found in the caller’s org
object
object
Closed-enum slug (e.g. permission_denied, validation_error, workspace_not_found)
Human-readable summary
Server-generated request id for correlating logs
Optional structured context. Validation errors land at
details.fields as a per-field map.
object
Example
{ "error": { "code": "permission_denied", "message": "caller lacks required scope", "request_id": "7f3a9c2e" }}