Profanity filtering users can't bypass.
The French swear words and insults people meet most, what each means, how strong it is and how it is hidden.
Narrow them by kind, strength or spelling; strong words are masked, and the download has each in full.
66 words
Said about a thing or a moment, not aimed at anyone.
pu***n
f**k, fu***ng hell (interjection; literally "wh**e")
merde
s**t (interjection or noun)
quel bordel
what a fu***ng mess
chier
to s**t
chiant
fu***ng annoying, boring (vulgar)
foutre
to f**k, to do, to put (vulgar)
couilles
balls (vulgar)
mon cul
my ass (disbelief)
saloperie
crap, filth
connerie
bu****it, stupid thing
emmerder
to piss off, to bore (emmerder, emmerdeur, emmerdant, emmerdement)
pisser
to piss
dégueulasse
disgusting, gross (vulgar)
à gerber
to puke (vulgar)
osef
who cares (abbreviation of "on s'en fout")
ni***r
to f**k, to f**k up, to wreck
tabarnak
Québec and Belgian swearing (church words: tabernacle, Christ, chalice, host)
hostie
Québec swearing that is also an ordinary church word (the host, the ciborium; English "sacrament")
z**i
"my dick" (Maghrebi Arabic, used in French as a vulgar interjection)
Aimed at a person.
co***rd
as***le, jerk
co****se
stupid bi**h
conne
stupid (feminine of "con"), idiot
gros c*n
stupid jerk, fu***ng idiot
en***ré
bastard, scumbag (vulgar)
en***é
fu***r, "fu***d in the ass" (strong insult)
sa***e
s**t, bi**h
salaud
bastard, son of a bi**h
p**e
wh**e
fils de p**e
son of a bi**h (literally "son of a wh**e")
ni**e ta mère
f**k your mother
va te faire fo***e
go f**k yourself
va te faire voir
get lost, go away
va chier
go take a s**t, f**k off
ta gueule
shut the f**k up
casse-toi
get lost, piss off
merdeux
little s**t, snotty brat
sou*-***de
piece of s**t, scum
t**u d* c*l
as***le
lèche-cul
ass-kisser, brown-noser
casse-couilles
pain in the ass (literally "ball-breaker")
couillon
fool, idiot (vulgar root)
tête de nœud
dickhead
pouffe
bimbo, bi**h, gold-digger
ch***ne
bi**h
bâtard
bastard
sale bâtard
you bastard
branleur
wanker, lazy good-for-nothing
abruti
moron, idiot
crétin
cretin, idiot
imbécile
imbecile, fool
idiot
idiot
débile
moron, r*****-ish (dated clinical term turned insult)
cassos
welfare case, bum, scum, fatso (classist and body-shaming insults)
facho
fascist, leftie (political name-calling)
Vulgar words for parts of the body. Words for sexual acts are not on this page.
ch***e
pu**y (vulgar)
nichons
tits (vulgar)
t**b
dick, cock (vulgar slang)
foufoune
pu**y (colloquial; in Québec also buttocks)
Words that demean people for who they are, shown to the first letter with what each one means.
p***
f***** (homophobic slur, from p********)
Shown to its first letter. The download has it in full.
t******
f*****, sissy
Shown to its first letter. The download has it in full.
g*****
d***
Shown to its first letter. The download has it in full.
b********
racist slur for an Arab or North African
Shown to its first letter. The download has it in full.
n****
the n-word (racist slur for a Black person)
Shown to its first letter. The download has it in full.
y*****
k*** (y*****, y******, y******)
Shown to its first letter. The download has it in full.
c*********
anti-Asian slurs
Shown to its first letter. The download has it in full.
m********
r*****, m******** (disability slurs)
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.
connexion
An ordinary word. The list finds "conne" inside it.
Blocks it
allow
m3rde
Digits and symbols, from "merde". The list holds no word in it.
Misses it
review
c.h.i.e.r
Spaced apart, from "chier". The list holds no word in it.
Misses it
review
сouilles
Look-alike letters, from "couilles". 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": "French swear words",
"count": 66,
"words": [
{
"word": "merde",
"language": "fr",
"category": "profanity",
"severity": "moderate",
"meaning": "shit (interjection or noun)",
"region": null,
"forms": [
"merdes",
"merdique",
"merdiques",
…
]
},
…
]
}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":"m3rde","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": "m3rde",
"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": "m3rde",
"context": "chat",
},
timeout=5.0,
)
result = r.json()req, _ := http.NewRequest("POST", "https://api.unprofane.com/v1/check",
strings.NewReader(`{"text":"m3rde","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":"m3rde","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":"m3rde","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\":\"m3rde\",\"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\":\"m3rde\",\"context\":\"chat\"}"){
"allowed": false,
"action": "review",
"evasion": [
"leetspeak"
],
"matches": [
{
"text": "m3rde",
"normalized": "merde",
"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.