API Reference

All dashboard API endpoints grouped by category with descriptions and key parameters.

All endpoints are served by the FastAPI application in api/. All controls endpoints emit operator.action.* audit events.

Status

MethodPathDescription
GET/healthCurrent SystemHealth record: status, uptime, version, next_expected_at
GET/stateSystem summary: autonomy level, task counts, schedule count, watcher status, alarm count

Query

MethodPathDescriptionKey parameters
GET/eventsList ingested MessageEventschannel, trace_id, since, until
GET/auditList AuditEventstrace_id, type, outcome, tool_name, since, until
GET/tasksList tasksstatus, trace_id, since
GET/tasks/{id}Single task with its steps
GET/schedulesList all schedulesenabled
GET/watchersList all watchers with WatcherState
GET/rulesList all rulesenabled
GET/integrationsList integrations with health
GET/approvalsList approvalsstatus
GET/alarmsList alarmsstatus, severity
GET/artifacts/{id}Retrieve a redacted audit payload

Controls

All controls emit operator.action.* audit events with actor = operator.

MethodPathDescription
POST/controls/pausePause all pipeline processing
POST/controls/resumeResume pipeline processing
POST/controls/autonomySet autonomy level; body: { "level": "A2" }
POST/tasks/{id}/cancelCancel a task; body: { "reason": "..." }
POST/tasks/{id}/pausePause a running task
POST/tasks/{id}/resumeResume a paused task
POST/tasks/{id}/retryRetry a failed task from its last checkpoint
PATCH/watchers/{id}Enable or disable; body: { "enabled": true }
PATCH/rules/{id}Enable or disable; body: { "enabled": true }
PATCH/integrations/{id}Enable or disable; body: { "enabled": true }
POST/approvals/{id}/approveApprove a pending gate
POST/approvals/{id}/denyDeny a pending gate; body: { "reason": "..." }
POST/alarms/{id}/ackAcknowledge an open alarm
POST/alarms/{id}/resolveResolve an alarm; body: { "note": "..." }

Debugging workflow

To reconstruct what SYRIS did for any event:

  1. Find the trace_id on the originating event (GET /events).
  2. Query GET /audit?trace_id={trace_id} — returns the full chain in timestamp order.
  3. Follow ref_task_id or ref_tool_call_id to the relevant entity if needed.
  4. Retrieve a specific payload with GET /artifacts/{payload_ref} if available.

No log file access required.