
A few months back, a CTO at a ~50-person startup told me: "I don't even know how many API keys are floating around my company right now." Keys from ex-employees still running, unclaimed keys burning budget, a midnight usage spike traced to an intern's forgotten script.
That conversation kept happening. Team after team, same story. Once AI usage grows past "a few people experimenting," the management cost of API keys becomes the real bottleneck — not the models.
The default setup
Every team starts the same way. Engineer grabs a key from the provider dashboard, pastes it in, ships it. Second project? New key, or reuse the first one. Two providers? One key each. By the time the team hits five people, everyone has their own key because waiting for a shared one is too slow.
This is fine at small scale. Then you hit three walls at once:
The shift that matters
The instinct is to lock everything down — centralize keys. But that kills dev velocity. No one wants to ask permission for every API call.
The real move: stop issuing static keys. Issue temporary credentials on demand, scoped by policy.
Think of it like building access. Static keys are all-access badges that never expire. On-demand access means the system issues a temporary pass when you need it — one room only, expires tonight, invalidated when you leave. You just prove who you are, the system decides what you can do.
What we built
We call these "virtual keys" — derived credentials dynamically issued by a control plane with policies attached:
Revocation is instant. Someone leaves? Flip one switch, done in minutes. No hunting through provider dashboards.
The bonus: every call is attributed. You know exactly which project spent what, which model spiked, which team is approaching budget. Your AI spend goes from black box to glass box.
We've been building this for a while and it's now running in production with several teams in the 30-80 person range. Happy to chat if you're dealing with similar problems: aikeyfounder@gmail.com
Temporary scoped credentials are the right direction. I’d make budget part of the policy, not just reporting: per-project daily caps, model allowlists, and an automatic kill or step-down when spend or request rate breaks baseline. Also log which human or service requested the credential and why, otherwise rotation improves but incident reconstruction is still painful. Do your teams use hard stops or approval overrides in prod?
Completely agree on budget-as-policy, not just reporting. The hard stop vs. step-down question is the right one — in practice most teams start with alerts and a manual kill switch, then graduate to automated enforcement once they trust their baselines. We've seen both approaches work depending on the team's risk tolerance.
On attribution logging — yes, that's essential for postmortems. Without it you're flying blind on incident reconstruction no matter how clean your rotation is.