← All articles

Claude API Key Governance and Enterprise Security Guide: Key Expiration, Admin API, Compliance API, and HIPAA (2026)

A comprehensive guide to Anthropic's enterprise governance features for the Claude API — API key expiration, the Admin API for user and workspace management, the Compliance API for audit logs and SIEM integration, self-serve HIPAA BAA configuration, and how to integrate these controls into your routing layer.

· TheRouter

Anthropic shipped four major governance features between July 8–14, 2026 that every team running Claude API workloads in production needs to evaluate: API key expiration, the Admin API for user and workspace management, expanded Access Transparency with CMEK preservation reason codes, and self-serve HIPAA BAA configuration. This guide consolidates all of them into a single reference — the checklist we wished existed when we integrated Anthropic into our routing layer.

If you're already calling the Claude API but haven't set up key rotation, don't have programmatic user management, or haven't considered compliance audit trails, this guide walks through each feature with API examples and a production checklist at the end.

What Changed: Four Governance Features in One Week

Before diving into implementation, here's the timeline of what Anthropic shipped:

DateFeatureImpact
July 8, 2026API key expiration settings in Claude ConsoleKeys can now expire automatically; email reminders sent 7+ days before expiry
July 10, 2026Access Transparency expansioncmek_preserve events now include policy_violation_investigation and csae_report reason codes with filter examples
July 14, 2026Admin API user management (beta)Programmatic member listing, role changes, invite management, RBAC groups for Enterprise orgs
July 14, 2026Self-serve HIPAA configurationPrimary Owners can accept BAA and enable HIPAA readiness directly in organization settings

Sources: Anthropic Claude Developer Platform release notes (retrieved 2026-07-22), Releasebot changelog (retrieved 2026-07-22).

Setting Up API Key Expiration

The Problem

Before July 8, 2026, Claude API keys had no built-in expiration. Once created, a key remained valid until manually revoked. This creates three risks:

  1. Stale keys — engineers who leave the team retain working credentials until someone remembers to revoke them
  2. No rotation incentive — without expiry, key rotation becomes a process problem rather than a technical one
  3. Audit gaps — compliance frameworks (SOC 2, ISO 27001) expect key lifecycle controls; "never expires" is a finding

How It Works

When creating a new API key or Admin API key in the Claude Console, you now see expiration options:

  • Preset durations — 30 days, 90 days, 180 days, 1 year
  • Custom duration — any period you specify
  • Never — the legacy behavior (still available but not recommended)

For keys with a lifetime of at least 7 days, Anthropic emails the creator before the key expires. The Admin API reports each key's expiration in the expires_at field, which means your key inventory tooling can programmatically detect upcoming expirations.

import httpx

ADMIN_KEY = "sk-ant-admin01-..."
headers = {
    "Authorization": f"Bearer {ADMIN_KEY}",
    "anthropic-version": "2023-06-01",
}

# List all API keys and check for expiring keys
resp = httpx.get(
    "https://api.anthropic.com/v1/organizations/api_keys",
    headers=headers,
)
for key in resp.json()["data"]:
    if key.get("expires_at"):
        print(f"Key {key['id']} expires at {key['expires_at']}")

What to Do Now

  1. Audit existing keys — existing keys are unaffected by this change, so you need to manually set expiration or rotate to new keys with expiry
  2. Set a policy — we recommend 90-day expiration for production keys and 30 days for development
  3. Automate rotation — use the Admin API's expires_at field to trigger key replacement before expiry

The Admin API: Programmatic User and Workspace Management

Anthropic's Admin API has approximately 22 endpoints across organization management, workspaces, members, API keys, and usage reporting. The July 14, 2026 update added user-management capabilities for Claude Enterprise organizations (in beta).

Core Endpoints

The Admin API is organized into these resource groups:

ResourceOperationsNotes
OrganizationsGet current orgReturns org id, name, type
MembersList, get by email, update role, removeBeta for Enterprise; requires Admin API key
InvitesCreate, get, list, deleteSupports RBAC group assignment on invite
API KeysList, get, update, deleteReports expires_at for expiration tracking
WorkspacesCreate, list, get, update, archiveScoped resource isolation
Workspace MembersAdd, list, get, update, removePer-workspace role assignment
UsageQuery usage dataFor billing and cost governance

Authentication

