/\ 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.

Traversers API

Submit work, filter and page through runs, inspect results and paths, cancel or restart a run.

Operations

OperationMethodPath
listTraversersGET/api/v2/traversers
submitTraverserPOST/api/v2/traversers
getTraverserGET/api/v2/traversers/{id}
cancelTraverserPOST/api/v2/traversers/{id}/cancel
getPathGET/api/v2/traversers/{id}/path
restartTraverserPOST/api/v2/traversers/{id}/restart

listTraversers

GET /api/v2/traversers

Requires: invoke role

Generated Python client internals: atfgraph._generated.api.traversers_api.TraversersApi.list_traversers()

Parameters

ParameterInRequiredType
cursorquerynostring
id_prefixquerynostring
limitquerynointeger
principalquerynostring
root_idquerynostring
roots_onlyquerynoboolean
session_idquerynostring
sincequerynointeger
statusquerynostring
untilquerynointeger

Responses

StatusBodyMeaning
200TraverserListSuccessful 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

{
  "items": [
    {
      "attempt": 0,
      "attempts": [
        {
          "attempt": 0,
          "error": {},
          "finished_at": 0,
          "lease_expires_at": 0,
          "started_at": 0,
          "status": "string",
          "worker_id": "string"
        }
      ],
      "cancel_requested": false,
      "capability": "string",
      "created_at": 0,
      "deadline_at": 0,
      "error": {},
      "finished_at": 0,
      "id": "string",
      "idempotency_key": "string",
      "input": {},
      "input_bytes": 0,
      "input_truncated": false,
      "kind": "string",
      "label": "string",
      "max_attempts": 0,
      "operation_key": "string",
      "output": {},
      "output_bytes": 0,
      "parent_id": "string",
      "parent_step_id": "string",
      "principal": "string",
      "replay": {
        "reuse": "string",
        "reused_output": false,
        "source_id": "string"
      },
      "root_id": "string",
      "seq": 0,
      "session_id": "string",
      "started_at": 0,
      "status": "queued",
      "step_id": "string",
      "submitted_by": "string",
      "target": "string",
      "timeout_seconds": 0,
      "updated_at": 0,
      "version": "string"
    }
  ],
  "next_cursor": "string"
}

submitTraverser

POST /api/v2/traversers

Requires: invoke role

Admit durable execution, pinned to the requested or resolved immutable version. Repeating an idempotency_key with identical payload returns the existing admission; different payload conflicts. Nested submissions require the active parent lease and inherit session and root. Session root turns serialize; children may execute concurrently. A realtime capability is a session entrypoint, not a traverser: submitting to it is refused with 400 realtime_entrypoint.

Generated Python client internals: atfgraph._generated.api.traversers_api.TraversersApi.submit_traverser()

Request body

SubmitTraverser (required)

{
  "input": {},
  "target": "string"
}

Responses

StatusBodyMeaning
202AdmissionSuccessful operation
400ErrorResponseStructured API error
401ErrorResponseMissing or invalid credentials
403ErrorResponseRole or ownership denied
404ErrorResponseResource unavailable to this identity
409ErrorResponseRevision, idempotency, immutable version or lease conflict
410ErrorResponseSession was deleted (session_deleted)
413ErrorResponseStructured API error
422ErrorResponseCapability input/output schema violation
429ErrorResponseCapacity exceeded
500ErrorResponseStructured API error
503ErrorResponseStructured API error

Example response 202

{
  "id": "string",
  "root_id": "string",
  "status": "queued",
  "step_id": "string"
}

getTraverser

GET /api/v2/traversers/{id}

Requires: invoke role

Generated Python client internals: atfgraph._generated.api.traversers_api.TraversersApi.get_traverser()

Parameters

ParameterInRequiredType
idpathyesstring
lease_tokenquerynostring
step_idquerynostring
task_idquerynostring

Responses

StatusBodyMeaning
200TraverserSuccessful 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

{
  "attempt": 0,
  "attempts": [
    {
      "attempt": 0,
      "error": {},
      "finished_at": 0,
      "lease_expires_at": 0,
      "started_at": 0,
      "status": "string",
      "worker_id": "string"
    }
  ],
  "cancel_requested": false,
  "capability": "string",
  "created_at": 0,
  "deadline_at": 0,
  "error": {},
  "finished_at": 0,
  "id": "string",
  "idempotency_key": "string",
  "input": {},
  "input_bytes": 0,
  "input_truncated": false,
  "kind": "string",
  "label": "string",
  "max_attempts": 0,
  "operation_key": "string",
  "output": {},
  "output_bytes": 0,
  "parent_id": "string",
  "parent_step_id": "string",
  "principal": "string",
  "replay": {
    "reuse": "string",
    "reused_output": false,
    "source_id": "string"
  },
  "root_id": "string",
  "seq": 0,
  "session_id": "string",
  "started_at": 0,
  "status": "queued",
  "step_id": "string",
  "submitted_by": "string",
  "target": "string",
  "timeout_seconds": 0,
  "updated_at": 0,
  "version": "string"
}

