Docs

Start a supervised run
in one request

The API is the console. Anything you can approve, cap or audit in the interface is available over HTTP with the same rules applied.

Quickstart

Three things are true of every run: it has a budget, it has an approval rule, and it produces a trace. Set the first two and the third comes free.

Start a run
curl -X POST https://api.autosolutions.io/v1/workflows/wf_1042/runs \
  -H "Authorization: Bearer $AS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": { "period": "2026-08" },
    "budget": { "max_cost_aud": 2.00 },
    "approval": "required_over_aud_5000"
  }'

A run that hits its approval rule stops and waits. It does not fail, and it does not proceed on a guess.

200 · awaiting_approval
{
  "id": "run_01J8ZC4K9P",
  "workflow": "wf_1042",
  "status": "awaiting_approval",
  "steps_completed": 3,
  "steps_total": 5,
  "items": 42,
  "cost_aud": 0.16,
  "retries": 1,
  "approval": {
    "reason": "amount_over_threshold",
    "amount_aud": 10674.94,
    "queued_at": "2026-08-20T04:12:08Z"
  }
}

Authentication

Bearer keys, scoped to one workspace and one region. Keys carry the permissions of the service account that owns them, so a key cannot approve what its owner cannot approve.

Connector credentials are never accepted over the API and never returned by it. They are held in the tenant region and referenced by name.

Workflows

A workflow is a versioned list of steps with a trigger. Editing one creates a version; runs keep a pointer to the version that produced them.

MethodPathDoes
GET/v1/workflowsList workflows with status, owner and failure rate
POST/v1/workflows/:id/runsStart a run, optionally with a budget and approval rule
GET/v1/runs/:idFull step trace, cost, retries and outputs
POST/v1/runs/:id/cancelStop a run and roll back staged writes
GET/v1/approvalsEverything waiting on a human, oldest first
POST/v1/approvals/:idApprove or reject, with an actor and a note

Runs

Every run returns a step trace with inputs, outputs, retries and per-step cost. Subscribe to the webhook rather than polling: a long run can sit in approval for hours.

Webhook · run.completed
POST /your-endpoint
x-as-signature: t=1755663128,v1=6f1a...

{
  "event": "run.completed",
  "run": "run_01J8ZC4K9P",
  "status": "passed",
  "cost_aud": 0.31,
  "duration_ms": 252410
}

Approvals

An approval records who decided, when, and on what evidence. Rejecting rolls back staged writes for the steps that produced them.

  • Route by amount, counterparty or model confidence
  • Approve from the console, the mobile app or the API
  • Rejections are a first-class outcome, not an error

Rate limits

PlanAPIRuns
Team60 requests / min2,000 runs / month
Scale600 requests / min20,000 runs / month
EnterpriseNegotiatedVolume pricing

Exceeding the API limit returns 429 with a retry-after header. Exceeding the run allowance queues rather than drops.