Usernames & Handles Moderation

Validate usernames, display names, gamertags, and handles at sign-up — short, high-evasion text that's permanent and public.

Configuration: context: username mode: strict

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

Ready to ship moderation?

Get an API key and 300 free requests a month. No credit card required.

Get started free →