Setting up enterprise AI governance add-ons
This article covers the credentials, installation, and configuration steps for three add-ons you can use with the Splunk platform to monitor enterprise AI platforms, explained in Monitoring and governing enterprise AI platforms. For what you can do with the data after it lands, see Monitoring enterprise AI security, compliance, and spend.
| Your situation | Install |
|---|---|
| Claude Enterprise, and you want the deepest security, governance, and spend view for it | Anthropic Claude Enterprise Add-on for Splunk (add-on download / instructions) |
| ChatGPT Enterprise, and you need its compliance logs in the Splunk platform | OpenAI Compliance Add-on for Splunk (add-on download / instructions) |
| More than one AI platform, and you need one normalized schema across all of them | Enterprise AI Governance Add-on for Splunk (add-on download / instructions) |
The most common setup failure is using a member-level key where an admin-level key is required. Every credential listed below is administrator-level and read-only.
Anthropic Claude Enterprise Add-on for Splunk
This add-on polls Anthropic's Compliance API, Enterprise Analytics API, and Admin API at https://api.anthropic.com, and includes three dashboards:
- Claude Enterprise – Security Audit
- Claude Enterprise – Governance
- Claude Enterprise – Usage & Spend Analytics.
Requirements
- Splunk Enterprise 9.x or 10.x, or Splunk Cloud Platform (Victoria or Classic). The package passes AppInspect with the
cloud,private_victoria, andprivate_classictag sets. - A Claude Enterprise organization.
- An enterprise API key created by a Claude Enterprise admin in the Anthropic Console. Scopes are selected when the key is created, so grant the ones covering the inputs you plan to use.
- Outbound HTTPS from the collection tier to
https://api.anthropic.com, directly or through the optional per-account proxy.
| Scope | Used by |
|---|---|
read:compliance_activities |
Compliance Activity Feed input |
read:compliance_user_data, read:compliance_org_data |
Compliance Directory Sync and Content Export inputs |
read:analytics |
Analytics Reports input |
read:spend_limits |
Spend-limit panels and reports |
read:members, read:rbac_groups |
Admin API directory fallback |
A single key carrying every read scope is the simplest setup. Enter it as the Compliance API key and leave the Analytics key field blank, and the compliance key is reused automatically. Separate keys per concern also work.
Installing the add-on
Download the latest release and install it through Apps → Manage Apps → Install app from file on Splunk Enterprise, or through the self-service app install flow or Admin Config Service (ACS) on Splunk Cloud Platform.
| Tier | Install | Why |
|---|---|---|
| Search head | Yes | Dashboards, macros, search-time props, saved searches |
| Heavy forwarder, IDM, or inputs tier | Yes | Data collection. Enable inputs only here. |
| Indexers | Optional | Index-time settings are minimal; needed only if events arrive raw. |
| Universal forwarder | No | Not applicable. |
On a single instance, one installation does everything.
Creating an index
Create a dedicated events index for the data. This guide uses claude.
Adding the account
In the add-on, go to Configuration → Account → Add. Give the account a name and paste your API key or keys. Keys are stored encrypted in the platform's credential store and are never written to logs. An HTTPS proxy URL can be set per account if provider traffic has to leave through your egress proxy.
Creating inputs
Go to Inputs → Create New Input and create the inputs you need. Set Index on every input to the index you created.
| Input | What it collects | Suggested interval |
|---|---|---|
| Compliance Activity Feed | The audit trail: chats, files, artifacts, invitations, admin changes, access failures | 300–3600 seconds |
| Compliance Directory Sync | Users, organization, and group snapshots. Tries the Compliance directory API, then falls back to the Admin API automatically. | 43200–86400 seconds |
| Analytics Reports | Adoption summaries, usage and cost by product and model, per-user usage, cost and activity, spend limits | 86400 seconds |
| Compliance Content Export | On-demand chat and file content for eDiscovery-style requests | On demand |
The Compliance Content Export input collects end-user conversation content. Enable it only if your organization's policy allows, and restrict access to the target index with role-based access controls.
Scoping the search macro
Go to Settings → Advanced search → Search macros and change the claude_index macro from its default of index=* to index=claude. Every dashboard and saved search in the add-on reads through this macro.
Verifying data is flowing
Wait one collection interval, then run:
sourcetype="anthropic:compliance:activity" earliest=-24h
The activity feed populates first. Analytics data is finalized by Anthropic with a lag of roughly three days, so the Usage & Spend Analytics dashboard will look empty on a Last 24 hours range even when everything is configured correctly. Check it on Last 7 days or Last 30 days.
If nothing appears, check the add-on's internal logs with index=_internal source=*anthropic_claude* (ERROR OR WARNING). A 401 or 403 means the key in use is missing a scope or was pasted incorrectly; the error message names the missing scope. Note that the Analytics key field overrides the compliance key when set, so clear it if it holds an old key. To force an immediate collection, disable the input and enable it again.
OpenAI Compliance Add-on for Splunk
This add-on ingests data from an enterprise ChatGPT workspace through the OpenAI Compliance API. It reaches a broader set of that API than the Enterprise AI Governance Add-on does (Canvases, GPTs, Projects, Codex logs, and conversation messages), and provides inputs and source types for the searches, reports, and correlation rules you build yourself rather than including dashboards of its own.
If you want OpenAI activity on dashboards, that comes from the Enterprise AI Governance Add-on's openai_compliance and openai_audit inputs, covered below. Note that the two add-ons collect independently and write different source types (openai:compliance:* here, aigov:openai:* there), so running both against the same workspace collects that data twice. Choose one as the collection path for any given event type unless you have a reason to keep both.
Requirements
- An enterprise ChatGPT account. The OpenAI Compliance API is available only to enterprise administrators.
- An API key generated by your organization administrator for the workspace you want to collect from. Review the OpenAI Compliance API documentation. Additional steps might be required to grant the key full API access.
- The workspace ID for that workspace.
Installing the add-on
Follow the standard Splunk add-on installation documentation for your deployment type:
- Install an add-on in a single-instance Splunk Enterprise deployment
- Install an add-on in a distributed Splunk Enterprise deployment
- Install an add-on in Splunk Cloud Platform
Download the packaged app from the releases page.
Adding the account
Open Splunk Web on the heavy forwarder or Inputs Data Manager (IDM), open the add-on, and go to Configuration → Account → Add. Enter the following:
- Account name. A unique name for this account.
- Workspace id. The workspace you want to collect data from.
- API key. The key generated for that workspace.
- Base URL.
api.chatgpt.comfor standard enterprise accounts, orgov.api.openai.comfor FedRAMP accounts. A custom value can be typed directly.
Creating inputs
The add-on has two input types. Both implement checkpointing to avoid duplicate records.
OpenAI Compliance Data Input retrieves resource data. Create one input per endpoint you want.
| Endpoint | Source type |
|---|---|
| Canvases | openai:compliance:canvases |
| GPTs | openai:compliance:gpts |
| Projects | openai:compliance:projects |
| Users | openai:compliance:users |
OpenAI Compliance Logs Input retrieves log content. Select one or more event types on a single input, and set a From start date in the format YYYY-MM-DDTHH:MM:SSZ.
| Event type | Source type |
|---|---|
AUDIT_LOG |
openai:compliance:audit_log |
APP_LOG |
openai:compliance:app_log |
APP_AUTH_LOG |
openai:compliance:app_log_auth |
AUTH_LOG |
openai:compliance:auth_log |
CODEX_LOG |
openai:compliance:codex_log |
CONVERSATION_MESSAGE |
openai:compliance:conversation_message |
CONVERSATION_MESSAGE collects end-user conversation content. Enable it only after confirming the target index's retention, access controls, and data classification allow storing it.
For each input, set a name, an interval, an index, and the account you created.
Verifying data is flowing
Wait one collection interval, then run:
sourcetype="openai:compliance:audit_log" earliest=-24h
If nothing appears, confirm the API key has the permissions required to access compliance data for the workspace ID you entered. If the key and workspace ID are both correct, check index=_internal source="*openai_compliance_addon_for_splunk_*" for error detail.
Enterprise AI Governance Add-on for Splunk
This add-on (TA-ai-governance) collects from every provider into one normalized aigov_* schema. It includes nine modular inputs, five dashboards, eight alerts, and eleven search macros.
Requirements
- Splunk Cloud Platform, or Splunk Enterprise 10.x, standalone. Distributed and search head cluster deployments are designed for but not yet validated.
- HTTPS egress from the instance running the inputs to the provider APIs you enable.
- Admin-level API credentials for at least one provider.
| Provider | What you need |
|---|---|
| Anthropic Claude Enterprise | An Admin or Compliance API key (sk-ant-admin...); optionally an Analytics key with read:analytics for usage and cost data |
| OpenAI platform | An organization Admin API key (sk-admin-...) with the api.audit_logs.read and usage scopes. Only an organization Owner can create one, under Settings → Organization → Admin keys. |
| OpenAI ChatGPT Enterprise | A separate Compliance API key for the Compliance Logs Platform on api.chatgpt.com |
| Google Gemini (Workspace) | An OAuth client ID and secret plus a refresh token authorized by a Workspace admin for the admin.reports.audit.readonly scope |
| Microsoft 365 Copilot | An Entra ID app registration (tenant ID, client ID, client secret) with the AuditLogsQuery.Read.All and Reports.Read.All application permissions, admin-consented |
| Self-hosted LLM servers | Optionally a static API key. HTTPS with certificate verification is the default. |
Every permission above is a read scope. The only non-GET calls the add-on makes are OAuth token requests to Google and Microsoft, and a POST that opens a Microsoft Graph audit-log query job, which is how that API returns Purview records.
Installing the add-on
Download the latest release and install it following the Splunk add-on installation documentation. Install it on the search head, where dashboards, macros, alerts, and the modular inputs all run in the validated standalone topology. On Splunk Cloud Platform, install it as a private app through self-service app install or ACS.
Creating an index
Create an events index for the data. This guide uses ai_governance.
Adding provider accounts
Go to Configuration → AI Provider Accounts → Add, pick a provider, and enter its credentials. Add one account per provider, or one per organization or tenant if you have several. Secrets are stored encrypted in secure storage rather than in plain-text configuration files. Each account also accepts an optional proxy URL.
The screenshot below shows the Configuration page with the Add Account dialog open, where you select the provider from the dropdown and enter its credentials.

