key and supply values that satisfy its typed parameter schema. You can never submit workflow source, choose an underlying workflow name, or inject steps.
That boundary is a security guarantee: the registry decides which execution graph and cloud permissions can run. Caller values are validated against the exact registered schema and sent only as runtime arguments. Unknown fields are rejected before any cloud credential is acquired or outbound execution request is made, and no caller value is interpolated into workflow source or a workflow name.
Authentication
Both routes accept a partner bearer key or a linked dashboard session. A valid bearer key is resolved first and selects the partner; otherwise the route falls back to the session.401{"error":"Sign in to continue."}— no bearer key resolved and there is no valid session.403{"error":"This session is not linked to a partner. Link with a partner API key first."}— the session is valid but unlinked.
List the registry
GET /api/partner/playbooks
Returns the playbooks currently exposed by the closed registry and the parameter schema for each one.
curl
200 OK
array
Complete catalog visible through this API.
Run a playbook
POST /api/partner/playbooks/{key}/run
string
required
Case-sensitive key returned by the registry. The only current value is
approval_gate.application/x-www-form-urlencoded or multipart/form-data. JSON request bodies are not parsed by this route; a JSON request to a known playbook is treated as having no parameters and fails validation for its missing required fields.
curl
200 OK
string
Durable execution resource name returned by the underlying workflow service.
Treat it as an opaque identifier. A
200 means the provider confirmed that
the execution was created; it does not mean the automation finished or a
human approved the subject.Responses and errors
Validation errors name the rejected field, for example:
400 Bad Request
400 Bad Request
400 Bad Request
partner-portal limit of 120 requests per minute, bucketed by dashboard session when present and otherwise by client IP. Runs use the partner-write limit of 60 requests per minute, bucketed by the presented bearer key when present and otherwise by client IP.
approval_gate
The current registry contains one playbook: a durable wait for a human decision.
The execution creates an internal HTTP callback endpoint and waits for a human decision for up to 30 days (
2,592,000 seconds). The workflow itself never approves anything.
- When the callback request body contains
decision, the workflow completes with that value asoutcome, alongsidekindandsubjectId. - When the callback body omits
decision, the outcome isunspecified. - When the 30-day wait expires — or the wait raises an error — the workflow completes with
outcome: "expired", alongsidekindandsubjectId.
executionName; it does not expose the callback URL or the eventual decision. Callback delivery and result consumption remain inside the limited-release integration.