Skip to main content

What is an Intent?

An intent is a declaration of what an agent wants to purchase. Before any money moves, the agent must create an intent. The policy engine checks it automatically.

Create an Intent

curl -X POST https://api.getovra.com/intents \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{
    "agentId": "ag_xxx",
    "purpose": "Monthly Hetzner server",
    "expectedAmountEuros": 4.51,
    "expectedMerchant": "hetzner.com"
  }'

Intent Lifecycle

created → policy check → approved / pending_approval / denied

                         completed (after checkout)
StatusDescription
approvedPolicy auto-approved. Ready for checkout.
pending_approvalExceeds auto-approve limit. Needs human approval.
deniedPolicy denied (over limit, blocked merchant, etc.)
completedPayment executed successfully.
cancelledCancelled before payment.
expiredTTL expired without payment.

Approve / Deny

# Approve
curl -X POST https://api.getovra.com/intents/in_xxx/approve \
  -H "Authorization: Bearer sk_test_..."

# Deny
curl -X POST https://api.getovra.com/intents/in_xxx/deny \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"reason": "Budget exceeded"}'