Profanity Checker
Pricing
$0.25 / 1,000 processed texts
Profanity Checker
Check comments, reviews, messages, and text snippets for blocked words. Clean text and export match evidence for content moderation workflows.
Pricing
$0.25 / 1,000 processed texts
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
🛡️ Profanity checker for moderation workflows
Profanity Checker helps you check comments, reviews, messages, survey answers, support tickets, and other text snippets for blocked words. Paste one text or a batch of texts, add optional custom blocked words or allowed words, and get one clean dataset row per processed text with the original text, cleaned text, match evidence, counts, and a timestamp.
Use it when you need a fast profanity checker before sending text into a CRM, help desk, review queue, chatbot, community tool, analytics pipeline, or spreadsheet. The Actor is deterministic, so the same input and word settings produce the same output. It does not need a login, cookies, API key, or source website.
For a small first run, keep the prefilled examples and run the Actor. You will see how built-in blocked words, custom words, allowed words, and replacement modes appear in the output before you connect a larger workflow through the Apify API, schedules, webhooks, or dataset exports.
✅ What this profanity checker does
- Checks each submitted text snippet against a built-in English blocked-word list.
- Lets you add extra custom blocked words for your product, brand, community, or internal policy.
- Lets you allow words that would otherwise be blocked.
- Supports mask, replacement text, and removal modes.
- Returns cleaned text while preserving the original text for review.
- Includes match evidence with positions, matched text, canonical term, source list, and replacement value.
- Saves one dataset row per processed text.
- Charges only for processed text rows.
Custom blocked words are extra words on top of the default list. Allowed words subtract from both the default list and your custom list, which is useful for brand names, usernames, product names, quoted content, or terms that are acceptable in your own workflow.
📊 Data you get
Each output row represents one processed text snippet. Rows include:
| Field | Description |
|---|---|
inputIndex | 1-based position of the submitted text. |
originalText | Text exactly as submitted. |
cleanedText | Text after the selected replacement mode is applied. |
containsProfanity | Whether any blocked words were found after allowed words were applied. |
matchCount | Number of blocked-word matches found. |
replacementCount | Number of replacements applied to the cleaned text. |
matches | Match evidence with text, canonical term, list source, character positions, replacement value, and allowed status. |
listVersion | Built-in list version used for the run. |
processedAt | UTC timestamp when the text was processed. |
You can export the dataset as JSON, CSV, Excel, XML, RSS, or HTML, or use the output through the Apify API and integrations.
🚀 How to run it
- Open the Actor input.
- Add one or more items in Text snippets.
- Add Custom blocked words if your workflow needs extra terms.
- Add Allowed words for terms that should pass even if they appear in the default or custom list.
- Choose Replacement mode.
- Start the Actor and open the dataset.
Use Mask blocked words when you want readable cleaned text with the same rough shape as the original. Use Replace with custom text when downstream tools expect a fixed marker such as [redacted]. Use Remove blocked words when you want the term deleted from the cleaned text.
🧾 Input example
{"texts": ["This review is clean and ready to publish.","Please redact this damn message before export."],"customWords": ["spoiler"],"allowedWords": ["damnation"],"replacementMode": "mask","replacementText": "*"}
Text snippets is the only required input. Custom blocked words and allowed words are optional. The default replacement mode is masking.
📤 Output example
{"inputIndex": 2,"originalText": "Please redact this damn message before export.","cleanedText": "Please redact this **** message before export.","containsProfanity": true,"matchCount": 1,"replacementCount": 1,"matches": [{"matchedText": "damn","canonicalTerm": "damn","source": "builtin","start": 19,"end": 23,"replacement": "****","allowed": false}],"listVersion": "builtin-en-v1","processedAt": "2026-06-15T12:00:00.000Z"}
💳 Pricing
This Actor uses pay-per-event pricing. You are charged once per text snippet processed.
Current event price:
| Unit | Price |
|---|---|
| Processed text | $0.00025 |
That equals $0.25 per 1,000 processed text snippets. There is no separate Actor-start charge in this Actor's local pricing artifact.
⚠️ Limits and caveats
Profanity Checker is a blocked-word checker, not a toxicity classifier, sentiment model, legal review tool, or full trust-and-safety system. It finds terms from the built-in list plus your custom words, then applies your allowed-word exceptions.
The Actor does not understand intent, sarcasm, harassment severity, language context, image content, audio, or user history. It is best used as a deterministic text-cleaning step, a moderation signal, or a prefilter before human review or a richer policy workflow.
The built-in list is English-focused. For brand-specific, community-specific, or multilingual rules, add custom blocked words and allowed words that match your own policy.
❓ FAQ
➕ Are custom blocked words added to the default list?
Yes. Custom blocked words are extra words on top of the default built-in list.
✅ What do allowed words do?
Allowed words override both the built-in list and custom blocked words. Use them for terms that should pass in your workflow.
🔐 Do I need an API key or account login?
No. This Actor checks the text you provide. It does not connect to an external content platform.
🧠 Is this an AI moderation classifier?
No. It is a deterministic blocked-word checker with match evidence and cleaned text output. It does not assign toxicity scores or infer intent.
📁 Can I use it with CSV or spreadsheets?
Yes. Pass text snippets through the Apify Console, API, integrations, or your own workflow, then export the dataset to CSV, Excel, JSON, and other supported formats.
📝 Changelog
- 0.1: Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Other actors
- Webpage Text Extractor ↗ - Extract clean page text or Markdown before moderation or LLM workflows.
- Email MX Verifier ↗ - Check email syntax, MX records, disposable domains, and delivery risk.
- SMTP Email Verifier ↗ - Probe mailbox deliverability with SMTP evidence before outreach.
- Website Emails Scraper ↗ - Find public contact emails from websites for lead or data workflows.
- Gmail Username Checker ↗ - Check Gmail username availability for new address ideas.
Made with ❤️ by Maxime Dupré