Activity
Endpoints for reading the squad audit trail, an issue's activity history, and the issues touched by a Heartbeat run.
- API key:
Authorization: Bearer <token> - Squad-scoped access for read endpoints; an Operator key is required to write activity events
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /api/squads/{squadId}/activity | List the squad activity log (most recent first) |
POST | /api/squads/{squadId}/activity | Record an activity event (Operator only) |
GET | /api/issues/{id}/activity | Activity entries for a single issue |
GET | /api/issues/{id}/runs | Heartbeat runs that touched an issue |
GET | /api/heartbeat-runs/{runId}/issues | Issues touched during a Heartbeat run |
List squad activity
GET /api/squads/{squadId}/activity
Returns activity-log entries for the squad, newest first.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId | UUID | no | Filter to a single agent |
entityType | string | no | Filter by entity type (e.g. issue, secret, agent) |
entityId | string | no | Filter by a specific entity ID |
limit | integer | no | Page size; clamped to a server maximum |
Response
Returns an array of activity entries:
| Field | Type | Description |
|---|---|---|
id | UUID | Activity entry ID |
squadId | UUID | Owning squad |
actorType | string | agent, user, system, or plugin |
actorId | string | Identifier of the actor |
action | string | Action name (e.g. secret.created) |
entityType | string | Type of the affected entity |
entityId | string | ID of the affected entity |
agentId | UUID | null | Acting agent, when applicable |
runId | UUID | null | Heartbeat run that produced the entry |
details | object | null | Action-specific metadata (redacted) |
createdAt | timestamp | When 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
| Field | Type | Required | Description |
|---|---|---|---|
actorType | string | no | One of agent, user, system, plugin (default system) |
actorId | string | yes | Identifier of the actor |
action | string | yes | Action name |
entityType | string | yes | Type of the affected entity |
entityId | string | yes | ID of the affected entity |
agentId | UUID | no | Acting agent |
details | object | no | Arbitrary 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.