Admin API calls use an Admin API key (created in the Console under Settings → Admin API Keys), not a regular API key. Admin keys support scoped permissions:

  • read:org_audit — read-only access to org data; also grants access to all user-management GET endpoints
  • write:members — create/update/remove members and invites
  • write:rbac_groups — manage RBAC groups and membership (Enterprise beta, requires anthropic-beta: ce-user-management-2026-07-13 header)
# List organization members
curl https://api.anthropic.com/v1/organizations/members \
  -H "anthropic-version: 2023-06-01" \
  -H "Authorization: Bearer $ANTHROPIC_ADMIN_KEY"

# Invite a new user with a specific role
curl https://api.anthropic.com/v1/organizations/invites \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -H "Authorization: Bearer $ANTHROPIC_ADMIN_KEY" \
  -d '{
    "email": "engineer@company.com",
    "role": "developer"
  }'

Roles

The Admin API supports these roles, depending on organization type:

  • Console/API organizations: user, developer, billing, claude_code_user (note: admin cannot be assigned via the API)
  • Claude Enterprise organizations (beta): user, managed

Additional roles exist (admin, owner, primary_owner, membership_admin) but are set through the Console UI rather than the API.

RBAC Groups (Enterprise Beta)

For Claude Enterprise organizations, the Admin API now supports RBAC groups — you can assign group IDs when creating invites, and manage group membership programmatically. This requires the beta header:

curl https://api.anthropic.com/v1/organizations/invites \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: ce-user-management-2026-07-13" \
  -H "Authorization: Bearer $ANTHROPIC_ADMIN_KEY" \
  -d '{
    "email": "engineer@company.com",
    "role": "user",
    "rbac_group_ids": ["group_01abc..."]
  }'

The Compliance API and Access Transparency

Compliance API

Anthropic's Compliance API is a REST API that gives enterprise IT and security teams programmatic access to Claude activity data. It covers:

  • Authentication events — login, logout, key creation
  • User activity logs — conversation content (with appropriate permissions)
  • Administrative changes — role modifications, workspace updates
  • API usage data — model calls, token consumption

The Compliance API integrates with major SIEM platforms. As of May 2026, Anthropic has published 28 security and compliance integrations, including connectors for Datadog and CrowdStrike Falcon.

Source: HelpNetSecurity — Anthropic adds 28 security and compliance integrations (retrieved 2026-07-22), CrowdStrike — New Claude Integration (retrieved 2026-07-22).

Access Transparency: CMEK Preservation Events

For organizations using Customer-Managed Encryption Keys (CMEK), Access Transparency logs document when Anthropic accesses preserved content and why. The July 10, 2026 update added:

  • Two new preservation reason codes: policy_violation_investigation and csae_report
  • Filter examples for querying specific event types
  • Example event payloads showing the full structure of cmek_preserve events
  • Clarification that preservation events are written whether triggered by a human reviewer or an automated safety pipeline

This is relevant for organizations in regulated industries (finance, healthcare, government) where you need to demonstrate that customer data access by the provider is logged and justified.

Source: Anthropic Claude Developer Platform release notes, July 10, 2026 (retrieved 2026-07-22).

Self-Serve HIPAA Configuration

Before July 14, 2026, setting up HIPAA readiness required contacting Anthropic's sales team. Now, for both Claude Enterprise and Claude Platform (API) organizations, an eligible admin can:

  1. Review the Business Associate Agreement (BAA) directly in the Console
  2. Download the implementation guide covering eligible and non-eligible features
  3. Enable HIPAA configuration in a single flow under Data and Privacy in organization settings

What's Covered Under the BAA

The BAA covers core Claude Enterprise features — Chat, Projects, Artifacts, file creation and code execution (excluding network access), Voice, Web Search, Research, and Skills. Claude Code CLI is covered only with Zero Data Retention (ZDR) enabled.

What's not covered (or conditionally covered):

  • MCPs / Connectors — available but data sent to third parties isn't covered
  • Enterprise Search / "Ask Your Org" — same caveat for third-party data
  • Claude Cowork — not covered under BAA
  • Claude Design — beta, not covered
  • Claude Code via OAuth — covered only with ZDR enabled

Source: Anthropic BAA documentation (retrieved 2026-07-22).

Key Constraint

