CrowdStrike AIDR is the evolution of the Pangea AI Guard product (acquired by CrowdStrike in 2025). Existing Pangea users are requested to migrate to this.
What is CrowdStrike AIDR?
CrowdStrike Falcon AI Detection & Response (AIDR) delivers comprehensive protection for employee adoption of GenAI tools and runtime security for AI development. Built on the Falcon platform, AIDR unifies prompt-layer visibility, threat detection, data protection, and automated response across endpoints, applications, AI agents, MCP servers, AI/API gateways, and cloud environments — all managed through a single sensor and console. With AIDR, organizations can accelerate AI adoption and innovation without compromising security. In the gateway integration, AIDR analyses prompts and completions in the OpenAI Chat Completions format and applies the policies you configure in the Falcon console — including malicious prompt detection, PII / secrets redaction, language and topic policies, and access rules.Guardrails on MCP tool calls and tool outputs (tool description validation, conflicting MCP tool name detection, and MCP tool context) are being worked on and will be released soon. Today the gateway integration evaluates prompts and completions only.
Key capabilities
- Security analysis — Detect prompt injection, jailbreaks, and policy violations on both inputs and outputs.
- Content transformation — Mutate flagged content in place (redact PII, encrypt secrets with format-preserving encryption) instead of blocking the whole request, so legitimate traffic keeps flowing.
- Policy-driven enforcement — Each AIDR collector can run a different Input Policy and Output Policy, so you can express “audit only” on inputs but “hard block” on outputs (or any combination) per environment.
- Findings & audit — Every analysed request is logged in the AIDR Findings page with the original input, processed output, detector verdicts, and TrueFoundry routing metadata (user, provider, model, tenant, and
span_id) so each Finding is attributed to the request that produced it.
Adding CrowdStrike AIDR to TrueFoundry
CrowdStrike AIDR is a first-class guardrail in the gateway — you configure it through the same form as any other built-in guardrail, no adapter service required.Pick CrowdStrike AIDR from the guardrail registry
From AI Gateway → Guardrails → Registry, select CrowdStrike AIDR under External Providers. See Get started with guardrails for the end-to-end flow of adding any guardrail.

Create a collector and copy its token in the Falcon console
The gateway authenticates to AIDR with a collector token generated in the Falcon console. In Falcon, open AI detection and response → Collectors from the left-hand navigation.
Choose Add a Collector, select the Gateway type, and pick the TrueFoundry card.
Once the collector is created, open it to view its API Token and API Base URL. Copy both — you’ll paste the token into the guardrail’s API Key field and the base URL into the Base URL field. To view the token later, navigate to Collectors and select your collector from the list.



The token has a short grace period after rotation before the old value is deleted. Rotate it in Falcon and update the guardrail’s API Key before the old token expires to avoid an outage.
Fill in the CrowdStrike AIDR form
Provide the following fields:

| Field | Required | Description |
|---|---|---|
| Name | ✅ | Identifier for this guardrail (e.g. cs-aidr). Used when you reference the guardrail from rules. |
| Description | Free-form description shown in the dashboard. | |
| Auth Data → API Key | ✅ | Bearer token for your AIDR collector. This token is generated when you create your collector in the Falcon console. To view it, navigate to Collectors from the left-hand navigation and select your collector from the list. Stored encrypted. |
| Operation | ✅ | Validate checks for blocked content only. Mutate additionally accepts AIDR’s guard_output so PII / secrets can be redacted in place. This field is part of the CrowdStrike AIDR guardrail definition. |
| Base URL | AIDR API base URL. Defaults to https://api.crowdstrike.com/aidr/aiguard. Use a regional endpoint such as https://api.us-2.crowdstrike.com/aidr/aiguard if your AIDR tenant lives in a different region. | |
| Enforcing Strategy | ✅ | TrueFoundry platform setting (not specific to AIDR). Enforce blocks on any violation or guardrail error. Enforce But Ignore On Error blocks on violations but lets the request through on guardrail failures (timeouts, 5xx). Audit never blocks — violations are logged only. The same field is exposed on every guardrail integration. |

