An agent is a Stripe-shaped resource: it owns cards, tokens, transactions, and exactly one policy at a time. Agents are typed for AI use — they carry aDocumentation Index
Fetch the complete documentation index at: https://docs.getovra.com/llms.txt
Use this file to discover all available pages before exploring further.
purpose, optional framework (openai-assistants, anthropic-sdk, langgraph, crewai), and optional capabilities so the dashboard and audit trail can describe what they’re for.
The agent model
| Field | Description |
|---|---|
id | ag_* |
name | Display name |
policyId | Exactly one policy, mutable but always present |
profile.purpose | Required. Free text — describe what the agent does. |
profile.framework | Optional — e.g. langgraph |
profile.capabilities | Optional string[] — what the agent can do |
profile.description | Optional longer description |
profile.department | Optional cost-center tag |
profile.ownerContact | Optional escalation contact |
status | active · suspended · archived |
Minimal create
The dashboard create drawer (and the documented happy path) isname + purpose + policyId. Other profile fields are optional, hidden behind an “Advanced” toggle.
Lifecycle
| Endpoint | Purpose |
|---|---|
POST /agents | Create (idempotent) |
GET /agents/:id | Read |
PATCH /agents/:id | Update name / profile / status |
DELETE /agents/:id | Archive (cascades over cards + tokens) |
POST /agents/:id/freeze / /unfreeze | Pause / resume authorization |
POST /agents/:id/tokens | Issue an agent-scoped token (at_*) |
Agent tokens
Agents can hold their own scoped tokens (at_*). A token is bound to one agent, carries typed permissions, and may have an optional spend cap (via delegation).
at_* tokens in your runtime instead of sharing your org-level sk_* key. Cross-agent reads with an at_* token return 403 E_AGENT_ISOLATION — strict isolation is one of the sacred invariants.
Signing keys (Phase 8 prep)
For each agent, an Ed25519 keypair is provisioned async. The public JWK is exposed at:Webhooks
agent.createdagent.frozenagent.unfrozen
Plan-tier limits
| Plan | Agents |
|---|---|
| Free | 1 |
| Starter | 5 |
| Business | 10 |
| Enterprise | Unlimited |
Surfaces
| Surface | Capability |
|---|---|
| REST | /agents, /agents/:id/tokens |
| SDK | ovra.agents.* |
| MCP | ovra_agent (admin-side) |
| Dashboard | /dashboard/agents |
Next
Cards
Issue cards bound to an agent.
Policies
Define what an agent can spend.
Intents
The approval primitive every charge starts with.
Pay
How an agent actually pays.
