/\ ATFGraph /docs
README Downloads
HTTP API & schemas / ATFGraph
Framework reference

This article is retained from the existing framework docs. Self-hosting commands and server-admin access differ from the managed CLI workflow. Start with Get started for the installed product.

Events API

Read stored traversal events or follow progress through an event stream.

Operations

OperationMethodPath
streamNodeLogsGET/api/v2/logs/events
getEventLogGET/api/v2/traversers/{id}/event-log
streamExecutionEventsGET/api/v2/traversers/{id}/events

streamNodeLogs

GET /api/v2/logs/events

Requires: invoke role, worker role

Live node-log SSE for one root (root_id) or one step (traverser_id). id is the log sequence cursor; send Last-Event-ID to resume after the last consumed line. Each log event carries one LogRecord; levels, stream, contains, since and until filter exactly as GET /api/v2/logs. Comments are keep-alives. The stream ends with an end event once the subject is terminal and no further lines arrived during a short grace window; an error event reports a refused query. Requires node log ingestion to be enabled for the namespace, otherwise the log table is simply empty.

Generated Python client internals: atfgraph._generated.api.events_api.EventsApi.stream_node_logs()

Parameters

ParameterInRequiredType
containsquerynostring
levelsquerynostring
root_idquerynostring
sincequerynointeger
streamquerynostring
traverser_idquerynostring
untilquerynointeger
Last-Event-IDheadernostring

Responses

StatusBodyMeaning
200stringNode log lines; each data field is a LogRecord JSON object
401ErrorResponseAuthentication failed

getEventLog

GET /api/v2/traversers/{id}/event-log

Requires: invoke role

Generated Python client internals: atfgraph._generated.api.events_api.EventsApi.get_event_log()

Parameters

ParameterInRequiredType
idpathyesstring
afterquerynointeger
containsquerynostring
lease_tokenquerynostring
limitquerynointeger
step_idquerynostring
task_idquerynostring
typequerynostring

Responses

StatusBodyMeaning
200EventLogSuccessful operation
400ErrorResponseStructured API error
401ErrorResponseMissing or invalid credentials
403ErrorResponseRole or ownership denied
404ErrorResponseResource unavailable to this identity
409ErrorResponseRevision, idempotency, immutable version or lease conflict
413ErrorResponseStructured API error
422ErrorResponseCapability input/output schema violation
429ErrorResponseCapacity exceeded
500ErrorResponseStructured API error
503ErrorResponseStructured API error

Example response 200

{
  "id": "string",
  "items": [
    {
      "created_at": 0,
      "data": {},
      "root_id": "string",
      "sequence": 0,
      "traverser_id": "string",
      "type": "string"
    }
  ],
  "root_id": "string"
}

streamExecutionEvents

GET /api/v2/traversers/{id}/events

Requires: not declared in the contract

Durable ordered execution SSE. id is a monotonically increasing sequence cursor. Send Last-Event-ID to resume after the last consumed event. Comments are keep-alives. Clients must deduplicate on reconnect and stop after the subject's terminal event; child terminal events do not terminate the root stream. Buffers must be bounded. This is not an LLM token stream.

Python SDK: Client.events(traverser_id) is the maintained async SSE iterator with cursor reconnection, separate from generated JSON request/response routes.

Parameters

ParameterInRequiredType
idpathyesstring
Last-Event-IDheadernostring

Responses

StatusBodyMeaning
200stringExecution events; each data field is an ExecutionEvent JSON object
401ErrorResponseAuthentication failed
ATFGraph documentationHosted workflow · Framework reference