
Feb 10, 2026·8 min read
API Key Management for SaaS: Beyond the Settings Page
Summarize this article
Most SaaS products reach a point where they expose an API. They add a "Developer Settings" page, let customers generate keys, and move on. Six months later, no one knows how many keys exist, which ones are active, who created them, or which integrations would break if a key were rotated. A year after that, a customer reports an integration is broken and no one can tell if the key was revoked, expired, or never working correctly in the first place.
API key management is one of the most commonly underdeveloped areas of SaaS backoffice infrastructure — and one of the most consequential when something goes wrong. The gap between a basic settings-page key generator and a proper key management system is wide, and the cost of crossing it only increases the longer you wait.
What the Settings-Page Approach Misses
A basic API key UI does one thing: let customers generate and revoke keys. It doesn't give your team or your customers visibility into anything that matters operationally.
No usage visibility. You can't tell which keys are actively making requests, at what volume, or from where. When a customer calls to say their integration has been broken for two weeks, your support team has no way to verify the claim, identify the last successful request, or determine whether the key was ever used. They have to route it to engineering for a database query.
No scoped permissions. Every key has the same level of access. A key used by a read-only reporting integration has the same privileges as a key used by a write-heavy automation. If either key is compromised, the blast radius is identical and maximal.
No expiration enforcement. Keys live indefinitely. There's no mechanism for enforcing rotation policies, even for enterprise customers whose security teams require 90-day key rotation. Keys created three years ago by employees who have since left the company are still active.
No rotation workflow. When a customer needs to rotate a key — changing the secret without breaking the integration — there's no supported path. They have to delete the old key and create a new one, accepting a window of downtime while they update their integration. Enterprise security-conscious customers avoid this because the downtime cost is too high, meaning keys never get rotated.
No audit record. There's no structured log of who created which key, when, what they used it for, or when it was last active. When a security incident involves an API key, you have no forensic trail to work with.
Without these capabilities, your security posture depends on customers managing their own keys responsibly — which they won't, consistently, at scale.
The Internal Visibility Problem
Your support team should be able to answer two questions without routing to engineering: "Is this customer's API key actively being used?" and "When did this key last make a request?" Without an internal API key dashboard, both questions require someone to write a database query.
An internal key management panel gives your team a structured view of every key across every account: creation date, creator, scope, last-used timestamp, request volume over the past 30 days, and current status (active, revoked, expired). Support can confirm that a customer's integration is or isn't making requests. Security can identify keys that haven't been used in 180+ days and flag them for review or auto-revocation.
The operational queries your team needs to run regularly:
- Which keys haven't been used in more than 90 days? These are candidates for auto-expiration.
- Which accounts have more than 10 active keys? This often indicates unmanaged proliferation where old integration keys were never cleaned up.
- Which keys have made more than 10,000 requests in the last 24 hours? Elevated volume can indicate a runaway integration or an abuse pattern.
- Which keys were created by users who are no longer active on the account? These are orphaned credentials that should be reviewed and likely revoked.
A properly built admin panel surfaces these queries as saved views, not as SQL queries that require engineering involvement.
Scoped Permissions: Designing a Model That's Actually Usable
Scoped permissions reduce blast radius. A read-only key that leaks exposes data but can't write, delete, or modify anything. A full-access key that leaks is a significantly worse incident. The math is straightforward; the challenge is designing a permission model that's granular enough to be meaningful without being so complex that customers can't understand it.
For most SaaS products, three tiers cover the vast majority of real integration patterns:
Read-only — access to GET endpoints; no ability to modify, create, or delete any data. Used by reporting integrations, dashboards, and monitoring tools.
Read-write — access to GET and POST/PUT endpoints for standard operations. Used by integrations that need to update records or trigger actions, but shouldn't have access to billing or account administration.
Admin — full access, including billing operations, user management, and account configuration. Should be used sparingly, with explicit rationale required at key creation time.
If your product has a more complex permission surface — different resource types (contacts, deals, invoices) with different access requirements — you can layer resource-level scoping on top of these tiers. But start with three tiers and expand only when customers demonstrate a need for finer-grained control. Complexity in a permission UI is a support burden.
At key creation time, the UI should require the user to select a scope and provide a label describing the integration — "Reporting dashboard key" or "Zapier integration key." This label becomes part of the audit record and makes it much easier to evaluate which keys are safe to revoke during a security review.
Rotation Without Downtime
Enterprise customers with security-conscious engineering teams rotate API keys periodically — often quarterly, sometimes monthly. If your product doesn't support zero-downtime rotation, you'll receive support tickets every time a customer tries to comply with their own security policy.
The pattern is straightforward: the customer generates a new key while the old key remains active. They update their integration to use the new key. After confirming the new key is working, they revoke the old key. The old key has a configured expiration window — typically 24–72 hours after a new key is generated for the same scope — after which it auto-expires even if not manually revoked.
This pattern requires that your API can authenticate with multiple active keys per account simultaneously, which most single-key implementations don't support. It's a non-trivial backend change if not designed in from the start, which is why we recommend building rotation support early — it's much cheaper to add during initial implementation than to retrofit after your enterprise customers have been asking for it for a year.
The rotation workflow in the UI should be a guided flow: "Generate a new key to replace this one" → new key created → step-by-step instructions for updating the integration → "I've updated my integration" confirmation → old key automatically queued for expiration.
Expiration Policies and Compliance Reporting
Key expiration serves two purposes: it limits the exposure window for compromised keys, and it satisfies the rotation requirements that enterprise security reviews and compliance frameworks commonly mandate.
Configurable expiration policies — 90 days, 180 days, or custom — should be available at the account level (set by your team for enterprise accounts) or at the individual key level (set by the customer). Keys approaching expiration should trigger a warning notification to the key creator and account admin well in advance, not on the day of expiration.
For enterprise accounts subject to security reviews, a key audit report — all keys created in the past year, their scopes, creation dates, last-used dates, and current status — should be exportable as a CSV or PDF. This report is commonly requested during SOC 2 audits, vendor security questionnaires, and enterprise procurement reviews. Having it available on demand (rather than requiring an engineering team to generate it manually) accelerates those reviews and removes a common bottleneck in enterprise sales cycles.
When to Build a Proper Key Management System
The trigger is usually one of two scenarios. Either a security incident occurs — a leaked key, an integration behaving unexpectedly, a customer reporting that their key has been compromised — at which point the absence of an audit trail makes the incident significantly harder to investigate and contain. Or an enterprise customer asks for key rotation support and a usage audit as part of their security review, and the answer "we don't have that" becomes a deal blocker.
Both scenarios are predictable. If you're exposing an API today with a basic key generation page, you will encounter one of these scenarios eventually. The question is whether you build proper key management before or after the incident.
The investment is not large — a well-scoped key management system, including the customer-facing UI, the internal admin panel, and the rotation workflow, typically takes 4–6 weeks to build. The operational and security value it provides runs indefinitely. Building it proactively costs a fraction of what it costs to retrofit after a security incident has already occurred and a SOC 2 audit is already underway.
Summarize this article


