Usernames & Handles Moderation
Validate usernames, display names, gamertags, and handles at sign-up — short, high-evasion text that's permanent and public.
The moderation problem
Usernames are the most adversarial moderation surface. Users deliberately disguise profanity with numbers, symbols, and look-alike characters to slip past sign-up checks, and once a handle is approved it's permanent and visible everywhere your product appears.
Why a word list isn't enough
A plain list never matches 'f_u_c_k_er', 'phaggot', or homoglyph swaps using Cyrillic and Greek characters. There's no surrounding context to read intent from either — just a short, hostile string.
How The Profanity API handles it
Use context `username` with `strict` mode so single matches block and the blocklist layer's homoglyph normalization collapses leetspeak and look-alike evasion back to the underlying word before scoring. Validate synchronously at sign-up so a bad handle never gets created.
Examples
| Input | Verdict |
|---|---|
| PixelWanderer42 | safe → allowed |
| Sh1tL0rd_Xx | abusive → flagged |
Quick start
const res = await fetch("https://api.theprofanityapi.com/v1/check", {
method: "POST",
headers: {
"Authorization": "Bearer " + process.env.PROFANITY_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({ text, context: "username", mode: "strict" }),
});
const { flagged, intent, score } = await res.json(); Other use cases
- Gaming Chat
- Creative Writing & Fiction
- Education Platforms
- Healthcare & Medical Apps
- Legal Tech
- Real-Time Chat & Messaging
- Comment Sections
- Reviews & Marketplaces
- Profile Bios
- Professional Networks
- Kids & Child-Safe Apps
Ready to ship moderation?
Get an API key and 300 free requests a month. No credit card required.
Get started free →