Unprofane
All comparisons

Unprofane vs CleanSpeak

One API call with the evidence, nothing to deploy, and the accuracy measured in public.

CleanSpeak, from the makers of FusionAuth, is a moderation platform: filtering, moderator queues, user reputation, reporting, and the option to run it on your own servers.

Toxic text caught at the same false-alarm rate
  1. Unprofane89.0%flagging 7.0% of clean text
  2. Perspective API58.4%at the same rate
  3. OpenAI moderation40.8%at the same rate
Disguised spellings caught
86.0%vsPerspective 51.7%, OpenAI 26.9%
Toxic usernames caught
76.5%vsPerspective 32.5%, OpenAI 9.0%

CleanSpeak is not on the benchmark, so it has no bar and this page makes no claim about its accuracy. When you compare, ask for toxic text caught at a stated false-alarm rate, on text nobody tuned on.

The private test set, 9,029 texts labelled blind, read once on 2026-09-28, engine 2026-09-29. How it was measured

Try to fool it

The real engine, live. Type a disguised word and watch it read, named and judged; type an innocent one and watch it pass.

Every answer carries the same evidence through the API: the words, where they were, how they were disguised and a censored version.

Enter to check

Why Unprofane

  1. 01

    Nothing to deploy

    A free key and one request. The rules answer inside the Worker, at the edge.

    5ms

    at p99 inside the Worker, for a check the rules answer

    Our own measurement in workerd, 300 requests, 2026-09-28

  2. 02

    The evidence in every answer

    Named evasion tags and a censored version come back with every check.

    username

    xXsh1tXxshit

    leetspeakreview ยท strong

    Shown as xX****Xx

  3. 03

    Pin a version and it never moves

    Engine versions are dated and immutable, and the changelog says what each one changed.

    1. 2026-09-29latest
    "engine": { "version": "2026-09-29" }

    Pin one per project. The changelog

The decision and its evidence from one API call: nothing to deploy, no text stored.

The first call

A test key is free, with a plan or without one. One request, in the language you use, and the answer carries the evidence.

curl -X POST https://api.unprofane.com/v1/check \
  -H "Authorization: Bearer up_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"xXsh1tXx","context":"username","policy":"teen"}'
Open the quickstart

Try it on your own text

Free test keys, 100 checks a day, no card. Live from $9 a month. Every answer shows its evidence.

Other comparisons