A profanity and toxicity API built around one question, should I allow this text, and around being honest about how well it answers it.
Most profanity filters are a word list. A word list misses sh1t and blocks Scunthorpe, and when it is wrong it cannot say why. The model-only alternatives are slower, cost more, and read a cancer forum as profane. Unprofane runs rules at the edge for most text, asks a model only about the text the rules cannot settle, and never lets the model decide on its own: it supplies numbers, and policy code you can read turns them into an answer with the evidence attached.
The Scunthorpe Test is an open benchmark with a public set anyone can run, a private set we keep back, and the false positives counted rather than hidden. Every number on this site is read from a benchmark result file, a plan table or an engine version file. There are no logos, testimonials or invented counts anywhere on it.
No request text is stored. Text the rules answer never leaves Cloudflare. A project can be set to Edge-only so a model is never constructed for it. Each of these is a test in the source, listed in the file called TRUST.md, and the privacy page says them again in plain words.
Unprofane is made by Tomer N. Marketing and Sales Ltd, a small company in Israel. Write to hello@unprofane.com; a person reads it.