Skip to main content
POST
/
api
/
v1
/
automations
/
{id}
/
runs
Create automation run
curl --request POST \
  --url https://api.example.com/api/v1/automations/{id}/runs \
  --header 'Authorization: Bearer <token>'
{
  "id": "<string>",
  "children_count": 1,
  "title": "<string>",
  "goal": "<string>",
  "workflow": {
    "slug": "<string>",
    "name": "<string>",
    "graph_name": "<string>",
    "node_count": 123,
    "edge_count": 123
  },
  "automation": {
    "id": "<string>",
    "name": "<string>",
    "trigger_id": "<string>"
  },
  "repository": {
    "name": "fabro-sh/fabro",
    "origin_url": "https://github.com/fabro-sh/fabro.git"
  },
  "created_by": {
    "kind": "user",
    "identity": {
      "issuer": "<string>",
      "subject": "<string>"
    },
    "login": "<string>",
    "avatar_url": "<string>"
  },
  "origin": {
    "kind": "api"
  },
  "labels": {},
  "lifecycle": {
    "status": {
      "kind": "submitted"
    },
    "approval": {
      "requested_at": "2023-11-07T05:31:56Z",
      "decided_at": "2023-11-07T05:31:56Z",
      "denial_reason": "<string>"
    },
    "queue_position": 123,
    "error": {
      "message": "Stage 'apply-changes' exceeded maximum retries."
    },
    "archived": true,
    "archived_at": "2023-11-07T05:31:56Z"
  },
  "sandbox": {
    "plan": {
      "image": "<string>",
      "snapshot": "<string>"
    },
    "instance": {
      "runtime": {
        "id": "<string>",
        "working_directory": "<string>",
        "repo_cloned": true,
        "clone_origin_url": "<string>",
        "clone_branch": "<string>",
        "workspace_root": "<string>",
        "repos_root": "<string>",
        "primary_repo_path": "<string>",
        "primary_repo_link": "<string>"
      },
      "image": "<string>",
      "snapshot": "<string>"
    },
    "failure": {
      "provider": "<string>",
      "error": "<string>",
      "causes": [
        "<string>"
      ],
      "duration_ms": 1
    }
  },
  "models": [
    {
      "provider": "<string>",
      "name": "<string>"
    }
  ],
  "source_directory": "<string>",
  "timestamps": {
    "created_at": "2023-11-07T05:31:56Z",
    "started_at": "2023-11-07T05:31:56Z",
    "last_event_at": "2023-11-07T05:31:56Z",
    "completed_at": "2023-11-07T05:31:56Z"
  },
  "timing": {
    "wall_time_ms": 420000,
    "active_time_ms": 180000,
    "inference_time_ms": 120000,
    "tool_time_ms": 60000
  },
  "billing": {
    "total_usd_micros": 123
  },
  "ask_fabro": {
    "available": true,
    "default_model": "<string>"
  },
  "diff": {
    "files_changed": 42,
    "additions": 567,
    "deletions": 234
  },
  "pull_request": {
    "owner": "fabro-sh",
    "repo": "fabro",
    "number": 123,
    "html_url": "https://github.com/fabro-sh/fabro/pull/123"
  },
  "current_question": {
    "text": "Accept or push for another round?"
  },
  "superseded_by": "<string>",
  "retried_from": "<string>",
  "links": {
    "web": "<string>"
  },
  "parent_id": "<string>"
}

Authorizations

Authorization
string
header
required

Raw dev token passed as Authorization: Bearer fabro_dev_... when server.auth.methods includes dev-token.

Path Parameters

id
string
required

Unique automation identifier.

Pattern: ^[a-z0-9][a-z0-9-]{0,62}$

Response

Run created

Canonical public run shape.

id
string
required
children_count
integer<uint64>
required

Number of runs currently linked to this run as their orchestration parent.

Required range: x >= 0
title
string
required
goal
string
required
workflow
object
required
automation
object
required
repository
object
required

Durable repository metadata for a run.

created_by
object
required
origin
object
required
labels
object
required
lifecycle
object
required
sandbox
object
required

Sandbox lifecycle record for a run. A run can have a requested sandbox plan before it has an initialized sandbox instance.

models
object[]
required
source_directory
string | null
required
timestamps
object
required
timing
object
required

Run-level timing rollup. Wall time is the run's clock duration; active timing sums work across stage visits.

billing
object
required
size
enum<string>
required

Run size bucket derived from current best-effort billed usage.

Available options:
XS,
S,
M,
L,
XL
ask_fabro
object
required

Readiness and defaults for starting an Ask Fabro session on this run.

diff
object
required

Cheap aggregate file and line counts for a run diff.

pull_request
object
required

Minimal GitHub pull request link associated with a run.

current_question
object
required

A pending human-in-the-loop question summary.

superseded_by
string | null
required

Run ID that superseded this run via rewind, if any.

retried_from
string | null
required

Source run ID when this run was created by manual retry.

parent_id
string | null

Current orchestration parent run ID, if linked.