List a bot’s procedures
A procedure is one of two things. FREE_FORM is a playbook the model reaches for MID-CALL when its `trigger` matches what the caller raised — the trigger is the only part the model ever sees, and the body is injected as a framed tool result; it steers behaviour and grants no new capability. DETERMINISTIC is an ordered flow compiled into the call itself at publish, reachable only as the bot’s entry flow or via `sub_procedure`. `content` ships in full here, so one call reads the whole set. Required scope: `bots.read`.
/bots/{botId}/proceduresAuthorization
ApiKeyAuth An external API key, sent as Authorization: Bearer mflo_…. Scopes are checked per route; see each operation’s description.
In: header
Path Parameters
uuidQuery Parameters
1 <= value1 <= value <= 100Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/bots/497f6eca-6276-4993-bfeb-53cbbbba6f08/procedures"{ "data": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "botId": "58ed41f0-04bf-402f-9853-7143ef7dd5ce", "name": "string", "type": "FREE_FORM", "trigger": "string", "content": null, "position": 0, "enabled": true, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" } ], "entryProcedureId": "2fd6edee-ae37-4588-8083-09bfb58841c3", "pagination": { "page": 0, "limit": 0, "total": 0, "totalPages": 0 }}Get a procedure GET
Required scope: `bots.read`.
Edit a procedure PATCH
Only the fields you send are touched, but the WHOLE procedure is re-validated, so a rename cannot leave a body that breaks its tier’s rules. `type` cannot be changed — the content shape depends on it; delete and re-create instead. `enabled: false` is the one change that takes effect WITHOUT a publish: it is checked live at dispatch, even against an already-published snapshot. Required scope: `bots.write`.