Catalog/text-profanity

Text

Profanity filter (multi-language, severity, masking) API

Match text against a curated multi-language profanity snapshot (English, Spanish, French, German, Portuguese) and return a flag, per-match severity (mild/moderate/strong), a total severity score, and a masked version of the input — with leet-speak normalization so 'sh1t'/'@ss' still match. Gives a moderation decision, not a raw substring hit. Answers 'is this text profane', 'mask the swear words', 'how bad is this language', 'does this contain profanity in Spanish'.

Price$0.01per request
MethodPOST
Route/v1/text/profanity
StatusLive
MIME typeapplication/json
Rate limit60/minute
CacheNo cache
textprofanitymoderationswearfilterobscenitynsfwcontent-moderation
API URLhttps://x402.hexl.dev/v1/text/profanity
Integration docs
Example request
{
  "text": "what the hell, damn it"
}
Example response
{
  "text": "what the hell, damn it",
  "isProfane": true,
  "matchCount": 2,
  "severityScore": 2,
  "highestSeverity": "mild",
  "matches": [
    {
      "word": "hell",
      "language": "en",
      "severity": "mild",
      "index": 9
    },
    {
      "word": "damn",
      "language": "en",
      "severity": "mild",
      "index": 15
    }
  ],
  "masked": "what the ****, **** it"
}
Input schema
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "examples": [
        "what the hell, damn it"
      ]
    },
    "mask": {
      "type": "string",
      "examples": [
        "*"
      ]
    },
    "languages": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "examples": [
        [
          "en",
          "es"
        ]
      ]
    }
  }
}
Output schema
{
  "type": "object",
  "additionalProperties": true
}