Agent Keys give AI agents scoped, time-limited API credentials with spend caps and endpoint restrictions — enforced transparently at the proxy. Your agent doesn't change a line of code.
The problem today
Agents carry your full API key. One runaway loop and you're staring at a $500 OpenAI bill.
CI keys live forever. A leaked key from a test run three months ago is still valid today.
Your agent only needs to call /v1/chat/completions. But it has access to everything.
Your agent keeps its existing proxy URL. You add a policy. The proxy does the rest.
agent.policy.yaml
What happens at runtime
Agent starts, uses its normal proxy URL
No code changes. The agent calls api.vaultproof.dev/v1/openai as usual.
VaultProof reads the agent's policy
Every call is checked against allowed endpoints, remaining budget, and TTL expiry.
Call is proxied or blocked
Valid calls go through. Attempts outside the policy return a clear error — no silent failures.
TTL expires, key is gone
The scoped key self-destructs. No cleanup step. No leftover credentials.
What you control
Set a duration — 5 minutes, 1 hour, 24 hours. The key expires automatically. No manual revocation needed.
Set a dollar limit per run. Once hit, the key is blocked. No surprises on your OpenAI bill at the end of the month.
Whitelist exactly which API endpoints the agent can call. Everything else is blocked at the proxy.
Each agent run gets a clean credential slate. Spent budget and state don't carry over between runs.
Every call the agent makes is logged — endpoint, tokens, latency, cost. Know exactly what your agent did.
Agent Keys are headless by default. No interactive auth, no session tokens. Drop them straight into GitHub Actions.
Each CI run gets a fresh scoped key. It expires when the job finishes. No leftover credentials sitting in your repo secrets.
Run hundreds of eval cases with a capped budget per suite. Know the eval can't spend more than you've budgeted, no matter what.
Give each sub-agent in your pipeline its own scoped key. The orchestrator controls the budget. Sub-agents can't exceed their allocation.
Give your users agents backed by your keys, scoped so they can't exceed their plan limits. No risk of one user blowing your entire API budget.
We're building this with a small group of early users. If you're running agents in CI or building multi-agent systems, we want to talk to you.