Profanity Filter API
Detect and censor profanity and offensive words in user-generated text. Supports 25+ languages (English, Spanish, French, German, Italian, Portuguese, Dutch, Russian, Japanese and more), leetspeak (sh1t, @ss), custom blocked words and an allow-list for false positives.
Authentication & base URL
Subscribe through one of our marketplace listings; your marketplace API key and base URL are shown there. All endpoints return JSON over HTTPS, served from a global edge network (typically 20–150 ms).
Endpoints
GET /v1/profanity
Check and censor text
| Parameter | In | Description | Example |
|---|---|---|---|
text * | query | Text to check (or POST it as the body) | What the f*** is this sh1t |
lang | query | Comma-separated language codes (en, es, fr, de, it, pt, nl, ru, ja...) | en |
fill | query | Character used to censor | * |
add | query | Extra words to block, comma-separated | |
allow | query | Words to never flag, comma-separated | |
leet | query | Detect leetspeak (true/false) | true |
POST /v1/profanity
Check and censor text (POST text body)
Request body: text/plain
| Parameter | In | Description | Example |
|---|---|---|---|
lang | query | Comma-separated language codes (en, es, fr, de, it, pt, nl, ru, ja...) | en |
fill | query | Character used to censor | * |
add | query | Extra words to block, comma-separated | |
allow | query | Words to never flag, comma-separated | |
leet | query | Detect leetspeak (true/false) | true |
Example
GET /v1/profanity?text=What+the+f%2A%2A%2A+is+this+sh1t&lang=en&fill=%2A&add=&allow=&leet=true
{
"isProfane": true,
"count": 1,
"matches": [
{
"word": "sh1t",
"index": 22
}
],
"censored": "What the f*** is this ****",
"languages": [
"en"
],
"attribution": "Word lists: List of Dirty, Naughty, Obscene, and Otherwise Bad Words (Shutterstock), CC BY 4.0"
}Detect and censor profanity and offensive words in user-generated text. Supports 25+ languages (English, Spanish, French, German, Italian, Portuguese, Dutch, Russian, Japanese and more), leetspeak (sh1t, @ss), custom blocked words and an allow-list for false positives.
Use cases
Chat and comment moderation, usernames and nicknames validation, game lobbies, review sites, kids' apps, pre-filtering text before publishing or sending to an LLM.
Why this API
- Fast: global edge network, answers in milliseconds.
- Returns isProfane, every match with its position and a censored copy of the text.
- Whole-word matching (no Scunthorpe problem) with accent folding.
- Word lists: List of Dirty, Naughty, Obscene, and Otherwise Bad Words (Shutterstock), CC BY 4.0.
- Fair pricing: Free plan 500 requests/month, Pro 25,000 for $4.99, Ultra 150,000 for $14.99.
Support
Questions or a feature you need? Open a thread in the Discussions tab.
Pricing
Free plan with 500 calls per month, then Pro (25,000 calls for $4.99/month) and Ultra (150,000 calls for $14.99/month). See all plans.