Skip to main content

Activity

Endpoints for reading the squad audit trail, an issue's activity history, and the issues touched by a Heartbeat run.

Prerequisites
  • API key: Authorization: Bearer <token>
  • Squad-scoped access for read endpoints; an Operator key is required to write activity events

Endpoints

MethodPathDescription
GET/api/squads/{squadId}/activityList the squad activity log (most recent first)
POST/api/squads/{squadId}/activityRecord an activity event (Operator only)
GET/api/issues/{id}/activityActivity entries for a single issue
GET/api/issues/{id}/runsHeartbeat runs that touched an issue
GET/api/heartbeat-runs/{runId}/issuesIssues touched during a Heartbeat run

List squad activity

GET /api/squads/{squadId}/activity

Returns activity-log entries for the squad, newest first.

Query parameters

ParameterTypeRequiredDescription
agentIdUUIDnoFilter to a single agent
entityTypestringnoFilter by entity type (e.g. issue, secret, agent)
entityIdstringnoFilter by a specific entity ID
limitintegernoPage size; clamped to a server maximum

Response

Returns an array of activity entries:

FieldTypeDescription
idUUIDActivity entry ID
squadIdUUIDOwning squad
actorTypestringagent, user, system, or plugin
actorIdstringIdentifier of the actor
actionstringAction name (e.g. secret.created)
entityTypestringType of the affected entity
entityIdstringID of the affected entity
agentIdUUID | nullActing agent, when applicable
runIdUUID | nullHeartbeat run that produced the entry
detailsobject | nullAction-specific metadata (redacted)
createdAttimestampWhen the event was recorded

Record an activity event

POST /api/squads/{squadId}/activity

Records a custom activity entry. Requires an Operator key. Most entries are written automatically by SLAW; direct use is for custom integrations.

Request body

FieldTypeRequiredDescription
actorTypestringnoOne of agent, user, system, plugin (default system)
actorIdstringyesIdentifier of the actor
actionstringyesAction name
entityTypestringyesType of the affected entity
entityIdstringyesID of the affected entity
agentIdUUIDnoActing agent
detailsobjectnoArbitrary metadata; sensitive values are redacted on write

Returns 201 Created with the stored entry.


Issue activity

GET /api/issues/{id}/activity

Returns activity entries scoped to a single issue. {id} accepts either the issue UUID or its identifier (e.g. SLA-26). Returns 404 if the issue does not exist.


Issue runs

GET /api/issues/{id}/runs

Returns the Heartbeat runs that acted on the issue, for tracing which run produced which change.


Issues for a run

GET /api/heartbeat-runs/{runId}/issues

Returns the issues touched during a given Heartbeat run. Returns an empty array if the run is unknown.


Next steps

  • Issues — read and mutate the issues referenced here
  • Dashboard — aggregated run activity at a glance