Skip to main content
POST
/
runs
Start Run
curl --request POST \
  --url https://api.example.com/runs \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "dot_source": "digraph { start [shape=Mdiamond]; exit [shape=Msquare]; start -> exit }"
}
'
{
  "id": "01JNQVR7M0EJ5GKAT2SC4ERS1Z",
  "status": "queued",
  "created_at": "2026-03-06T14:30:00Z",
  "error": {
    "message": "Stage 'apply-changes' exceeded maximum retries."
  },
  "queue_position": 3
}

Authorizations

Authorization
string
header
required

JWT bearer token issued by fabro-web. See the Authentication guide for details.

Body

application/json

Request body for starting a new run from a DOT graph source.

dot_source
string
required

DOT language source defining the workflow graph.

Example:

"digraph { start [shape=Mdiamond]; exit [shape=Msquare]; start -> exit }"

Response

Run created

Current status of a run with optional error and queue position.

id
string
required

Unique run identifier (ULID).

Example:

"01JNQVR7M0EJ5GKAT2SC4ERS1Z"

status
enum<string>
required

Lifecycle status of a run.

Available options:
queued,
starting,
running,
completed,
failed,
cancelled,
paused
created_at
string<date-time>
required

Timestamp when the run was created.

Example:

"2026-03-06T14:30:00Z"

error
object

Error information for a failed run.

queue_position
integer

Position in the queue (1-based). Only present when status is queued.

Example:

3