/v1 routes need Authorization: Bearer <API key or OIDC token>. GET /healthz and GET /readyz are open;
GET /metrics needs an auditor credential unless REVERSI_METRICS_PUBLIC=1. Roles gate each route.
Request and response bodies are JSON, except where noted. Bodies are capped at 1 MB.
Examples in these pages use $KEY, $AGENT_KEY, $OPS_KEY and so on for credentials, and http://127.0.0.1:7421 for the
server. They were run against a local server.
Roles are cumulative: each includes the ones before it. Agents see only the runs they opened.
Errors are
{"error": "message"}. Policy refusals are not errors: POST …/intents returns 200 with "decision": "block" and reasons.
Features that are not enabled answer 404 with a message saying why, for example no retention settings, capture is off,
no manifest registry folder is configured on this server, signed bundles are not enabled on this server.
On the standalone reversi-server, /v1/connectors returns an empty list (the gateway console fills it in), and
/integrations/slack/actions answers 404 unless REVERSI_SLACK_SIGNING_SECRET and REVERSI_SLACK_USERS are set.

