Fine-grained access for every API your agents touch.

Give each agent its own key and decide, action by action, what it may do on QuickBooks, GitHub, Cloudflare and almost any other API.

QuickBooks OnlineBookkeeping agent · Acme Holdingskc_…7f3a
PermissionAccessOnly when
Invoices · Read
invoice.read
AllowedAny request
Invoices · Create
invoice.create
Allowed
body.EmailStatus = NotSet
Invoices · Create
invoice.create
Ask meWaits up to 24 hoursAny request
Invoices · Update
invoice.update
Ask meWaits up to 24 hoursAny request
Customers · Read
customer.read
AllowedAny request
Customers · Update
customer.update
Ask meWaits up to 24 hoursAny request
Allowed goes straight throughAsk me waits for your confirmation
Ask me

Approve requests on your phone.

KeyContain holds an Ask me request and notifies you in the KeyContain app or your browser, with its own summary of what the request does.

  • AllowedRoutine requests go straight to the service.
  • Ask meRisky ones wait for your approval.
  • No rowEverything else is refused with a message your agent understands.
Service by service

Give your agent only the access it needs.

QuickBooks Online

Its own connection

An app connected to a company can read and change everything in it, from invoices to payments and bills.

Your KeyContain key

You let it read invoices, customers and reports, and have new invoices wait for your approval.

GitHub

Its own token

A token that can push to a repository can push to, force-push and delete any of its unprotected branches.

Your KeyContain key

You let it push to agent/-prefixed branches in the repositories you pick and open pull requests. Merges wait for you.

Cloudflare

Its own token

A token that can edit DNS in a zone can change or delete every record in it.

Your KeyContain key

You have every DNS change wait for your approval.

Security

How your keys are stored

Every service key (e.g. QuickBooks) you give KeyContain is stored encrypted so that you can't use it even if you have a copy of our database or backups.

Encrypted
Each service key is encrypted with a key of its own. We don't store the decryption key.
Unlocked only when used
A service key is unlocked only briefly when you make a request, only stored in memory, and immediately purged after use.
Kept out of logs
Keys never appear in KeyContain's logs.

Key storage design →

Pricing

Free to start.

Free allowance

$0
  • 10 requests per minute
  • 100 MB of traffic per month
  • Shared across unlimited keys and services

Capacity units

$0.50 per unit per month
UnitsRequests per minuteTraffic per monthPer month
1501 GB$0.50
42004 GB$2.00
201,00020 GB$10.00
  • Shared across unlimited keys and services
Services

Works with the services you already use.

Want built-in support for a service we don't have yet? Let us know →

Decide what your agents can do.