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
Agents
Create agents, attach a provider, activate them, manage their API keys, and read the policy input schema observed in their traffic.
Policies and templates
Create Rego policies or instantiate a template, attach them to an agent 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-agent 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. Agents, 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. Guardrails, 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 (agents, providers, policies, guardrails). - Propagation. Configuration changes are written through to the runtime immediately and revalidated by each runtime instance about every five minutes. A change to an agent, provider, policy or guardrail 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.