Skip to main content

API Reference

Two separate REST surfaces:

  • Data plane (/v1/..., /healthz) — event ingestion and read, for end users and apps/publishers.
  • Admin API (/admin/v1/...) — platform-operator/tenant-admin registry, config, and PII-gated read surfaces.

Conventions that hold across both

  • Auth: Authorization: Bearer <JWT>, never cookies (see Authentication). Missing/invalid token → 401.
  • Tenant scope: always derived from the token; never a client-supplied field, path segment, or query parameter (the tenant-registry resource itself is the one exception — see Tenants).
  • Content type: request and response bodies are application/json, except GET /v1/stream's text/event-stream frames.
  • Error bodies: most error responses are plain text (http.Error), not a JSON envelope — don't assume {"error": "..."} unless a specific route below says otherwise.
  • DELETE/revoke routes return 204 No Content on success.

Every route, at a glance

MethodPathPlaneAuth
GET/healthznone
POST/v1/eventsDataend-user SSO-JWT or app service-JWT
GET/v1/feedDataend-user SSO-JWT
GET/v1/streamDataend-user SSO-JWT
POST/v1/render-tokens/verifyDataend-user SSO-JWT
GET/admin/v1/meAdminany authenticated SSO-JWT (no role minimum)
GET/POST/PATCH/DELETE/admin/v1/tenants...Adminplatform-operator
GET/POST/PATCH/DELETE/admin/v1/apps...Admintenant-admin
GET/POST/PUT/DELETE/admin/v1/policies...Admintenant-admin
GET/POST/PUT/DELETE/admin/v1/event-catalog...Admintenant-admin
GET/POST/admin/v1/notifications...Admintenant-admin (feed inspector: explicit tenant-admin)
GET/POST/DELETE/admin/v1/rbac/...Admintenant-admin (granting platform-operator requires already holding it)
GET/admin/v1/profile, /admin/v1/analytics/summaryAdmintenant-admin
GET/admin/v1/activity, /admin/v1/auditAdminexplicit tenant-admin

"Explicit tenant-admin" means platform-operator alone is not sufficient — see Authz planes → The PII gate.