Vietnamese Profanity Checker
Detect and mask Vietnamese (and common English) profanity, insults and slurs, including unaccented spellings, teencode, l33t and separators like đ.ị.t.
Result
Press “Run” to see the result.
The profanity filter finds offensive words in Vietnamese comments, chats and reviews and returns a masked version. Its lexicon covers sexual and vulgar words, insults and teencode abbreviations (đm, vcl, dmm, clgt…) plus common English swear words and slurs, each with a category (sexual, vulgar, insult, slur) and a severity (mild, moderate, severe).
It is built for the usual tricks: missing accents where the result is still unambiguous (dit me), repeated letters (đụuuu), l33t digits and symbols (sh1t, f@ck), and separators inside words (đ.ị.t, l-ồ-n). Words that are only offensive with their accents (lồn, cặc, buồi) are matched with accents only, so “lon bia”, “các bạn” and “buổi sáng” are never flagged; ambiguous words (cc, đù, cave) are only checked with strict=true.
The response gives the overall severity, a score, each match with its position and the censored text (mask character, keep_first=true to keep the first letter). Add your own words with extra_words and whitelist with allow.
Use this in your code
curl -X POST "https://apibox.io.vn/v1/profanity-vi" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Đm, cái này vcl thật","keep_first":true}'const res = await fetch('https://apibox.io.vn/v1/profanity-vi', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"text": "Đm, cái này vcl thật",
"keep_first": true
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://apibox.io.vn/v1/profanity-vi",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"text": "Đm, cái này vcl thật", "keep_first": True},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/profanity-vi');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"text":"Đm, cái này vcl thật","keep_first":true}',
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));API documentation → Get a free API key
FAQ
Will it flag normal words without accents?
No. Words like lồn / cặc / buồi only count with their accents, because lon, cac, buoi are ordinary words without them.
Can I tune the list?
Yes: extra_words adds comma-separated words or phrases, allow removes entries, strict=true enables ambiguous ones.
Is the text stored?
No, it is processed in memory only.