OpenAPI Spec
The Rensei OpenAPI 3.x spec and the interactive API reference it generates.
Rensei's REST surface is described by a hand-maintained OpenAPI 3.x spec (openapi/rensei-api.yaml in the docs repo), synced against the platform route handlers. The spec drives the interactive API reference - one page per operation, grouped by tag, each with schemas and a live "Test it" playground (requests proxied so CORS doesn't bite).
What the spec covers
| Tag | Surface |
|---|---|
| Worker Protocol | /v1/daemon/*, /api/workers/*, /api/sessions/* - registration, poll, heartbeat, session lifecycle |
| Sessions (Public) | /api/public/* - org-scoped stats, session list/detail, prompt/stop |
| Authentication | /api/oauth/token M2M grant + API key management |
| A2A | /.well-known/agent-card.json discovery + dispatch listing |
| Webhooks | /api/webhooks/ingest/[provider] HMAC ingest |
| Audit | Audit events + /.well-known/audit-keys JWKS |
| MCP | The JSON-RPC tool endpoint |
Browse it at API Reference, or start from the prose guides:
API Overview
Auth mechanisms and full route-group map.
Worker Protocol
Registration, poll, heartbeat, session lifecycle - the self-hoster reference.
Public Sessions API
Org-scoped stats and session endpoints.
A2A Protocol
Agent discovery and dispatch.
MCP Tool Endpoint
JSON-RPC tool surface for agents.
Webhook Ingest
HMAC-verified ingest gateway.
How it stays fresh
- The spec is authored in the docs repo and synced weekly against platform
main(the sync routine regenerates the reference pages, docs map, andllms.txttogether). - The reference MDX under
/docs/api/reference/*is generated from the spec on every build - edit the YAML, not the generated pages.
The spec is hand-maintained, not code-generated from route handlers. If you find a drift between the playground and the live API, that is a docs bug - report it. Codegen from annotated handlers (and SDK generation via Fern/Stainless) remains on the roadmap.
Management API
The broad management surface (/api/org/*, /api/projects/*, /api/workflows/*) is not yet in the spec - it is documented as prose in the relevant feature pages and will be annotated incrementally.