Three lines of defense.
One request.
Super Simple Guard sits between your users and your model. One call, and the cascade decides what's cheap, what's fast, and what needs real reasoning.
POST·one endpoint, three possible answers
what your user typed
what you get back
block One guard. Whatever your front door looks like.
Every kind of product attracts its own kind of abuse. A few examples of what that looks like, and what the guard does about it before your model ever sees the message. Pick one, or let them play.
What happened next. Never reached the model. The user saw: “I can help with invoices and plans. Anything else about your account?”
That's the whole integration.
No SDK to learn, no safety infrastructure to run. If your app can call fetch, it can be protected before lunch.
- [01]
Create a project
One project, one default policy. Eight categories are already on.
- [02]
Copy the key
Bearer token. Nothing to deploy, nothing to host.
- [03]
Make the call
Send the text your user typed. Branch on decision.
const response = await fetch(
"https://api.supersimpleguard.com/v1/moderations",
{
method: "POST",
headers: {
Authorization: `Bearer ${process.env.GUARD_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ input: userInput }),
},
);
const { decision, decision_reason } = await response.json();
if (decision === "block") {
return res.status(400).json({ error: decision_reason.category });
}Fast when obvious.
Cheap when possible.
Smart when necessary.
Most checks never reach a frontier model. Three stages, each one more capable and more expensive than the last; a message stops at the first one that can decide it with confidence.
Fast checks first
Deterministic rules for the obvious cases. No model involved, and nothing waits on the network.
- decides here
- ≈1%
- speed vs. frontier direct
- 20x
- faster than frontier direct
Specialized AI when needed
A 3B safety model built for this job scores every enabled category. It settles nearly everything.
- decides here
- ≈95%
- speed vs. frontier direct
- 4x
- faster than frontier direct
Real reasoning for hard cases
Only the genuinely ambiguous slice reaches a frontier judge. That's what you pay frontier prices for.
- decides here
- <5%
- speed vs. frontier direct
- ≈1x
- about even, slightly slower
Speed is relative to sending the same check straight to a frontier model yourself, model processing time only, and rounded down. Shares are an illustrative production mix, not a guarantee.
Three ways to handle user input.
Do nothing, ask a frontier model yourself on every message, or put the guard in front. The honest version of the comparison.
Whatever gets through
As broad as your prompt
Catches nothing
You build the eval set
+0 ms, nothing checked
+1 frontier round trip
$0 today, the incident later
100% frontier tokens
You find out from screenshots
Yours to build and maintain
Accuracy is measured on our internal test set of hard cases and benign look-alikes. Speed and traffic shares are illustrative and rounded down.
Know what's in your traffic.
Not just a request count. See how much was allowed, blocked, or escalated, which categories your users actually trip, and how much of your traffic needed a frontier model at all.
The escalation rate is the number to watch. As rules and thresholds mature it falls, and cost, latency, and data exposure fall with it.
requests
12,481
- Allowed
- 96.2%
- Blocked
- 2.7%
- Escalated
- 1.1%
decided by stage
escalation rate 2.6% ↓ 0.5 vs last week
findings by category
- prompt_attack41%
- harassment22%
- sexual14%
- violence11%
- self_harm6%
- hate4%
- illicit2%
sexual_minors: 0 findings today. Category stays on regardless of policy.
Defaults that work.
Controls when you want them.
The complexity lives inside the system. What you see is a handful of switches.
- [01]policy
Toggles, not tuning
Eight categories. Switch any of them off, except Minors, which stays on. Changes apply on the next request.
- [02]decisions
Uncertain is an honest answer
When the guard isn't sure, it says so. You choose what happens next: escalate, block, or allow.
- [03]resilience
Fail open or fail closed
If a provider is down, your policy decides whether traffic flows or waits. Never a silent guess.
- [04]playground
Try it before you wire it
Paste a message in the playground and see the decision, the findings, and the latency against your live policy. No code.
- [05]agents
Built for coding agents
/llms.txt, OpenAPI, and problem+json errors. Point your agent at it and let it do the integration.
- [06]policies
One policy per entrance
Chat, agent tools, and public comments don't need the same rules. Give each its own policy under one project. The default works until you need more.
Three modes.
One explicit choice.
Nothing trains on your users by default. Pick a mode per project, in plain language, and see exactly what is kept, for how long, and what it is used for.
- [01]higher quota
Contribute
Help the rules and models get better for everyone, and get a bigger allowance on the same plan in return.
- [02]you pick the window
Limited retention
Keep your own traffic for a window you choose, so you can replay it against a rule change and see exactly what would flip.
- [03]memory only
Zero retention
Content exists in memory for the length of the request and nowhere else. What remains is the observability trail.
Retention and contribution are separate switches. Keeping your own data for your own replay never means contributing it to anyone else.
Every mode is an opt-in you can change. The current mode is visible in the dashboard, and switching applies from the next request.
The plans are still being designed.
The principles aren't.
There will be a free tier that covers the fast checks and the specialized model. Beyond that, three rules decide what you pay.
- [01]
You pay for the hard cases
Most messages are decided by the cheap stages. Frontier reasoning is reserved for the ambiguous slice, so that is the only place frontier prices show up.
- [02]
Bring your own key
Run the hard cases through your own Anthropic or OpenAI account and skip the markup. Routing, policy, and reporting stay the same.
- [03]
The plan finds you
Start small. If your usage outgrows the plan mid-month, the cheaper tier is applied retroactively. Nobody is punished for guessing wrong.
Nothing is billed today. Sign in, get a key, and you will hear from us before that changes.
Built in Canada for developers everywhere.
Simple by design. Strong where it matters.