Profanity Checker avatar

Profanity Checker

Pricing

$0.25 / 1,000 processed texts

Go to Apify Store
Profanity Checker

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é

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

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:

FieldDescription
inputIndex1-based position of the submitted text.
originalTextText exactly as submitted.
cleanedTextText after the selected replacement mode is applied.
containsProfanityWhether any blocked words were found after allowed words were applied.
matchCountNumber of blocked-word matches found.
replacementCountNumber of replacements applied to the cleaned text.
matchesMatch evidence with text, canonical term, list source, character positions, replacement value, and allowed status.
listVersionBuilt-in list version used for the run.
processedAtUTC 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

  1. Open the Actor input.
  2. Add one or more items in Text snippets.
  3. Add Custom blocked words if your workflow needs extra terms.
  4. Add Allowed words for terms that should pass even if they appear in the default or custom list.
  5. Choose Replacement mode.
  6. 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:

UnitPrice
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

Made with ❤️ by Maxime Dupré