Guardrails on every AI request
Every request and every answer passes your guardrails. Sensitive data is redacted before the provider sees it, and unsafe content is blocked.
Every guardrail on every router
Built-in checks for secrets, prompts and your own patterns, and connections to Presidio, Azure, Bedrock, Model Armor, CrowdStrike and more. Attach any of them to any router.
Secrets and your own patterns 2
API keys, tokens, private keys and connection strings.
Your own patterns, set to redact or block.
Personal data 2
PII detection and anonymization from your Presidio service.
PII entity recognition in Azure AI Language.
Prompt injection and jailbreaks 3
Prompt injection, jailbreaks and size limits.
Prompt injection, harmful content and Sensitive Data Protection.
Jailbreak and agent hijacking detection.
Content safety and answer quality 3
Hate, violence, sexual and self-harm severity, and Prompt Shields.
Content filters, denied topics, word filters and PII from a Bedrock guardrail.
Hallucination, toxicity and policy evaluators on the answer.
AI security platforms 5
AI detection and response for prompts and model output.
Prompt, data leak and agent action protection.
Runtime threat detection for prompts and responses.
AI usage policy and sensitive data controls.
Prompt and response inspection for AI traffic.
Checks on the way in and on the way out
Guardrails check the request in the order they are attached, then check the answer in reverse order on its way back. They never change which model or provider serves the request.
- Caller
- 1Secrets Detection
- 2PII redaction
- 3Bedrock Guardrails
- openai/gpt-5
- openai/gpt-5
- 3Bedrock Guardrails
- 2PII redaction
- 1Secrets Detection
- Caller
The first guardrail sees the request first and the answer last, so Secrets Detection checks the final text the caller receives.
Redact and restore sensitive data
Emails, card numbers, secrets and your own patterns are replaced with placeholders before the provider sees them, and restored in the answer the caller receives.
Refund order 4471 for Jane Doe. Card 4111 1111 1111 1111[CARD_1], email jane@acme.com[EMAIL_1], phone +1 415 555 0100[PHONE_1]. Approved by EMP-204518[EMPLOYEE_ID_1]. Export the receipt with key AKIAEXAMPLE7Q2X9MZ4[AWS_KEY_1] to the billing bucket.
Block a request, or stop an answer mid-stream
A blocked request never reaches the provider. On a stream, answer text is held in chunks until the guardrails pass it, so unchecked text is never released.
The checkout failures started at 09:14 UTC after the payments service was redeployed. Requests to the card processor timed out…
09:31:02.418…timed out because the new task read a stale pool size. Rolling back restored the error rate to 0.1% by 09:26 UTC. To reproduce…
09:31:03.207…connect with postgres://admin:EXAMPLE-pass@db.internal.example.com:5432/payments and run the migration check…
09:31:04.015The checkout failures started at 09:14 UTC after the payments service was redeployed. Requests to the card processor timed out because the new task read a stale pool size. Rolling back restored the error rate to 0.1% by 09:26 UTC. To reproduce the failure in staging,
event: error
data: {"error": {"type": "guardrail_blocked",
"message": "Answer blocked by Secrets Detection.",
"side": "answer", "at_character": 1412,
"request_id": "req_8Kd2QmV7"}} Required guardrails for every router
Attach guardrails at the organization level and mark them required. Every router in the organization runs them, and router owners cannot remove or reorder them.
Integrations
A broken guardrail is never an open door
Guardrails fail closed by default, so a check that cannot complete blocks the request. Each one has its own timeout, and a service that keeps failing is paused and retried automatically.
Integrations
Every check in Traffic
Each request records every guardrail that ran, what it found and how long it took, with guardrail time shown apart from model time. See why a request was blocked without opening a ticket.
- Request ID
- req_4Wd7Hn2PxQ
- Timestamp
- 2026-10-21 14:08:47.902
- Organization
- org_7Hq2mR4vXa
- Token
- tok_support_svc
- Correlation ID
- ticket-48213
- Customer
- cus_northwind
- Session
- sess_3f9a2c
- Peer IP
- 203.0.113.24
- Alias
- —
- Router ID
- rt_8fK2pQ
- Model requested
- openai/gpt-5
- Model served
- openai/gpt-5
- Vendor
- openai
- Variant
- standard
- Region
- us-east-1
- Wire id
- gpt-5-2025-08-07
- Prompt ID
- ip_support_v4
- File path
- —
- Revision
- 4
| # | Filter | Checked | Result | Labels | Time | When |
|---|---|---|---|---|---|---|
| 1 | MR Secrets Detection Guardrail | Request | Passed | — | 0.3 ms | Before Model Call |
| 2 | MR PII redaction Guardrail | Request | Masked | email ×1 · phone ×1 | 0.4 ms | Before Model Call |
| 3 | B Bedrock Guardrails Guardrail | Request | Passed | — | 182.6 ms | Before Model Call |
| 3 | B Bedrock Guardrails Guardrail | Answer | Passed | — | 27.9 ms | During Stream |
| 2 | MR PII redaction Guardrail | Answer | Passed | — | 0.2 ms | During Stream |
| 1 | MR Secrets Detection Guardrail | Answer | Blocked | aws_secret_access_key detected in answer at character 1,284 | 0.3 ms | During Stream |
- Total
- 2176ms
- TTFT
- 812ms
- Request upload
- 0.8 ms
- Router overhead
- 0.6 ms
- Filters
- 211.7 ms
- Upstream
- 1962ms
- Router response
- 0.5 ms
- Prompt
- 1,412
- Completion
- 296
- Request bytes
- 6,918
- Response bytes
- 1,512
- Total
- $0.0047
- Input
- $0.0018
- Output
- $0.003
- Cache read
- $0
- Cache write
- $0
Add guardrails to your AI traffic
Create an integration, attach it to your routers and see every check in Traffic.