How Unprofane compares On the same judged texts, at the same false-alarm rate, Unprofane catches more toxic text than the Perspective API and OpenAI moderation, and several times what the npm word lists catch.
Measured where a benchmark allows it, with the live engine on every page to try for yourself.
Toxic text caught on the same texts Unprofane 89.0 %flagging 7.0% of clean text Perspective API 58.4 %at the same false-alarm rate OpenAI moderation 40.8 %at the same false-alarm rate bad-words 9.7 %npm, as shipped, flagging 1.3% of clean text obscenity 8.4 %npm, as shipped, flagging 4.2% of clean text 2toad-profanity 6.1 %npm, as shipped, flagging 0.7% of clean text leo-profanity 5.1 %npm, as shipped, flagging 1.1% of clean text The private test set, 9,029 texts labelled blind, read once on 2026-09-28, engine 2026-09-29. How it was measured
Pick a comparison vs Perspective API More abuse caught at the same false-alarm rate, the same request at the same path, and still answering after December 31, 2026. 89.0% vs 58.4% of toxic text caughtCompare vs OpenAI moderation More abuse caught at the same false-alarm rate, profanity as a category of its own, and every disguise named. 89.0% vs 40.8% of toxic text caughtCompare vs bad-words and obscenity Even without the model, the rules catch several times what any npm word list catches, and Scunthorpe gets through. 89.0% vs 9.7% of toxic text caughtCompare vs WebPurify Text moderation with the evidence in every answer, its accuracy measured in public, and a first call in two minutes. Features and fit; not on the benchmark Compare vs CleanSpeak One API call with the evidence, nothing to deploy, and the accuracy measured in public. Features and fit; not on the benchmark Compare vs Hosted word-list APIs Not whether a listed word appears, but whether the text can be shown, to which audience, and why. Features and fit; not on the benchmark Compare Try it on your own text Free test keys, 100 checks a day, no card. Live from $9 a month.