The two credentials are not interchangeable: the management API rejects
xe_… keys and the runtime rejects ak_… keys. See Authentication.
Base URL
https://cp.xenovia.io/openapi.json; the endpoint pages in this reference are generated from it.
What you can do
Proxies
Create proxies, attach a provider, define capabilities and role intents, activate them, and read the policy input schema observed in their traffic.
Policies and templates
Create Rego policies or instantiate one of the 55 templates, attach them to a proxy and enable them in monitor or enforce mode.
Sessions and traces
Read sessions, turns and steps, flat trace records with custom-property filters, aggregate stats and multi-proxy workflows.
Alerts
Manage event and metric alert rules, notification channels and the alert episode history.
Conventions
- JSON everywhere. Request and response bodies are
application/json. - Identifiers. Proxies, providers, policies, sessions and traces use UUIDs. The
org_idpath parameter is the Clerk organization id (org_…), visible under Settings in the dashboard. - Status codes.
201on create and attach,204on delete and other empty responses,200otherwise. See Errors and Limits. - Pagination. List endpoints take
limit(default20, maximum100) andoffset(default0) and return{ "items": [...], "total": n, "limit": n, "offset": n }. Alert events and notifications default to50, alert rules to100. Capabilities, role configs, deployments and policy templates return a bare array instead. - Request ids. Every response carries an
X-Request-IDheader. Send your own value to have it echoed and recorded in the audit log; otherwise one is generated. - No idempotency keys. Retrying a
POSTcreates a second resource, or returns409where names are unique (proxies, providers, policies, capabilities). - Propagation. Configuration changes are written through to the runtime immediately and revalidated by each runtime instance about every five minutes. A change to a proxy, provider, policy, capability or intent trigger is live within that window.
Tenancy
Every request is scoped to one organization: the organization that owns the API key, or the organization selected in the dashboard session. Resources that belong to another organization return404, not 403.