Profanity filter: find and censor swear words
Paste English text to see which swear words it contains, where they are, and a censored copy. It catches common disguises like f.u.c.k, sh1t and fuuuck (see limitations). This is a word filter based on a word list, not AI moderation, and it supports English only.
Censored copy
Matches
| Term | Matched text | Position | Obfuscated |
|---|
Your text is sent to this site's API, checked in memory, and discarded. It is never stored or logged (privacy).
Use the API
curl -s https://profanity-api.mike-tusa.workers.dev/v1/check \
-H 'content-type: application/json' \
-d '{"text":"well f.u.c.k that sh1t","censor":true}'
Get a free key (1,000 requests/day, commercial use OK): curl -s -X POST https://profanity-api.mike-tusa.workers.dev/v1/keys -H 'content-type: application/json' -d '{}'. Full reference: API docs.
Limitations
- English only. It's a word list, so it doesn't judge context, intent or tone, and it can miss new slang.
- Not caught: letters split across lines, spaced letters followed by a word (
f u c king), most symbol-masked spellings (f**k,b*tch,s**t), phonetic spellings (phuck), deliberate misspellings and words outside the list. Standalonefu/FUis not flagged on purpose (kung fu, Fu Manchu); masked forms likefu*k,fu**ingandfu.ckare, but notfu ck(space), doubled separators (fu..ck,fu--ck) or a hidden character betweenfuand the mask (e.g. a zero-width space infu*k). - Caught: leetspeak (
sh1t,$h!t), look-alike and accented letters (fück,fuck), repeated letters (fuuuck), dotted/spaced letters (f.u.c.k,s h i t), dotted letters with a suffix (f.u.c.king,s.h.i.tty), and hidden characters (soft hyphens, zero-width and direction-control characters, other invisible format characters, combining and enclosing marks). - It can flag innocent words that contain a swear word. We whitelist the common ones (like Scunthorpe, cockpit, shiitake, Shiite, cumin, Fukushima, Dickinson). Known false positives: the first name
Dickand the place/surnameCumming(e.g. Cumming, Georgia) are still flagged; add"dick"or"cum"toallowif your text has them. Note thatallow: ["cum"]turns off all detection of that word (including its slang use), so only use it if place/surname text matters more to you. Rare edge cases also flagged:Fu-kien(old spelling of Fujian) andfu.kr-style domains. Useallowfor any others.
Pricing
Free
1,000 requests/day with a free API key (60/min). Commercial use allowed. No card, no sign-up form.
Without a key: 200/day and 10/min per IP.
Starter (coming soon)
About 100,000 requests/month.
Pro (coming soon)
About 1,000,000 requests/month, plus saved custom allow/deny lists.
Paid tier prices are estimates and not available to buy yet. Per-request allow/deny lists (up to 50 words each) work on every tier, including free.
Questions or abuse reports: mike.tusa@gmail.com.