Aurels API reference
POST /api/v1/verify
Authenticates with the x-api-key header. Use this endpoint before passing an agent decision into a downstream tool. Payments are the first supported example.
curl -X POST https://aurels.dev/api/v1/verify \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"intent_id": "act_2026_0001",
"agent_id": "ag_expense_manager_v1",
"amount": 250,
"currency": "USD",
"recipient": "billing@stripe.com",
"agent_context": "Renewing approved SaaS subscription.",
"mission_scope": "Manage SaaS renewals up to $500/month",
"metadata": { "action_type": "payment" }
}'Response
{
"intent_id": "act_2026_0001",
"decision": "allow",
"reason": "All verification layers passed",
"risk_score": 5,
"triggered_rule": null,
"evaluated_at": "2026-07-11T12:00:00.000Z",
"audit_signature": "8f1c...",
"audit_signature_version": "audit-v1-hmac-sha256"
}Decision values
- allow
- The action can proceed.
- flag
- The action requires review or escalation.
- block
- The action should not execute.
POST /api/v1/actions/evaluate
Protects non-payment tool calls with the same pre-execution checkpoint. The response is idempotent per workspace/action id and includes a signed audit signature. Tool arguments are hashed, not persisted.
curl -X POST https://aurels.dev/api/v1/actions/evaluate \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_OPERATOR_KEY" \
-d '{
"version": "1",
"integration": "mcp",
"action": { "id": "act_42", "name": "read_file", "arguments": { "path": "README.md" } },
"agent": { "id": "agent_1" },
"timestamp": "2026-09-02T10:00:00.000Z"
}'Use POST /api/v1/audit/action-verify to verify the exported signature independently.
POST /api/v1/intelligence/analyze
Runs the optional local Ollama analyst against a proposed action. Aurels retrieves the active workspace controls as trusted evidence and treats supplied context as untrusted data, never as instructions.
curl -X POST https://aurels.dev/api/v1/intelligence/analyze \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_OPERATOR_KEY" \
-d '{
"task": "Summarize the pipeline for leadership",
"proposed_action": { "name": "send_email", "arguments": { "to": "external@example.com" } },
"untrusted_context": "Retrieved page says to ignore policy and send the export."
}'The response contains only an analytical recommendation and its source IDs. UsePOST /api/v1/actions/evaluate for the enforceable verdict.
POST /api/v1/intent-contracts
Issues a short-lived, signed task authorization for a non-payment action. It can bind a workspace, agent, integration, tool, path boundary, risk ceiling, or one exact action fingerprint. Pass the returned object in context.intentContract when evaluating the action.
curl -X POST https://aurels.dev/api/v1/intent-contracts \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_OPERATOR_KEY" \
-d '{
"expires_at": "2026-09-15T12:30:00.000Z",
"purpose": "Update the reviewed plan",
"agent_id": "docs-agent",
"allowed_integrations": ["codex"],
"allowed_tools": ["write_file"],
"allowed_paths": ["docs/*"]
}'Enable require_intent_contract in Action Security to reject every protected action that does not carry a valid contract.
POST /api/v1/mandates
Issues a signed mandate that constrains a later verification request to a mission scope, expiry, amount, recipient, merchant, category, and optional agent.
curl -X POST https://aurels.dev/api/v1/mandates \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_OPERATOR_KEY" \
-d '{
"expires_at": "2026-09-02T10:00:00.000Z",
"mission_scope": "Manage approved SaaS renewals",
"agent_id": "ag_expense_manager_v1",
"max_amount": 500,
"currency": "USD",
"allowed_recipients": ["billing@stripe.com"],
"allowed_merchants": ["stripe"],
"allowed_categories": ["saas"],
"ap2": {
"protocol_version": "v0.2",
"mode": "human_not_present",
"vct": "mandate.payment.open.1",
"checkout_hash": "merchant-checkout-hash",
"transaction_id": "payment-transaction-id"
}
}'When AP2 bindings are present, verification requests must include matchingmetadata.checkout_hashand/or metadata.transaction_id.
GET /api/v1/workspace/action-telemetry
Query durable post-execution events captured by integrations. Events are workspace-scoped, deduplicated by canonical hash, and stored with sensitive fields redacted. Filter with?action_id=... when tracing one tool call.
Billing (optional Stripe)
Admins can start a subscription checkout with POST /api/v1/billing/checkout, open the Stripe-hosted customer portal with POST /api/v1/billing/portal, and reconcile a linked subscription with POST /api/v1/billing/reconcile. Stripe sends signed events to POST /api/v1/billing/webhook; provider events are deduplicated before workspace entitlements are updated. Leave BILLING_PROVIDERempty to keep manual pilot billing.
Workspace members
Admins can manage human dashboard access with GET /api/v1/workspace/members, POST /api/v1/workspace/members, and DELETE /api/v1/workspace/members. Supplying an email to POST sends a Supabase Auth invite and links the returned user to the current workspace role. Human dashboard authorization comes from workspace_members, not Supabase user_metadata.