Back to sensacat

Home  /  Learn

· SensaCat Team

What Is Credential Expiry Monitoring?

Tracking when API keys, tokens and certificates expire, because nothing in your system emits a signal before they do.

Credential expiry monitoring is the practice of tracking the expiry dates of API keys, OAuth tokens, service-account credentials, signing certificates and licence keys, and alerting before any of them lapse.

It is different in kind from every other type of monitoring on this list, because there is no runtime signal to observe. A credential that expires tomorrow behaves identically to one that expires in three years, right up until the moment it stops working.

Why detection is the wrong frame

Most monitoring detects a problem that already exists. Credential expiry cannot usefully be detected, because by the time the 401 responses start appearing, the integration is already down and customers are already affected.

The only useful intervention is before the fact, which makes this an inventory problem rather than an observability problem. You are not watching a system. You are maintaining a list of dates and the people responsible for them.

That is also why it gets skipped. Nothing in a normal monitoring stack has a natural place to put a date, so the date ends up in a calendar invite, a spreadsheet, or nowhere.

Typical lifetimes

Credential type Common lifetime Failure characteristic
Third-party SaaS API key Often none, sometimes 1 year Silent until first rejected call
OAuth refresh token Weeks to indefinite; revocable at any time Can be revoked by the user, not just expire
Cloud access key Indefinite unless a rotation policy applies Long-lived keys accumulate and get forgotten
Short-lived session credential 15 minutes to 12 hours Auto-renewed; fails loudly and fast if not
TLS certificate Maximum 200 days since March 2026 Browser-visible failure, affects every visitor
Code signing certificate 1 to 3 years Blocks releases rather than running traffic
Webhook signing secret Indefinite until rotated Rotation itself is the usual cause of breakage

What changed by 2026

The direction of travel is toward shorter lifetimes. The CA/Browser Forum cut the maximum TLS certificate lifetime from 398 days to 200 on 15 March 2026, with further reductions to 100 days in 2027 and 47 days in 2029.

Cloud platforms have pushed the same way, replacing long-lived static keys with short-lived federated credentials issued per workload. Where that migration has happened, expiry becomes an automation problem rather than a calendar problem.

Where it has not happened, the problem is unchanged and usually worse, because the surviving long-lived keys are the ones nobody has revisited in years.

Rotation is its own failure mode

Replacing a credential before it expires solves one problem and creates another. Every consumer of that credential has to be updated, and the one that gets missed is typically a background worker nobody thinks of as a consumer.

A rotation that breaks a nightly job at 02:00 will not be noticed for hours, which is a reason to treat rotation as a deployment with a verification step rather than as a settings change.

Ownership matters more than the date

An expiry date with no name attached is a scheduled incident with no assignee. The practical minimum is recording, for each credential, what it is for, when it expires, who renews it, and what breaks if it lapses.

That last field is what turns an alert into a prioritisation. A lapsed analytics key and a lapsed payment provider key produce identical warnings and very different mornings.

Certificates have their own page at SSL certificate monitoring, and the registration side is covered in domain expiry monitoring. The wider category is what is a silent failure.