Anthropic
| Version | 1.1.2 (View all) |
| Managed integration release status |
|
| Subscription level What's this? |
Basic |
| Developed by What's this? |
Elastic |
| Ingestion method(s) | API |
| Minimum Kibana version(s) | 9.1.0 8.19.0 |
You can use this integration as an Elastic Managed integration on Elastic Cloud Hosted deployments running this version or later.
The Anthropic integration collects compliance activity logs from Claude's Compliance API. Claude Enterprise, Team, and Claude Platform organizations generate audit events for security-relevant activities such as user authentication, organization administration, role and permission changes, API key lifecycle, Claude.ai and Claude Code usage, MCP server configuration, billing updates, and Compliance API access. This integration enables security and compliance teams to monitor administrative activity, detect unauthorized changes, and maintain an audit trail of organization operations in Elasticsearch and Kibana.
This integration requires a Claude Enterprise, Team, or Claude Platform organization with the Compliance API enabled. Individual and consumer accounts cannot create the required API keys.
The integration polls the Anthropic Activity Feed at https://api.anthropic.com/v1/compliance/activities on a configurable schedule. Authentication requires the read:compliance_activities scope, which can be carried by either a Compliance Access Key (sk-ant-api01-...) or an Admin API Key (sk-ant-admin01-...).
The Anthropic integration collects compliance activity events covering 300+ activity types across these categories:
- Authentication events: Sign-ins, sign-outs, magic links, social login, and mobile login attempts.
- Organization administration: Organization settings, domains, invites, member management, data exports, IP restrictions, HIPAA settings, and parent/child organization relationships.
- Access control and RBAC: Role assignments, group membership, SSO and SCIM provisioning, directory sync, and workspace permissions.
- API key management: Admin API keys, platform API keys, and user API keys — creation, updates, and deletion.
- Claude.ai content: Chat lifecycle, artifacts, projects, file uploads, and sharing settings.
- Claude Code and security: Code review configuration, security scans, webhooks, and repository settings.
- MCP and integrations: MCP server configuration, connector requests, and desktop extension activity.
- Billing and subscription: Payment methods, billing emails, usage limits, and subscription changes.
- Compliance API usage: Access to the Compliance API itself via
compliance_api_accessedevents.
- Security monitoring: Track sign-ins, API key creation, RBAC changes, SSO/SCIM provisioning, and privileged admin actions on the Anthropic organization.
- Compliance auditing: Retain a queryable, ECS-aligned record of organization-level changes for regulatory and internal-review requirements.
- Operational visibility: Monitor Claude.ai and Claude Code usage patterns, MCP server changes, and billing configuration updates.
- Incident investigation: Correlate audit events with actor identity, organization context, and timestamps to investigate security incidents.
- A Claude Enterprise, Team, or Claude Platform organization with the Compliance API enabled.
- An Admin API Key or Compliance Access Key with the
read:compliance_activitiesscope. - Elastic Agent installed on a host with outbound HTTPS access to
api.anthropic.com.
For the full Anthropic-side setup, see Get access to the Compliance API.
Compliance API access is enabled on request by Anthropic. Contact your Anthropic representative to request enablement for your parent organization. After enablement:
- claude.ai organizations (Claude Enterprise): a Compliance access keys section appears at claude.ai → Organization settings → Data and privacy.
- Claude Console organizations: Admin API keys created after enablement automatically carry the
read:compliance_activitiesscope. Admin API keys created before enablement cannot call the Activity Feed and must be recreated.
This integration reads the Activity Feed only, so either key type in the following table works as long as it carries read:compliance_activities. Choose the key type that matches your organization:
| Key type | Created by | Where to create | Key prefix |
|---|---|---|---|
| Compliance Access Key | Primary owner | claude.ai → Organization settings → Data and privacy | sk-ant-api01-... |
| Admin API Key | Organization admin | Claude Console → Settings → Admin keys | sk-ant-admin01-... |
Claude Enterprise parent organizations do not appear in Claude Console. If your organization uses claude.ai, create a Compliance Access Key there rather than an Admin API Key in Claude Console.
- Sign in to claude.ai as the primary owner of the parent organization.
- Go to Organization settings → Data and privacy and find the Compliance access keys section.
- Click Create key, name the key, and select the
read:compliance_activitiesscope. This is the minimum scope required for this integration. - Click Create and copy the secret key immediately. Anthropic displays the full secret only once.
- Sign in to Claude Console as an organization admin.
- Go to Settings → Admin keys.
- Click Create key, name the key, and click Create.
- Copy the secret key immediately. Anthropic displays the full secret only once.
Admin API keys receive read:compliance_activities only when the Compliance API was enabled for the organization before the key was created. If you receive HTTP 403 errors, create a new Admin API Key after confirming Compliance API access is enabled.
Elastic Agent must be installed. For more details, check the Elastic Agent installation instructions. You can install only one Elastic Agent per host.
Elastic Agent polls the Anthropic Compliance API and ships collected events to Elasticsearch, where they are processed by the integration's ingest pipeline.
Elastic Managed deployments are only supported in Elastic Serverless and Elastic Cloud environments. This functionality is in beta and is subject to change. Refer to Elastic Managed integrations for more information.
Elastic Managed integrations allow you to collect data without having to manage Elastic Agent in your cloud. They make manual agent deployment unnecessary, so you can focus on your data instead of the underlying agent infrastructure.
To use an Elastic Managed deployment, select Anthropic in Management → Integrations, click Add Anthropic, and choose the Elastic Managed option when configuring the integration. Provide the Compliance Access Key or Admin API Key as described in Onboard / configure; Elastic manages the underlying collection infrastructure for you.
Complete the Anthropic-side setup before deploying — request Compliance API access and create an API key with the read:compliance_activities scope. See Get access to the Compliance API for key types, scope details, and rotation guidance.
- In Kibana, navigate to Management → Integrations and search for Anthropic.
- Click Add Anthropic and enter the Compliance Access Key or Admin API Key you created.
- Configure the polling interval (default: 5 minutes). The default initial lookback is 24 hours.
- Optionally filter collection by activity type, actor ID, or organization ID to scope events to specific users, event types, or child organizations.
- Save the integration policy and assign it to the Elastic Agent policy that should collect Anthropic data.
After deploying the integration:
- Wait one polling interval (default 5 minutes).
- In Kibana, open Discover and filter for
data_stream.dataset: "anthropic.audit". - Verify that events are being ingested with populated
@timestamp,event.action, and actor fields. - Generate an Anthropic admin action (for example, sign in to the console or create an API key) and confirm a corresponding event appears within roughly one polling interval.
For help with Elastic ingest tools, check Common problems.
HTTP 401 (authentication_error): The API key is invalid or has been revoked. Create a new key and update the integration policy.
HTTP 403 (permission_error): The key does not have the read:compliance_activities scope, or Compliance API access is not enabled on the organization. Re-enable Compliance API, recreate the key, and update the policy.
HTTP 429 (rate_limit_error): The parent organization has exceeded the Compliance API limit of 600 requests per minute (shared across all keys). Increase the polling interval or reduce the number of integration policies pointing at the same parent organization.
No new events: Check Elastic Agent logs for request errors and verify the API key and integration policy settings are correct.
For more information on architectures that can be used for scaling this integration, check the Ingest Architectures documentation.
The Compliance API rate limit of 600 requests per minute is enforced per Anthropic parent organization and shared across every key. Multiple Elastic deployments pulling from the same parent organization compete for this budget. For multi-tenant collection, configure one integration policy per Anthropic parent organization.
The audit data stream collects compliance activity events from the Anthropic Compliance API. It produces one document per activity, covering authentication, organization administration, RBAC, API key lifecycle, Claude.ai and Claude Code content, MCP servers, billing, and Compliance API access.
Exported fields
| Field | Description | Type |
|---|---|---|
| @timestamp | Date/time when the event originated. This is the date/time extracted from the event, typically representing when the event was generated by the source. If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events. | date |
| anthropic.audit.access_level | Access level as reported in the activity payload. | keyword |
| anthropic.audit.account_id | Account id as reported in the activity payload. | keyword |
| anthropic.audit.action | Action as reported in the activity payload. | keyword |
| anthropic.audit.actor.admin_api_key_id | Admin API key ID for admin API key actors. | keyword |
| anthropic.audit.actor.api_key_id | API key ID for API actors. | keyword |
| anthropic.audit.actor.directory_id | Directory ID for SCIM directory sync actors. | keyword |
| anthropic.audit.actor.idp_connection_type | IdP connection type for SCIM directory sync actors. | keyword |
| anthropic.audit.actor.type | Actor type that indicates which other actor fields are present (for example, user_actor, api_actor, or admin_api_key_actor). |
keyword |
| anthropic.audit.actor.workos_event_id | WorkOS event ID for SCIM directory sync actors. | keyword |
| anthropic.audit.added_seats | Added seats as reported in the activity payload. | long |
| anthropic.audit.admin_api_key_id | Admin API key ID on admin key lifecycle activities. | keyword |
| anthropic.audit.alert_emails | Alert emails as reported in the activity payload. | keyword |
| anthropic.audit.alerted_roles | Alerted roles as reported in the activity payload. | keyword |
| anthropic.audit.algorithm | Algorithm as reported in the activity payload. | keyword |
| anthropic.audit.amount | Amount as reported in the activity payload. | long |
| anthropic.audit.api_key_id | API key ID on API-access activity types. | keyword |
| anthropic.audit.api_key_name | Api key name as reported in the activity payload. | keyword |
| anthropic.audit.approved | Approved as reported in the activity payload. | boolean |
| anthropic.audit.artifact_type | Artifact MIME type on Claude artifact activities. | keyword |
| anthropic.audit.audience | Audience as reported in the activity payload. | flattened |
| anthropic.audit.auth_method | Auth method as reported in the activity payload. | keyword |
| anthropic.audit.baa_content_hash | Baa content hash as reported in the activity payload. | keyword |
| anthropic.audit.baa_version_label | Baa version label as reported in the activity payload. | keyword |
| anthropic.audit.billing_address_updated | Billing address updated as reported in the activity payload. | boolean |
| anthropic.audit.billing_interval | Billing interval as reported in the activity payload. | keyword |
| anthropic.audit.billing_name_updated | Billing name updated as reported in the activity payload. | boolean |
| anthropic.audit.cadence | Cadence as reported in the activity payload. | keyword |
| anthropic.audit.cc_email_count | Cc email count as reported in the activity payload. | long |
| anthropic.audit.claude_artifact_id | Claude artifact id as reported in the activity payload. | keyword |
| anthropic.audit.claude_artifact_version_id | Claude artifact version id as reported in the activity payload. | keyword |
| anthropic.audit.claude_chat_id | Claude chat ID on chat lifecycle activities. | keyword |
| anthropic.audit.claude_chat_snapshot_id | Claude chat snapshot id as reported in the activity payload. | keyword |
| anthropic.audit.claude_file_id | Claude file id as reported in the activity payload. | keyword |
| anthropic.audit.claude_project_document_id | Claude project document id as reported in the activity payload. | keyword |
| anthropic.audit.claude_project_id | Claude project ID on chat lifecycle activities. | keyword |
| anthropic.audit.claude_published_artifact_id | Published artifact ID on Claude artifact activities. | keyword |
| anthropic.audit.cli_name | Cli name as reported in the activity payload. | keyword |
| anthropic.audit.command_id | Command id as reported in the activity payload. | keyword |
| anthropic.audit.command_name | Command name as reported in the activity payload. | keyword |
| anthropic.audit.compliance_api_enabled | Compliance api enabled as reported in the activity payload. | boolean |
| anthropic.audit.compliance_api_logging_enabled | Compliance api logging enabled as reported in the activity payload. | boolean |
| anthropic.audit.config_id | Configuration ID on integration configuration activities. | keyword |
| anthropic.audit.connection_id | Connection id as reported in the activity payload. | keyword |
| anthropic.audit.connection_type | Connection type as reported in the activity payload. | keyword |
| anthropic.audit.consent_id | Consent id as reported in the activity payload. | keyword |
| anthropic.audit.consent_type | Consent type as reported in the activity payload. | keyword |
| anthropic.audit.current_role | Current role as reported in the activity payload. | keyword |
| anthropic.audit.current_value | Current value as reported in the activity payload. | keyword |
| anthropic.audit.current_version | Current version as reported in the activity payload. | long |
| anthropic.audit.decision | Decision as reported in the activity payload. | keyword |
| anthropic.audit.domain | Domain name on organization domain activities. | keyword |
| anthropic.audit.enabled | Enabled as reported in the activity payload. | boolean |
| anthropic.audit.entity_id | Entity id as reported in the activity payload. | keyword |
| anthropic.audit.entity_type | Entity type as reported in the activity payload. | keyword |
| anthropic.audit.environment_id | Environment id as reported in the activity payload. | keyword |
| anthropic.audit.extension_id | Extension id as reported in the activity payload. | keyword |
| anthropic.audit.federation_issuer_id | Federation issuer id as reported in the activity payload. | keyword |
| anthropic.audit.federation_rule_id | Federation rule id as reported in the activity payload. | keyword |
| anthropic.audit.file_id | File id as reported in the activity payload. | keyword |
| anthropic.audit.folder_id | Folder id as reported in the activity payload. | keyword |
| anthropic.audit.from_date | Lower bound of the date window referenced by the activity payload (for example, an audit log export's from_date). |
date |
| anthropic.audit.ghe_configuration_id | GitHub Enterprise configuration ID on GHE integration activities. | keyword |
| anthropic.audit.github_webhook_id | GitHub-assigned webhook ID returned by the activity payload. The Compliance API returns this as a number; it is stored as a keyword identifier. | keyword |
| anthropic.audit.group_id | Group id as reported in the activity payload. | keyword |
| anthropic.audit.group_name | Group name as reported in the activity payload. | keyword |
| anthropic.audit.idp_saml_config_updated | Idp saml config updated as reported in the activity payload. | boolean |
| anthropic.audit.ignore | Ignore as reported in the activity payload. | boolean |
| anthropic.audit.installation_preference | Installation preference as reported in the activity payload. | keyword |
| anthropic.audit.integration_id | Integration id as reported in the activity payload. | keyword |
| anthropic.audit.integration_type | Integration type as reported in the activity payload. | keyword |
| anthropic.audit.invite_id | Invite ID on organization user invite activities. | keyword |
| anthropic.audit.invited_role | Invited user role on organization user invite activities. | keyword |
| anthropic.audit.is_enabled | Is enabled as reported in the activity payload. | boolean |
| anthropic.audit.is_service_created | Is service created as reported in the activity payload. | boolean |
| anthropic.audit.item_allocations | Item allocations as reported in the activity payload. | flattened |
| anthropic.audit.key_backing_type | Key backing type as reported in the activity payload. | keyword |
| anthropic.audit.key_group_identifier | Key group identifier as reported in the activity payload. | keyword |
| anthropic.audit.key_name | Key name as reported in the activity payload. | keyword |
| anthropic.audit.limit_action | Limit action as reported in the activity payload. | keyword |
| anthropic.audit.limit_type | Limit type as reported in the activity payload. | keyword |
| anthropic.audit.limit_usd | Limit usd as reported in the activity payload. | long |
| anthropic.audit.limiter_type | Limiter type as reported in the activity payload. | keyword |
| anthropic.audit.lti_platform_id | Lti platform id as reported in the activity payload. | keyword |
| anthropic.audit.lti_platform_issuer | Lti platform issuer as reported in the activity payload. | keyword |
| anthropic.audit.magic_link_enabled | Magic link enabled as reported in the activity payload. | boolean |
| anthropic.audit.magic_link_toggled | Magic link toggled as reported in the activity payload. | boolean |
| anthropic.audit.marketplace_id | Marketplace id as reported in the activity payload. | keyword |
| anthropic.audit.max_permission | Max permission as reported in the activity payload. | keyword |
| anthropic.audit.mcp_server_id | MCP server ID on MCP server lifecycle activities. | keyword |
| anthropic.audit.mcp_server_name | MCP server name on MCP server lifecycle activities. | keyword |
| anthropic.audit.member_ids | Member ids as reported in the activity payload. | keyword |
| anthropic.audit.metadata | Catch-all for any unmapped top-level activity field (forward-compat safety net; expected to be empty for the documented activity set). | flattened |
| anthropic.audit.mfa_method | Mfa method as reported in the activity payload. | keyword |
| anthropic.audit.model | Model as reported in the activity payload. | keyword |
| anthropic.audit.model_group | Model group as reported in the activity payload. | keyword |
| anthropic.audit.new_collection_method | New collection method as reported in the activity payload. | keyword |
| anthropic.audit.new_limit_usd | New limit usd as reported in the activity payload. | long |
| anthropic.audit.new_mode | New mode as reported in the activity payload. | keyword |
| anthropic.audit.new_owner_id | New owner id as reported in the activity payload. | keyword |
| anthropic.audit.new_plan | New plan as reported in the activity payload. | keyword |
| anthropic.audit.new_quantity | New quantity as reported in the activity payload. | long |
| anthropic.audit.new_signing_key_id | New signing key id as reported in the activity payload. | keyword |
| anthropic.audit.old_plan | Old plan as reported in the activity payload. | keyword |
| anthropic.audit.old_signing_key_id | Old signing key id as reported in the activity payload. | keyword |
| anthropic.audit.op_name | Op name as reported in the activity payload. | keyword |
| anthropic.audit.org_id | Org id as reported in the activity payload. | keyword |
| anthropic.audit.organization_uuid | Deprecated organization UUID associated with the activity, when present. | keyword |
| anthropic.audit.per_review_limit_usd | Per review limit usd as reported in the activity payload. | keyword |
| anthropic.audit.plan_type | Plan type as reported in the activity payload. | keyword |
| anthropic.audit.plugin_id | Plugin id as reported in the activity payload. | keyword |
| anthropic.audit.plugin_name | Plugin name as reported in the activity payload. | keyword |
| anthropic.audit.preview_only | Preview only as reported in the activity payload. | boolean |
| anthropic.audit.previous_mode | Previous mode as reported in the activity payload. | keyword |
| anthropic.audit.previous_owner_id | Previous owner id as reported in the activity payload. | keyword |
| anthropic.audit.previous_quantity | Previous quantity as reported in the activity payload. | long |
| anthropic.audit.previous_role | Previous role as reported in the activity payload. | keyword |
| anthropic.audit.previous_value | Previous value as reported in the activity payload. | keyword |
| anthropic.audit.previous_version | Previous version as reported in the activity payload. | long |
| anthropic.audit.primary_email_set | Primary email set as reported in the activity payload. | boolean |
| anthropic.audit.principal_id | Principal ID on RBAC role assignment activities. |