Why your agent shouldn’t hold a key for every provider
Every secret can leak, and every provider adds one. How one Agent200 key replaces the stack, and how to look after the one you keep.
2 min read

Count the secrets in a typical agent’s environment file: a key per model provider, a key per search service, client IDs and secrets for every OAuth app, a signing secret per webhook. Each one is something to store, rotate, scope and eventually leak. The fewer your agent holds, the better.
Every key is a liability
- It can leak: in a log line, a screenshot, a public repository, a support ticket.
- It has its own blast radius: a leaked provider key spends your money on someone else’s requests until you notice.
- It needs care: storage, rotation, access control and an owner who remembers it exists.
Multiply that by every provider your agent touches.
One key instead of many
With Agent200, your application authenticates with one Agent200 API key. Supported models and paid services, from AI models to web search, are reached through that key. You do not supply separate provider keys for them; Agent200 manages the provider relationships.
| Secret | Building it yourself | With Agent200 |
|---|---|---|
| Model provider keys | One per provider | None: your Agent200 key |
| Paid service keys | One per service | None: your Agent200 key |
| OAuth client secrets and user tokens | Stored and refreshed by you | Managed by Agent200 for supported connectors |
| Your own credential | n/a | One Agent200 key per environment |
Users’ tokens stay out of your database
The most sensitive secrets in an agent are not yours: they are your users’ OAuth tokens. With managed OAuth, Agent200 stores each user’s connection and refreshes it. Your database holds user IDs, not access tokens to their inboxes.
Look after the one key you keep
- One key per environment. Development, staging and production each get their own, so a leaked laptop key cannot reach production.
- Server side only. Never ship the key to a browser or a mobile app. Your backend calls Agent200; your client calls your backend.
- From the environment, not the code. Load it from your secrets manager or environment variables.
- Least capability. Enable only the services and endpoints each environment needs, so even a leaked key can do little.
The safest secret is the one you never had to hold.
Read more on the Security page, or see how one key covers every model and paid service.


