The API is the console. Anything you can approve, cap or audit in the interface is available over HTTP with the same rules applied.
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.
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.
{
"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"
}
}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.
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.
| Method | Path | Does |
|---|---|---|
| GET | /v1/workflows | List workflows with status, owner and failure rate |
| POST | /v1/workflows/:id/runs | Start a run, optionally with a budget and approval rule |
| GET | /v1/runs/:id | Full step trace, cost, retries and outputs |
| POST | /v1/runs/:id/cancel | Stop a run and roll back staged writes |
| GET | /v1/approvals | Everything waiting on a human, oldest first |
| POST | /v1/approvals/:id | Approve or reject, with an actor and a note |
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.
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
}An approval records who decided, when, and on what evidence. Rejecting rolls back staged writes for the steps that produced them.
| Plan | API | Runs |
|---|---|---|
| Team | 60 requests / min | 2,000 runs / month |
| Scale | 600 requests / min | 20,000 runs / month |
| Enterprise | Negotiated | Volume pricing |
Exceeding the API limit returns 429 with a retry-after header. Exceeding the run allowance queues rather than drops.