cancelTraverser

POST /api/v2/traversers/{id}/cancel

Requires: invoke role

Durably cancel the invocation and its unfinished descendants; later stale completion is rejected.

Generated Python client internals: atfgraph._generated.api.traversers_api.TraversersApi.cancel_traverser()

Parameters

ParameterInRequiredType
idpathyesstring

Responses

StatusBodyMeaning
200TraverserSuccessful 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

{
  "attempt": 0,
  "attempts": [
    {
      "attempt": 0,
      "error": {},
      "finished_at": 0,
      "lease_expires_at": 0,
      "started_at": 0,
      "status": "string",
      "worker_id": "string"
    }
  ],
  "cancel_requested": false,
  "capability": "string",
  "created_at": 0,
  "deadline_at": 0,
  "error": {},
  "finished_at": 0,
  "id": "string",
  "idempotency_key": "string",
  "input": {},
  "input_bytes": 0,
  "input_truncated": false,
  "kind": "string",
  "label": "string",
  "max_attempts": 0,
  "operation_key": "string",
  "output": {},
  "output_bytes": 0,
  "parent_id": "string",
  "parent_step_id": "string",
  "principal": "string",
  "replay": {
    "reuse": "string",
    "reused_output": false,
    "source_id": "string"
  },
  "root_id": "string",
  "seq": 0,
  "session_id": "string",
  "started_at": 0,
  "status": "queued",
  "step_id": "string",
  "submitted_by": "string",
  "target": "string",
  "timeout_seconds": 0,
  "updated_at": 0,
  "version": "string"
}

getPath

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

Requires: invoke role

Generated Python client internals: atfgraph._generated.api.traversers_api.TraversersApi.get_path()

Parameters

ParameterInRequiredType
idpathyesstring
lease_tokenquerynostring
limitquerynointeger
step_idquerynostring
task_idquerynostring

Responses

StatusBodyMeaning
200ExecutionPathSuccessful 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": [
    {
      "attempt": 0,
      "attempts": [
        {
          "attempt": 0,
          "error": {},
          "finished_at": 0,
          "lease_expires_at": 0,
          "started_at": 0,
          "status": "string",
          "worker_id": "string"
        }
      ],
      "cancel_requested": false,
      "capability": "string",
      "created_at": 0,
      "deadline_at": 0,
      "error": {},
      "finished_at": 0,
      "id": "string",
      "idempotency_key": "string",
      "input": {},
      "input_bytes": 0,
      "input_truncated": false,
      "kind": "string",
      "label": "string",
      "max_attempts": 0,
      "operation_key": "string",
      "output": {},
      "output_bytes": 0,
      "parent_id": "string",
      "parent_step_id": "string",
      "principal": "string",
      "replay": {
        "reuse": "string",
        "reused_output": false,
        "source_id": "string"
      },
      "root_id": "string",
      "seq": 0,
      "session_id": "string",
      "started_at": 0,
      "status": "queued",
      "step_id": "string",
      "submitted_by": "string",
      "target": "string",
      "timeout_seconds": 0,
      "updated_at": 0,
      "version": "string"
    }
  ],
  "root_id": "string",
  "steps_returned": 0,
  "steps_total": 0,
  "truncated": false
}

restartTraverser

POST /api/v2/traversers/{id}/restart

Requires: invoke role

Generated Python client internals: atfgraph._generated.api.traversers_api.TraversersApi.restart_traverser()

Parameters

ParameterInRequiredType
idpathyesstring

Request body

RestartTraverser (required)

{
  "fork": false,
  "idempotency_key": "string",
  "input": {},
  "reason": "string",
  "reuse": "string",
  "scope": "string",
  "session_id": "string"
}

Responses

StatusBodyMeaning
202AdmissionSuccessful 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 202

{
  "id": "string",
  "root_id": "string",
  "status": "queued",
  "step_id": "string"
}
ATFGraph documentationHosted workflow · Framework reference