The BAA covers only the single organization that accepted it. If you run multiple Claude organizations, each needs its own BAA acceptance. Beta features are explicitly excluded.

OpenAI-compatible means a provider exposes a chat-completions endpoint whose request and response shape matches the OpenAI API contract closely enough that an unmodified OpenAI SDK call works against it after swapping three values: API key, base URL, and model name. The minimum surface in practice is POST /v1/chat/completions with messages, model, and an OpenAI-shaped streaming response.

Common Errors and Fixes

ErrorCauseFix
401 Unauthorized on Admin API callUsing a regular API key instead of an Admin API keyCreate an Admin API key under Settings → Admin API Keys
400 when assigning admin role via APIThe admin role cannot be set through the APIAssign admin roles in the Console UI
400 when creating invite with RBAC groupsMissing beta header or non-Enterprise orgAdd anthropic-beta: ce-user-management-2026-07-13 header; verify you're on Enterprise
403 on user-management GET with audit keyAudit-scoped keys need read:org_audit scopeVerify key scope in Console
Expired key returns 401Key passed its expires_at dateRotate to a new key with fresh expiration
HIPAA enable failsUser is not Primary OwnerOnly the Primary Owner can accept the BAA

Production Checklist

Use this checklist to verify your Claude governance posture:

API Key Lifecycle

  • All production API keys have an expiration set (≤90 days recommended)
  • Automated monitoring checks expires_at from the Admin API weekly
  • Key rotation runbook exists and has been tested
  • Development keys use 30-day expiration
  • Legacy non-expiring keys are inventoried and scheduled for rotation

Admin API

  • Admin API key created with minimum required scopes
  • Admin API key stored in secrets manager (not in code, not in env files on laptops)
  • Member provisioning automated for onboarding/offboarding
  • Invite workflow integrates with your identity provider
  • Workspace isolation configured for team/project boundaries

Compliance and Audit

  • Compliance API connected to your SIEM
  • Access Transparency events monitored for cmek_preserve reason codes
  • Retention policy configured for compliance data
  • Alert rules set for unusual authentication events

HIPAA (If Applicable)

  • Primary Owner has accepted BAA in organization settings
  • Implementation guide reviewed and filed
  • ZDR enabled for Claude Code CLI usage
  • Beta features identified and excluded from PHI workflows
  • Third-party connectors (MCPs, Enterprise Search) assessed for PHI exposure

TheRouter Integration

When you route Claude requests through an OpenAI-compatible gateway, the upstream API key lifecycle now matters more than before. Here's what to keep in mind:

Key rotation: If your gateway uses a static Anthropic API key, configure your key rotation automation to update the gateway's key store before the key expires. A failed rotation means all Claude-routed traffic returns 401 errors until a valid key is configured.

Fallback routing: Expiring keys add another failure mode to plan for. If you use model fallback routing to reroute requests when a provider returns errors, expired-key 401s will trigger your fallback path — which is correct behavior, but you should distinguish between "upstream outage" and "our key expired" in your monitoring.

Audit consolidation: The Compliance API gives you Anthropic-side audit data. Combine this with your gateway's request logs to build a complete picture — gateway logs show which user/team triggered the request, Compliance API logs show what Anthropic saw and how it was processed.

FAQ

Does API key expiration apply to existing keys? No. Existing keys are unaffected. You need to manually rotate to new keys with expiration set, or continue using non-expiring keys (not recommended for production).

Can I set key expiration via the Admin API? You can read the expires_at field from the Admin API to monitor expiration, but key creation with expiration is currently done through the Console UI.

Is the Admin API user management available on all plans? The core Admin API (organizations, API keys, workspaces) is available for API/Console organizations. The user management endpoints (members, invites, RBAC groups) are in beta for Claude Enterprise organizations specifically.

What's the difference between the Admin API and the Compliance API? The Admin API manages your organization — users, keys, workspaces, usage data. The Compliance API provides audit trails and activity logs for security and compliance purposes. They serve different personas: the Admin API is for platform engineers and IT admins, the Compliance API is for security teams and compliance officers.

Do I need Enterprise to use HIPAA configuration? No. Both Claude Enterprise and Claude Platform (API) organizations support self-serve HIPAA configuration. However, the scope of BAA coverage differs — check the implementation guide for your plan.

Further Reading

Models covered in this article

Help & contact