Open source · Works with OpenAI & Anthropic · No LLM in the detection loop

sAIfety
Their PII never reaches the model.
Your app never notices.

A drop-in proxy that swaps personal data for placeholder tokens before it reaches OpenAI or Anthropic — then restores the real values in the response. Plus deterministic prompt injection blocking. One line of code.

Try it live — no signup ↓ Get started free →
Your app sends Email alice@acme.com about the invoice and cc 555-867-5309
↓  sAIfety tokenizes — the mapping never leaves your infrastructure
The LLM sees Email [PII_EMAIL_1] about the invoice and cc [PII_PHONE_1]
↓  the model replies using the tokens · sAIfety restores the real values
Your app gets Done — I've drafted the email to alice@acme.com and added 555-867-5309

Don't take our word for it. Run it.

This demo runs sAIfety's actual detection logic, ported to JavaScript, entirely in your browser. Nothing you type here is sent anywhere — which is rather the point.

What just happened: each value gets a unique token; the same value always maps to the same token within a request, so the model can reason about "the email address" coherently. Card numbers are Luhn-validated first, so a random 16-digit order ID isn't mangled. The token↔value vault lives in memory for one request, then it's gone. Works identically on the OpenAI and Anthropic routes — streaming included.
No LLM was consulted. Detection is NFKC unicode folding, zero-width & bidi stripping, homoglyph mapping, weighted signature scoring, base64 decoding, and a leetspeak fold — deterministic rules that run in microseconds, cost nothing per request, and produce an explainable audit trail. A guardrail that calls another model just moves your data problem somewhere else.

"Does customer data go to OpenAI?"

It's the question on every security questionnaire, every GDPR review, every enterprise deal. Right now your honest answer is "yes, and we asked them nicely not to keep it." sAIfety changes the answer to "no — it never leaves our infrastructure."

Without sAIfety

Your AI provider sees everything

  • Customer emails, phone numbers, SSNs, and card numbers travel to a third party on every request
  • Redaction breaks your product — the model can't say "I've emailed [REDACTED]" usefully
  • Users override your system prompt with "ignore all previous instructions" — or its unicode-obfuscated cousins
  • Guardrail SaaS vendors solve this by… also receiving all your data
  • No audit trail when compliance asks what was sent where
  • Safety logic rebuilt differently in every codebase
With sAIfety

The model works with tokens, not people

  • PII becomes [PII_EMAIL_1] before it leaves your infrastructure — and becomes real again in the response
  • Your app's behaviour is unchanged; users never know it happened
  • Injection attempts are caught even through homoglyph, zero-width, leetspeak, and base64 evasion
  • Self-hosted and deterministic — no second vendor, no second model, sees your data
  • Every request, outcome, and block reason in one audit log
  • One YAML policy, per-tenant profiles, instant updates

One URL change. Full coverage.

sAIfety is a transparent proxy — it speaks the same API as OpenAI and Anthropic. Sign up, add your AI key, and point your code at sAIfety.

1

Sign up and add your keys

Create a free account at app.saifety.dev. Add your OpenAI or Anthropic API key — we store it encrypted and never log it.

# You get a proxy key like: sk-saifety-a1b2c3d4e5f6...
2

Change one line

Point your OpenAI or Anthropic client at sAIfety instead of the AI API directly. Use your proxy key. That's the only code change.

# before OpenAI(api_key="sk-...") # after — one line change OpenAI( api_key="sk-saifety-...", base_url="https://app.saifety.dev/v1" )
3

Configure your rules

Use the dashboard to configure which guardrails apply — PII redaction, prompt injection blocking, topic filters. Changes take effect instantly.

pii: enabled: true action: tokenize # reversible prompt_injection: enabled: true threshold: 1.0 topic_filter: blocked_topics: - competitor

Everything that can go wrong, covered.

Six guardrails run on every request and response, configurable per tenant.

🔏

Reversible PII Tokenization

Personal data becomes placeholder tokens before the model sees it, and becomes real again in the response — streaming included. Or choose one-way redaction, or block outright.

Email Phone SSN Card (Luhn-checked) Tokenize / redact / block OpenAI & Anthropic
🛡️

Prompt Injection Blocking

