REST API
Drive MadMax from CI, scripts, or your own services over /api/v1.
Everything the workflows index can do, over HTTP: list, create (including from an exported document), edit the graph, activate, run, and read execution history.
Authentication
Mint a token in Settings → developer. Tokens are pinned to one
workspace and scoped read or read + build. Two headers are
mandatory on every call:
Settings → developer: mint workspace-pinned tokens and grab the quick-start snippets.
Authorization: Bearer mmx_...
Content-Type: application/vnd.api+json
Sanity-check your setup:
curl https://your-instance/api/v1/me \
-H "Authorization: Bearer $MADMAX_API_TOKEN" \
-H "Content-Type: application/vnd.api+json"
The interactive reference
The full endpoint reference lives at /api/docs — every
route with params, response codes, curl snippets, and a try it
panel that fires real requests with your token. The raw OpenAPI 3
spec is at /api/docs/openapi.json for Postman or codegen.
The 60-second tour
# create a workflow
curl -X POST $BASE/api/v1/workflows \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/vnd.api+json" \
-d '{"data": {"name": "From the API"}}'
# push a graph onto it
curl -X PUT $BASE/api/v1/workflows/$ID/graph \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/vnd.api+json" \
-d '{"data": {"graph": {"nodes": [...], "edges": [...]}}}'
# activate + run
curl -X POST $BASE/api/v1/workflows/$ID/activate \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/vnd.api+json"
POST /workflows also accepts a whole document — a MadMax
export, an n8n export, or a bare {nodes, edges} graph — and
reports what's left to finish (placeholders + required connections).