API
Workflows API & execution modes
A workflow connects agents so one step’s output becomes the next step’s input. That single rule explains every mode below.
Execution modes
sequential a chain — each step gets the previous step's output
parallel every step gets the SAME input, run concurrently
conditional branch on a field (equals, not_equals, greater_than,
less_than, contains, exists, not_exists)
fan_out run the SAME step once per item in a list, concurrently
loop feed a step's output back into itself until a limit/condition
mixed a dependency graph (DAG) via depends_onSequential workflows are available on the Free plan. Parallel, conditional, fan-out, loop and DAG require Pro — including for scheduled runs, which are skipped if the owner is not entitled.
Endpoints
POST /v1/workflows create
GET /v1/workflows list
GET /v1/workflows/{id} fetch one
PUT /v1/workflows/{id} update (new version)
DELETE /v1/workflows/{id} delete
POST /v1/workflows/{id}/activate status -> ACTIVE
POST /v1/workflows/{id}/pause pause
POST /v1/workflows/{id}/execute run it
POST /v1/workflows/{id}/validate validate the graph
GET /v1/workflows/{id}/executions run history
GET /v1/workflows/{id}/executions/{execId} one run (+ steps)
POST /v1/workflows/{id}/executions/{execId}/replay re-run with same input
POST /v1/workflows/{id}/executions/{execId}/cancel cancel
GET /v1/workflows/{id}/export export as JSON
POST /v1/workflows/import import
GET /v1/workflows/{id}/costs token + cost breakdownRunning a workflow
The body wraps your JSON in inputData. Whatever you pass becomes the workflow’s input, and flows into the first step.
curl -X POST https://app.agent-mesh.org/v1/workflows/$WORKFLOW_ID/execute \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"inputData": {"message": "The app crashed twice when exporting a report."}}'Fan-out expects a list. Give it an items array and the same step runs once per item, concurrently:
{"inputData": {"items": ["Love the new dashboard.", "Support was slow.", "Works as described."]}}Structured hand-off
Plain text output passes to the next step as message. If the upstream agent has Structured JSON output enabled, its fields become top-level input for the next step — which is what makes conditional branching reliable, because the branch reads a real field instead of guessing at text.
Fan-out is capped at 100 items and loops at 25 iterations, so a single request cannot run away.