Profanity filtering users can't bypass.
The swear words, insults and slurs people meet in English, how strong each is, and how people hide them.
Narrow them by kind, strength or spelling; strong words are masked, and the download has each in full.
81 words
Said about a thing or a moment, not aimed at anyone.
f**k
s**t
damn
what the hell
crap
piss
bloody
British intensifier (vulgar) or literally covered in blood
bugger
bollocks
sod off
feck
Irish minced 'f**k'
effing
minced 'fu***ng'
wtf
ass
buttocks or a fool (vulgar), or a donkey
arse
badass
cock-up
a blunder (vulgar)
bitching
complaining (vulgar)
Aimed at a person.
mot******ker
sh****ad
as***le
bi**h
a spiteful woman or a weakling (vulgar), or a female dog
bastard
t**t
wanker
tosser
bellend
gobshite
dickhead
coc*****er
c***
Shown to its first letter. The download has it in full.
dumbass
du****ck
douchebag
scumbag
turd
pissant
idiot
moron
imbecile
cretin
stupid
dumb
loser
dork
cuck
crackhead
minger
an ugly or disgusting person
slapper
a promiscuous woman
sl*t
wh**e
hussy
pervert
old hag
ugly old woman (sexist, ageist insult)
son of a wh**e
stfu
shut the f**k up / get the f**k out
g*y
go f**k yourself
f off
screw you
you suck
go to hell
eat s**t
kiss my ass
up yours
a rude dismissal
Vulgar words for parts of the body. Words for sexual acts are not on this page.
cock
penis (vulgar), or a rooster or a gun's hammer
pu**y
vulva or a coward (vulgar), or a cat or the willow
tits
breasts (vulgar), or the tit family of small birds
boobies
breasts (childish-vulgar), or the booby seabirds
balls
testicles or courage (vulgar), or round objects in a game
Words that demean people for who they are, shown to the first letter with what each one means.
n*****
Shown to its first letter. The download has it in full.
f*****
a slur for gay men
Shown to its first letter. The download has it in full.
f**
a slur for gay men, or British slang for a cigarette
Shown to its first letter. The download has it in full.
r*******
a slur for people with intellectual disabilities, or 'slowed' in chemistry and engineering
Shown to its first letter. The download has it in full.
s***
Shown to its first letter. The download has it in full.
k***
Shown to its first letter. The download has it in full.
c****
a slur for Chinese people, or a narrow opening (a c**** in the armour)
Shown to its first letter. The download has it in full.
g***
a slur for East and Southeast Asians
Shown to its first letter. The download has it in full.
t*****
a slur for trans people, or a car transmission
Shown to its first letter. The download has it in full.
d***
a slur for lesbians, or an embankment
Shown to its first letter. The download has it in full.
r******
Shown to its first letter. The download has it in full.
s******
a disability slur, or the medical term for muscle spasticity
Shown to its first letter. The download has it in full.
The words on this page loaded as a list filter, matched as typed, against Unprofane's rules.
booby-trapped
An ordinary word. The list finds "booby" inside it.
Blocks it
allow
4ss
Digits and symbols, from "ass". The list holds no word in it.
Misses it
review
a.r.s.e
Spaced apart, from "arse". The list holds no word in it.
Misses it
review
сock-up
Look-alike letters, from "cock-up". The list holds no word in it.
Misses it
review
1 innocent blocked3 missed
1 innocent let through3 caught
Every word in full, with its kind, strength, meaning and other spellings, as JSON or CSV.
{
"name": "English swear words",
"count": 81,
"words": [
{
"word": "damn",
"language": "en",
"category": "profanity",
"severity": "mild",
"meaning": "",
"region": null,
"forms": [
"damned",
"damnit",
"dammit",
…
]
},
…
]
}One call reads every word here and every spelling of it, in 17 languages, and returns the text censored.
Get your API key100 checks a day, no card
curl -X POST https://api.unprofane.com/v1/check \
-H "Authorization: Bearer up_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"4ss","context":"chat"}'const res = await fetch('https://api.unprofane.com/v1/check', {
method: 'POST',
headers: { Authorization: 'Bearer up_test_YOUR_KEY', 'Content-Type': 'application/json' },
body: JSON.stringify({
"text": "4ss",
"context": "chat"
}),
});
const result = await res.json();import httpx
r = httpx.request(
"POST",
"https://api.unprofane.com/v1/check",
headers={"Authorization": "Bearer up_test_YOUR_KEY"},
json={
"text": "4ss",
"context": "chat",
},
timeout=5.0,
)
result = r.json()req, _ := http.NewRequest("POST", "https://api.unprofane.com/v1/check",
strings.NewReader(`{"text":"4ss","context":"chat"}`))
req.Header.Set("Authorization", "Bearer up_test_YOUR_KEY")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)$res = file_get_contents('https://api.unprofane.com/v1/check', false, stream_context_create(['http' => [
'method' => 'POST',
'header' => "Authorization: Bearer up_test_YOUR_KEY\r\nContent-Type: application/json\r\n",
'content' => '{"text":"4ss","context":"chat"}',
]]));
$result = json_decode($res, true);require 'net/http'; require 'json'
uri = URI('https://api.unprofane.com/v1/check')
req = Net::HTTP::Post.new(uri, 'Authorization' => 'Bearer up_test_YOUR_KEY', 'Content-Type' => 'application/json')
req.body = '{"text":"4ss","context":"chat"}'
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
result = JSON.parse(res.body)using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "up_test_YOUR_KEY");
var req = new HttpRequestMessage(HttpMethod.Post, "https://api.unprofane.com/v1/check");
req.Content = new StringContent("{\"text\":\"4ss\",\"context\":\"chat\"}", Encoding.UTF8, "application/json");
var res = await http.SendAsync(req);
var result = await res.Content.ReadFromJsonAsync<JsonElement>();var http := HTTPRequest.new()
add_child(http)
http.request_completed.connect(func(_r, _code, _h, body):
var result = JSON.parse_string(body.get_string_from_utf8())
print(result))
http.request("https://api.unprofane.com/v1/check",
PackedStringArray(["Authorization: Bearer up_test_YOUR_KEY", "Content-Type: application/json"]),
HTTPClient.METHOD_POST, "{\"text\":\"4ss\",\"context\":\"chat\"}"){
"allowed": false,
"action": "review",
"evasion": [
"leetspeak"
],
"matches": [
{
"text": "4ss",
"normalized": "ass",
"category": "profanity",
"severity": "moderate"
}
],
"censored": "***"
}*ass* blocks 121 of the 20,000 commonest English words, pass, class, glass among them. The banned words generator counts both for any word; Unprofane reads every spelling in one call instead.7fd3a314370b.