Keep the AIDR API key in TrueFoundry only — it should never appear in client code or model request bodies. The gateway attaches it as
Authorization: Bearer <token> on every call to AIDR.Advanced parameters
These are TrueFoundry platform-level guardrail parameters and apply to AIDR the same way they apply to any other guardrail integration:| Parameter | Default | Description |
|---|---|---|
enforce_on_detection | true | When true, the gateway treats any detector firing (detectors.*.detected = true) as a block — even if AIDR’s own policy is in monitor / report mode and returns result.blocked = false. Set to false if you want the gateway to defer entirely to the AIDR policy verdict. |
timeout | gateway default | Maximum time the gateway will wait for an AIDR response before treating the call as a failure. Pair with Enforce But Ignore On Error to fail open on slow AIDR responses. |
Bind the guardrail to models with a rule
Once the guardrail is saved, attach it to one or more models through a Guardrail Rule. Use See Configure Guardrail Rules for the full rule schema (model selectors, user filters, fallback policies).
llm_input_guardrails to scan prompts before they reach the model and llm_output_guardrails to scan completions before they’re returned to the caller.How the gateway calls AIDR
For each model request the gateway converts the chat payload into AIDR’sguard_input shape and calls the configured base URL. You don’t need to write or host any code for this — the section below documents the wire format only as a reference for debugging request logs.
Endpoints used
| Purpose | Method | Path |
|---|---|---|
| Run a guard check on input or output | POST | {baseUrl}/v1/guard_chat_completions |
Restore FPE-redacted values on the output leg of Mutate (when AIDR returned an fpe_context) | POST | {baseUrl}/v1/unredact |
Request shape
The gateway sends aguard_chat_completions payload containing the conversation plus the routing metadata AIDR uses to attribute each Finding. The prompt leg (event_type: "input") and completion leg (event_type: "output") share the same shape:
system / user / assistant / tool messages are preserved with their roles rather than collapsed into a single string, so AIDR evaluates the structured conversation exactly as the model sees it.
Metadata sent to AIDR
Alongsideguard_input, the gateway populates the following routing metadata so each request is attributed to the right user, model, and tenant in the AIDR Findings page:
| Field | Description |
|---|---|
guard_input | The core payload — the full multi-turn messages array (system / user / assistant / tool), preserved with roles. |
event_type | input for the prompt leg (before the model) and output for the completion leg (after the model). AIDR uses it to pick the matching Input Policy or Output Policy from your collector. |
user_id | The signed-in user’s email. AIDR falls back to user_name if this is absent; there is no standalone user field. |
llm_provider | The upstream model provider the gateway routed to (e.g. openai, google-vertex). |
model | The model name the request was routed to (e.g. gpt-4o-mini). |
tenant_id | Your TrueFoundry tenant. |
span_id | The per-conversation / per-turn ID, used to correlate the AIDR Finding back to a specific gateway request. |
A few AIDR fields are not yet sent by the gateway:
source_ip, model_version, app_id, and the MCP tool context (extra_info.mcp_tools). These will be populated in future releases; until then, correlate on span_id for the missing attributes.guard_input messages and the AIDR verdict, on each entry in the Falcon Findings page:

Operation = Mutate is enabled and the input leg redacted values with format-preserving encryption, the gateway passes the resulting fpe_context back to AIDR on the output leg as input_fpe_context so the same encryption keys are used end-to-end.
Response shape and how the gateway interprets it
enforce_on_detection flag.
When the gateway considers the call a “violation”
A violation is raised when either of these is true:result.blocked == true(AIDR’s own policy decided to block), or- any detector under
result.detectorshasdetected == trueandenforce_on_detectionistrue(the default). This catches cases where AIDR is intentionally running in monitor mode (blocked = false) but you still want the gateway to enforce.
Outcome matrix
| AIDR response | Operation = Validate | Operation = Mutate |
|---|---|---|
| Violation (per the rule above) | Gateway returns HTTP 400 with AIDR’s summary in the error body. | Same as Validate — once a violation is raised, Mutate does not soften it into a redaction. |
blocked = false, transformed = true, no detector flagged (or enforce_on_detection = false) | Detection (if any) logged. Original payload is forwarded unchanged — Validate never rewrites content. | Input leg: result.guard_output (with PII / secrets redacted in place) is what the model sees — the caller’s original text is replaced before it leaves the gateway. Output leg: result.guard_output is what the caller sees, and any FPE-encrypted values are decrypted via /v1/unredact (using the fpe_context returned by AIDR on the input leg) before the response is returned. |
blocked = false, transformed = false, no detector flagged | Forwarded unchanged. | Forwarded unchanged. |
How Enforcing Strategy layers on top
The matrix above describes “what counts as a violation”. Enforcing Strategy then decides what the gateway does about violations and about its own errors talking to AIDR:- Enforce — violations block, AIDR errors block. Fail closed.
- Enforce But Ignore On Error — violations block, AIDR errors (timeouts, 5xx, parsing failures) are logged but the request is forwarded. Fail open on infra issues, fail closed on policy.
- Audit — nothing blocks. Every violation is logged for review only. Use this while tuning AIDR policies.
AIDR can return an
HTTP 202 with a result.location polling URL on very large payloads. The TrueFoundry gateway currently issues a single synchronous call and treats a non-Success status as a failure — so 202s will be handled by the Enforcing Strategy error path rather than polled. If you regularly process 1 MiB+ payloads, increase the guardrail timeout and consider running with Enforce But Ignore On Error so the occasional async response doesn’t block traffic.Validation logic at a glance
- HTTP 400 from the gateway → either AIDR returned
result.blocked = true, orenforce_on_detection = trueand at least one detector flagged the request. Open the Request Logs page in TrueFoundry and expand the guardrail span to see the full AIDRsummary,detectors, andpolicythat triggered the block. - HTTP 401 / 403 from AIDR → API key is invalid or doesn’t have permission for the configured collector. Re-check the Auth Data field on the guardrail.
- HTTP 5xx or timeout from AIDR → with Enforce the request fails closed (HTTP 400). With Enforce But Ignore On Error the request is allowed through and the failure is logged.
Reference
- CrowdStrike AIDR API reference —
guard_chat_completions,unredact, request/response shapes - CrowdStrike AIDR Findings page — where AIDR logs every analysed request
- TrueFoundry guardrails overview
- Configure guardrail rules