Anthropic API Key Expiration Is Now Mandatory at Creation: What Operators Must Audit Before Keys Start Dying
Anthropic now requires an expiration decision at API key creation time. The Admin API exposes expires_at on every key. If your team has never-expiring keys in production, the July 8 change resets your governance baseline.
Archive item produced with AI assistance from the cited source and published without individual review. Editor of record: Joe Werner.

Every API key your team creates for the Claude API now carries a mandatory expiration decision. Anthropic's July 8 platform release changed the Claude Console's key-creation flow so that operators choose an expiration — a preset (3 hours, 1 day, 7 days, or 30 days), a custom duration, or an explicit Never — before the key is issued. The Admin API now surfaces expires_at on every key. Keys that your organization created before this change are unaffected, but the shift in default posture means your credential governance baseline has changed.
This is not a calendar-countdown deprecation. It is a structural shift in how Anthropic expects teams to think about API credential lifecycle — one that directly affects how you route, rotate, and monitor Claude API access at scale.
What changed on July 8
Before July 8, Claude Console API key creation did not require an expiration selection. Teams could create keys and leave the question of rotation entirely to their own internal processes — or not address it at all. Starting July 8, the Console forces a decision at the moment of key issuance.
The options are:
| Preset | Typical use case |
|---|---|
| 3 hours | Short-lived CI jobs, single-session automation, one-off debugging |
| 1 day | Daily batch jobs, ephemeral container workloads |
| 7 days | Short-lived integration tests, staging environments |
| 30 days | Dev environments with regular rotation built into your SDLC |
| Custom duration | Organization-specific rotation policy periods |
| Never | Long-lived production keys stored in a secrets manager with manual rotation |
Critically, expiration is set at creation time and cannot be changed afterward. If your organization installs a maximum expiration policy in the future, existing keys are grandfathered but new key creation will be capped.
The same expiration choice now applies when you create an Admin API key in the Console — not just regular API keys.
The Admin API signal: expires_at
The more operationally significant change is that the Admin API's List API Keys and Get API Key endpoints now return expires_at on every key record. For keys without expiration, the field is null.
This gives your monitoring layer the data it needs to build rotation-ahead alerting:
{
"id": "apikey_01AbCdEfGhIjKlMn",
"name": "prod-gateway-key",
"status": "active",
"expires_at": "2026-08-15T14:23:00Z",
"created_at": "2026-07-16T14:23:00Z"
}
Anthropic also added server-side email notifications: for keys with a lifetime of at least 14 days, the key creator receives a warning 7 days before expiration. For keys with a lifetime of at least 7 days, the warning arrives 1 day before. Keys shorter than 7 days expire without an email.
After expiration, requests using the key return 401 authentication_error. There is no grace period, and expired keys cannot be reactivated.
Why this matters for AI routing teams
For teams routing Claude API requests through an AI gateway or multi-provider routing layer, key expiration creates a new class of production incident: the silent 401 cascade.
If a production key expires and your routing layer surfaces 401 authentication_error as a provider failure rather than a credential issue, it may trigger fallback logic — routing traffic to an alternative provider — without surfacing the root cause. The routing appears to work (requests succeed via fallback), but your Claude capacity is silently unavailable and costs shift to the fallback provider.
Teams that rely on API keys for gateway authentication need to:
- Inventory current keys and their
expires_atvalues using the Admin API before the next key expires. - Build rotation-ahead monitoring: poll the Admin API weekly, alert when any key's
expires_atis within 14 days. - Distinguish
401 authentication_errorfrom provider-unavailability errors in your routing logic. A401on the Claude API should trigger a credential rotation alert, not a provider fallback. - Decide on Never vs. bounded expiration for gateway keys: if your routing gateway uses a single long-lived Claude API key,
Neverkeeps existing behavior but forgoes the blast-radius reduction that expiration provides.
The router/operator angle
The choice between Never and a bounded expiration for your primary gateway key is a tradeoff between rotation friction and credential hygiene:
Never (with secrets manager rotation): Appropriate when you have a mature secrets management pipeline (AWS Secrets Manager, HashiCorp Vault, GCP Secret Manager) with automated rotation and revocation. The key never expires on Anthropic's side, but your internal pipeline rotates it on your schedule. This matches the posture Anthropic recommends for secrets-manager users.
30-day or custom bounded expiration: Appropriate when you want a hard upper bound on leaked credential lifetime even if your secrets manager fails or a rotation job silently errors out. The downside is that your routing infrastructure must handle key rotation as a live operation — updating the key in your gateway config without a request-dropping restart.
Short-lived keys (hours/days) for automation: Appropriate for CI pipelines, batch jobs, or any non-interactive workload where the key is injected at job start and discarded at job end. These keys complement — rather than replace — Workload Identity Federation, which eliminates static keys entirely for workloads that already have a platform-issued OIDC identity.
What TheRouter users should watch or try
If you are routing Claude API requests through TheRouter, your key rotation policy determines how long a leaked gateway credential stays usable. The Admin API expires_at field gives you the data needed to build an automated rotation-ahead check:
- Use the Admin API to confirm
expires_aton your active Claude keys. - If you use
Never-expiring keys, pair them with a secrets manager rotation schedule and a hard revocation playbook for suspected leaks. - For gateway deployments where key rotation requires a config update, test a zero-downtime key swap before your production key's first expiration hits — especially if you are running keys shorter than 30 days.
The OpenAI keyless auth and Admin API governance story from May 26 covered similar themes for the OpenAI side. Anthropic's July 8 change now gives Claude operators an equivalent credential lifecycle signal via the Admin API.

Anthropic Maps 832 AI Attacks to MITRE ATT&CK — New API Security Risk Model
Anthropic analyzed 832 malicious accounts across 14 MITRE ATT&CK tactics and 13,873 attack actions. The new ARiES risk framework redefines how API operators should detect, govern, and rate-limit agentic threats — starting with the interface your users connect through.

Claude Opus 5.5: Four Breaking API Changes and What They Mean for Your Routing Setup
Four breaking changes in Claude Opus 5.5: thinking can't be disabled, forced tool_choice returns 400, thinking blocks don't cross non-Fable/Mythos models, and computer_20251124 is gone. Each has a specific fix — three carry fallback routing implications the announcement skips.

OpenAI API Key Creation Governance: How Service-Account-Only Enforcement Closes the Shadow-Routing Gap
OpenAI's new org-level key creation controls let admins enforce service-account-only, project-keys-only, or disable all key creation. The first structural control that prevents shadow routing via personal API keys.