Submit an approve / reject / escalate decision on an approval gate.
The decision actor identity and role are derived from the authenticated context, never trusted from the request body (SR 11-7). API-key callers without a user identity are rejected 403; a claimed actorRole that does not match the caller's real org role is rejected 403. When the decision resolves the gate, an escalate-to-live-session workflow gate is resumed with the server-derived approver as driver.
Rensei API key presented as Authorization: Bearer rsk_live_. Required API-key scopes are recorded per operation in x-rensei-required-scopes.
In: header
Path Parameters
The approval gate id.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/approval-gates/string/decide" \ -H "Content-Type: application/json" \ -d '{ "decision": "approved" }'{
"resolved": true,
"property1": null,
"property2": null
}List approval gates (pending-approvals feed) for the authenticated org.
Returns approval gates scoped to the authenticated org, optionally filtered by issue or status. Gates that carry an MCP-tool project scope are additionally filtered to those the caller can access, so a project-scoped key or a non-member session never sees another project's gates. Ordered by createdAt ASC (pipeline stage order); the client groups by issue and sorts groups by urgency.
Submit an inbound BYOA agent-dispatch request.
Authentication accepts an rsk API key, a requester-registration-bound OAuth agent token, a WorkOS user token, or a browser session. REG-10 is conditional: a bound registration with a public key requires all three X-Rensei-Request-* headers; a light registration without a key, an unbound rsk key, a user token, and a session do not. A strict registration without a key is misconfigured and returns 403. The public key is canonical standard base64 of the raw 32-byte Ed25519 key. The signature is canonical standard base64 of 64 bytes over the exact UTF-8 canonical-envelope JSON. Nonce replay rejection is best-effort: if Redis is unavailable, replay-cache checks fail open while signature and inclusive +/-300-second timestamp validation remain enforced.