Skip to main content
GET
/
api
/
v1
/
logs
curl -N -H "Authorization: Bearer alf_your_key_here" \
  /api/v1/logs
data: {"line":"2026-02-26T10:15:20Z [alfred] INFO - Curator watching inbox/"}

data: {"line":"2026-02-26T10:15:21Z [alfred] INFO - Janitor scan complete: 0 issues"}

data: {"line":"2026-02-26T10:15:22Z [openclaw] Gateway listening on 0.0.0.0:8989"}

data: {"line":"2026-02-26T10:15:23Z [temporal] Started WorkflowTaskPoller"}

event: close
data: {}
Stream logs from one or more services in real-time using Server-Sent Events (SSE). This is a long-lived connection that delivers log lines as they are produced.

Query Parameters

service
string
Filter logs to a specific service (e.g., alfred, openclaw, temporal). Must be alphanumeric (letters, numbers, hyphens, and underscores only). If omitted, logs from all services are streamed.
tail
string
default:"100"
Number of initial log lines to send before streaming new logs. Must be a numeric string. Defaults to "100".

Response

The response uses Content-Type: text/event-stream and follows the Server-Sent Events protocol. Each log line is sent as a separate SSE data event:
data: {"line":"2026-02-26T10:15:23Z [alfred] Starting curator daemon"}

When the stream ends normally, a close event is sent:
event: close
data: {}

On error, an error data event is sent:
data: {"error":"Stream terminated unexpectedly"}

curl -N -H "Authorization: Bearer alf_your_key_here" \
  /api/v1/logs
data: {"line":"2026-02-26T10:15:20Z [alfred] INFO - Curator watching inbox/"}

data: {"line":"2026-02-26T10:15:21Z [alfred] INFO - Janitor scan complete: 0 issues"}

data: {"line":"2026-02-26T10:15:22Z [openclaw] Gateway listening on 0.0.0.0:8989"}

data: {"line":"2026-02-26T10:15:23Z [temporal] Started WorkflowTaskPoller"}

event: close
data: {}
Use the -N flag with curl to disable buffering for streaming responses. The standard browser EventSource API does not support custom Authorization headers — use a polyfill library or alternative approach for browser-based clients.