PurgoMalum API
Free profanity filter API with no key: remove or mask offensive words from text, with custom word lists and configurable replacement characters. Tested.
Endpoint tested and returned HTTP 200 on 2026-08-19
What is the PurgoMalum API?
PurgoMalum is a free, key-free profanity filtering API that removes or masks offensive words in a supplied string, with configurable replacement characters and support for adding or excluding custom words.
PurgoMalum takes text and returns it with profanity filtered out, replaced by a character of your choosing. It handles common obfuscations such as character substitution and repeated letters, which naive word-list filters miss.
It is worth being realistic about what any profanity filter achieves. Filters produce both false positives — the classic Scunthorpe problem, where legitimate words contain filtered substrings — and false negatives from creative spelling. Use it as one layer, not as your only moderation.
Quick facts
- Base URL
https://www.purgomalum.com/service- Authentication
- No API key required.
- Rate limit
- No published limit; the service asks for reasonable use.
- Pricing
- Free.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the PurgoMalum API
Every request below was executed against the live API on 2026-08-19, and the response shown is the real body it returned — not an illustration.
1. Filter profanity from text
GET https://www.purgomalum.com/service/json?text=this%20is%20a%20test
curl 'https://www.purgomalum.com/service/json?text=this%20is%20a%20test'const res = await fetch("https://www.purgomalum.com/service/json?text=this%20is%20a%20test");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://www.purgomalum.com/service/json?text=this%20is%20a%20test", timeout=20)
res.raise_for_status()
print(res.json()){
"result": "this is a test"
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
text | string | Required | The text to filter. URL-encode it. this is a test |
add | string | Optional | Comma-separated extra words to filter. badword,another |
fill_text | string | Optional | Replacement text for filtered words. [removed] |
fill_char | string | Optional | Single character to mask each letter. * |
format | string | Optional | json, xml or plain. json |
Response fields
resultstring- The filtered text. That is the whole response on the JSON endpoint.
What you can build with the PurgoMalum API
- Filter user-generated comments and usernames
- Moderate chat messages in a game or community app
- Sanitise form input before storage
- Add a first-pass content filter ahead of human moderation
Common errors and how to fix them
Legitimate words filtered
Substring matching causes false positives — the Scunthorpe problem.
Fix: Use the `add` and exclusion options to tune the list for your context, and never auto-ban on a filter hit alone.
Obfuscated profanity slips through
No filter catches every creative spelling.
Fix: Treat it as one layer alongside reporting and human moderation.
Text truncated
The text parameter was not URL-encoded.
Fix: Percent-encode the text; ampersands and spaces break the query string.
PurgoMalum API — frequently asked questions
Is PurgoMalum free?
Yes, free with no API key or registration.
Can I add my own banned words?
Yes, pass a comma-separated list in the `add` parameter, which is how you tune it for community-specific terms.
Does it catch obfuscated profanity?
It handles common substitutions and repeated characters, but no filter catches everything. Treat it as a first pass rather than complete protection.
Should I auto-ban users based on this?
No. Profanity filters produce false positives on legitimate words containing filtered substrings. Use it to flag content for review rather than to take automatic punitive action.
Tools that pair with this API
Word Counter
Count words, characters, sentences, paragraphs and estimated reading time instantly. Free online word counter for essays, blogs and social media.
Text Compare
Compare two texts online free and highlight every difference. A private text comparison tool that finds matches and changes right in your browser.
URL Encoder
Percent-encode text for URLs instantly. Switch between encodeURIComponent and encodeURI modes, see live output and copy the result. Free URL encoder.
PurgoMalum is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.