Weighted signature scoring over normalized text catches jailbreaks and instruction overrides — including homoglyph, zero-width, fullwidth, leetspeak, and base64 evasion. Deterministic, no LLM.

Unicode evasion Base64 payloads Tunable threshold
🚫

Topic Filter

Blocks requests that mention any topic you configure as off-limits. Useful for brand safety, legal compliance, or competitive reasons.

Custom keywords Per tenant Word boundary match
☣️

Toxicity Filter

Inspects model responses before they reach your users, blocking hate speech, slurs, and harmful content.

Output scanning Configurable threshold
📐

Output Validation

Enforce a maximum response length, or require the model's response to conform to a JSON schema — useful for structured data pipelines.

Max length JSON schema Format enforcement
📋

Audit Log

Every request is logged — tenant, API used, outcome, reason if blocked, and message preview. Queryable via API or the dashboard.

SQLite Filterable JSON API

A guardrail that calls another model isn't a guardrail.

Most "AI safety" products scan your traffic with… another AI, run on their servers. That doubles your latency, adds a per-request bill, and hands your data to a second vendor. sAIfety's detection is pure rules — which is exactly what your compliance team wants to hear.

< 1 ms

Deterministic & fast

Regex, unicode normalization, and weighted scoring — no model call, no GPU, no variance. The same input always produces the same decision, and you can read exactly why in the audit log.

$0

Zero marginal cost

LLM-based scanners charge per token to inspect your tokens. sAIfety's checks cost nothing per request, at any volume, and never rate-limit your traffic.

0 vendors

Your data stays yours

Self-host with one Docker command. The PII vault is in-memory and per-request; detection needs no external API. Nobody — including us — sees your traffic. Try answering a security questionnaire with that.

Works with what you already use.

Compatible with the official OpenAI and Anthropic SDKs in Python and JavaScript — no wrapper libraries, no lock-in.

  •  OpenAI Python & JS SDK
  •  Anthropic Python & JS SDK
  •  Any HTTP client (curl, fetch, axios)
  •  LangChain, LlamaIndex, and other frameworks that use OpenAI-compatible endpoints
# The only change needed in your entire codebase
from openai import OpenAI

client = OpenAI(
    api_key="sk-saifety-...",            # ← your proxy key
    base_url="https://app.saifety.dev/v1",  # ← add this
)

# Everything else stays identical
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}],
)
// The only change needed in your entire codebase
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "sk-saifety-...",             // ← your proxy key
  baseURL: "https://app.saifety.dev/v1",  // ← add this
});

// Everything else stays identical
const response = await client.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: "Hello!" }],
});
# Works with the official Anthropic SDK too
from anthropic import Anthropic

client = Anthropic(
    api_key="sk-saifety-...",             # ← your proxy key
    base_url="https://app.saifety.dev",    # ← add this
)

response = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}],
)

See everything. Understand anything.

A live dashboard shows every request in real time — what was blocked, why, and by which guardrail. Edit your guardrail rules per-tenant directly from the UI. No YAML files, no restarts.

sAIfety Dashboard — localhost:8000
Total Requests
1,284
Blocked
47
Pass Rate
96.3%
Proxy Status
● Online
TimeTenantOutcomeDetails
14:32:01 default passed What is the capital of France?
14:31:58 strict blocked Request contains PII: email
14:31:44 default blocked Prompt injection attempt detected
14:31:39 default passed Summarise this document for me...

Free to self-host. Hosted plans start at $49.

Run sAIfety on your own infrastructure for free — forever. Or use our hosted service and skip the ops work entirely.

Free
Try the hosted version free, or self-host with no limits.
$0
forever
  • 200 requests / month (hosted)
  • All guardrails included
  • OpenAI & Anthropic support
  • Dashboard with live tester
  • Audit log & token metrics
  • Unlimited if self-hosted
Sign up free →
Growth
Hosted. Built for production workloads.
$199
per month
  • 1,000,000 requests / month
  • 200 requests / minute
  • All guardrails included
  • Hosted dashboard
  • Priority support
  • Custom webhook integrations
Start free trial →
Need higher limits or an on-prem license? Get in touch →

Start shipping sAIfer AI today.

Free tier included. No credit card required.