Creating inputs
Go to Inputs → Create New Input, pick an input type, select the account you created, and set Index to your index. Audit inputs backfill seven days of history on their first run by default, so dashboards populate immediately instead of filling in over the following week.
| Provider | Inputs | Data collected |
|---|---|---|
| Anthropic Claude Enterprise | anthropic_compliance, anthropic_analytics |
Compliance API activity feed; users and groups directory; usage, cost, and adoption analytics |
| OpenAI | openai_compliance, openai_audit, openai_usage |
ChatGPT Enterprise compliance logs; platform organization audit logs; user directory; aggregated token usage; daily costs |
| Google Gemini (Workspace) | gemini_audit |
Admin SDK Reports API audit events (gemini_in_workspace_apps) |
| Microsoft 365 Copilot | copilot_audit, copilot_usage |
Purview audit records (copilotInteraction) through Microsoft Graph; per-user usage reports |
| Self-hosted LLM servers | selfhosted_monitor |
Model inventory, Prometheus metrics, runtime info, health checks |
The screenshot below shows the Inputs page with a set of configured inputs across providers and the Create New Input dialog open.

OpenAI needs two inputs because it has two log planes with different credentials. openai_audit reads api.openai.com with a platform Admin API key and covers organization administration: keys minted, members invited, projects changed. openai_compliance reads the ChatGPT Enterprise Compliance Logs Platform on api.chatgpt.com with a Compliance API key and covers what users did in ChatGPT. Create both if you need both views.
openai_compliance is the one input that can reach actual prompt and response text. Its Index full message content option is off by default: content fields are replaced with a redaction marker and a character count, message roles, IDs, and timestamps are preserved, and events carry aigov_content_redacted=true. Turn it on only after you have confirmed the target index's retention, access controls, and data classification allow storing conversation content.
Inputs checkpoint to the KV Store collection ta_ai_governance_checkpoints, so they resume cleanly across restarts.
Pointing the aigov_index macro at your index
Every dashboard, macro, and alert builds on one search macro. Go to Settings → Advanced search → Search macros in the TA-ai-governance app context, edit aigov_index, and set its definition to index=ai_governance.
Verifying data is flowing
Wait one collection interval, then run:
| tstats count where index=ai_governance BY sourcetype
Then open the dashboards from the app navigation bar, starting with AI Governance Overview. The category macros aigov_all, aigov_audit, aigov_directory, aigov_usage, aigov_cost, and aigov_selfhosted, and the cross-provider action macros aigov_signin_actions, aigov_admin_actions, aigov_key_actions, and aigov_export_actions, are there for building your own searches and reports.
Enabling the alerts that match your policy
Go to Settings → Searches, reports, and alerts in the TA-ai-governance app context. All eight alerts are disabled by default. Tune the thresholds for your environment, then enable the ones you want: API Key Created or Deleted, Admin or SSO Configuration Change, Data Export Activity, New AI User Seen, Off-Hours Activity Spike, Daily Spend Threshold Exceeded, New Self-Hosted Model Detected, and Self-Hosted Server Down.
The Anthropic Claude Enterprise Add-on includes six detections the same way, disabled by default, under Settings → Searches, reports, and alerts in that add-on's context: multi-IP user activity, access failures, SSO configuration change, data export started, top cost users, and users near spend limit.
Next steps
With the add-ons collecting data, see Monitoring enterprise AI security, compliance, and spend to explore the dashboards and alerts they provide.
You might find the following resources useful for implementing the guidance in this article:
- GitHub: Anthropic Claude Enterprise Add-on for Splunk
- GitHub: OpenAI Compliance Add-on for Splunk
- GitHub: Enterprise AI Governance Add-on for Splunk
- Splunk Help: Installing Splunk add-ons
- Splunk Help: Common Information Model
- Anthropic: Anthropic Admin and Compliance APIs
- OpenAI: OpenAI Compliance API reference
- Google: Google Workspace Admin SDK Reports API
- Microsoft: Microsoft Graph audit log query API

