[{"data":1,"prerenderedAt":164},["ShallowReactive",2],{"content:\u002Fguides\u002Fprofanity-filter-vs-ai-moderation":3,"ArticleBody_Ysv7YtyFSC3F29g2ZmFJvAMwwDrIfJ8EcKYOGsSAPI":159},{"kind":4,"path":5,"locale":6,"title":7,"htmlTitle":8,"description":9,"navTitle":10,"published":11,"updated":11,"alternates":12,"breadcrumbs":13,"indexable":21,"twin":22,"collection":23,"slug":24,"file":25,"content":26,"hub":19,"titleEm":28,"eyebrow":29,"lead":30,"cta":31,"faq":34,"faqJsonLd":53,"sources":60,"related":136,"topic":155,"jsonLdType":156,"blocks":157,"shortDefinition":158,"feed":21},"article","\u002Fguides\u002Fprofanity-filter-vs-ai-moderation","en","Profanity filter vs AI moderation: what each one catches","Profanity Filter vs AI Moderation Compared · Detectivision","Profanity filter vs AI moderation: what each catches and misses, from leetspeak and Scunthorpe to context and languages, plus cost and when to use both.","Profanity filter vs AI","2026-10-17T01:24:41+03:00",[],[14,17,20],{"name":15,"path":16},"Home","\u002F",{"name":18,"path":19},"Guides","\u002Fguides",{"name":10,"path":5},true,"\u002Fguides\u002Fprofanity-filter-vs-ai-moderation.md","guides","profanity-filter-vs-ai-moderation","content\u002Fen\u002Fguides\u002Fprofanity-filter-vs-ai-moderation.md",{"collection":27,"path":5},"guides_en","Profanity filter vs AI moderation","Guide","A word-list filter blocks the words on its list. AI moderation reads the whole message and says what kind of abuse it finds and how sure it is. Each misses things the other catches. Here is how they differ on spelling tricks, innocent words, context, languages and cost, and when to use both.",{"label":32,"to":33},"Profanity filter API","\u002Fprofanity-filter-api",[35,38,41,44,47,50],{"q":36,"a":37},"Is a profanity filter enough to moderate a community?","Only for swear words in the spellings on its list. It passes abuse that uses no listed word, such as a plain insult, and it can block harmless words that contain a listed one. Add an AI check for the rest, keep a short list of your own, and give moderators the middle.",{"q":39,"a":40},"Does AI moderation catch leetspeak and misspelled swear words?","Sometimes. A model reads patterns, not exact strings, so it can recognise spellings it has learned, but deliberate edits can fool it: in a 2017 test of Google's Perspective demo, misspelling one word cut a phrase's score from 89% to 17%. Send the spellings your users really type through any tool you consider.",{"q":42,"a":43},"How do I avoid the Scunthorpe problem?","Match whole words, keep an allow-list of harmless words, lowercase text with the rules of its language, and hold uncertain cases for a person. A model that scores the whole message does not match listed strings, but it makes mistakes of its own. The glossary page has each fix, its limits and code.",{"q":45,"a":46},"Can I use a profanity filter and AI moderation together?","Yes. Run a short list of your own first, because it is free and instant. Send what passes to the AI check, and let people decide the middle band. The function on this page runs the list, the AI check and your lines.",{"q":48,"a":49},"Which languages does AI moderation cover?","It depends on the provider, so read its list and test your own languages. Detectivision's text check is reliable in English, Spanish, Portuguese, French, German, Italian, Turkish, Arabic, Russian and Hindi. Text in other languages is checked, but the results are not reliable.",{"q":51,"a":52},"What does AI moderation cost compared with a free profanity filter?","A library has no price per check, and its upkeep is your time. An API charges per check: on Detectivision, a credit per started 2,500 characters when the result comes by webhook, and twice that for an answer at once. Errors and partial results are free.",[54,55,56,57,58,59],{"q":36,"a":37},{"q":39,"a":40},{"q":42,"a":43},{"q":45,"a":46},{"q":48,"a":49},{"q":51,"a":52},[61,66,70,74,78,82,86,90,94,98,102,105,108,112,115,118,121,124,127,130,133],{"title":62,"url":63,"publisher":64,"accessed":65},"Scunthorpe problem","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FScunthorpe_problem","Wikipedia","2026-10-17",{"title":67,"url":68,"publisher":69,"accessed":65},"AOL censors British town's name! (Clive Feather, The RISKS Digest, volume 18, issue 07, 25 April 1996)","https:\u002F\u002Fcatless.ncl.ac.uk\u002FRisks\u002F18\u002F07","The RISKS Digest",{"title":71,"url":72,"publisher":73,"accessed":65},"obscenity (README: a profanity filter for Node.js, English preset, MIT licence)","https:\u002F\u002Fgithub.com\u002Fjo3-l\u002Fobscenity","obscenity, on GitHub",{"title":75,"url":76,"publisher":77,"accessed":65},"leo-profanity (README: languages en, fr and ru, MIT licence)","https:\u002F\u002Fgithub.com\u002Fjojoee\u002Fleo-profanity","leo-profanity, on GitHub",{"title":79,"url":80,"publisher":81,"accessed":65},"better-profanity on PyPI (version 0.7.0 of 2 November 2020, MIT: modified spellings and limits)","https:\u002F\u002Fpypi.org\u002Fproject\u002Fbetter-profanity\u002F","PyPI",{"title":83,"url":84,"publisher":85,"accessed":65},"bad-words on the npm registry (version 4.1.5, MIT)","https:\u002F\u002Fregistry.npmjs.org\u002Fbad-words","npm",{"title":87,"url":88,"publisher":89,"accessed":65},"Deceiving Google's Perspective API Built for Detecting Toxic Comments (Hosseini, Kannan, Zhang and Poovendran, arXiv:1702.08138, 27 February 2017)","https:\u002F\u002Farxiv.org\u002Fabs\u002F1702.08138","arXiv",{"title":91,"url":92,"publisher":93,"accessed":65},"The Risk of Racial Bias in Hate Speech Detection (Sap, Card, Gabriel, Choi and Smith, ACL 2019)","https:\u002F\u002Faclanthology.org\u002FP19-1163\u002F","ACL Anthology",{"title":95,"url":96,"publisher":97,"accessed":65},"Detoxify: trained models and code to predict toxic comments (README: limitations and languages)","https:\u002F\u002Fgithub.com\u002Funitaryai\u002Fdetoxify","Unitary, on GitHub",{"title":99,"url":100,"publisher":101,"accessed":65},"Detectivision API status (GET \u002Fapi\u002Fv1\u002Fstatus)","https:\u002F\u002Fapi.detectivision.ai\u002Fapi\u002Fv1\u002Fstatus","Detectivision",{"title":103,"url":104,"publisher":101,"accessed":65},"Profanity filter API (what the profanity and insult flags cover)","https:\u002F\u002Fdetectivision.ai\u002Fprofanity-filter-api",{"title":106,"url":107,"publisher":101,"accessed":65},"Toxicity detection API (the Basic plan has the profanity flag)","https:\u002F\u002Fdetectivision.ai\u002Ftoxicity-detection-api",{"title":109,"url":110,"publisher":111,"accessed":65},"Quickstart","https:\u002F\u002Fdetectivision.ai\u002Fdocs\u002Fquickstart","Detectivision docs",{"title":113,"url":114,"publisher":111,"accessed":65},"Authentication","https:\u002F\u002Fdetectivision.ai\u002Fdocs\u002Fauthentication",{"title":116,"url":117,"publisher":111,"accessed":65},"Text moderation","https:\u002F\u002Fdetectivision.ai\u002Fdocs\u002Ftext",{"title":119,"url":120,"publisher":111,"accessed":65},"Flags","https:\u002F\u002Fdetectivision.ai\u002Fdocs\u002Fflags",{"title":122,"url":123,"publisher":111,"accessed":65},"Responses","https:\u002F\u002Fdetectivision.ai\u002Fdocs\u002Fresponses",{"title":125,"url":126,"publisher":111,"accessed":65},"Errors","https:\u002F\u002Fdetectivision.ai\u002Fdocs\u002Ferrors",{"title":128,"url":129,"publisher":111,"accessed":65},"Async requests","https:\u002F\u002Fdetectivision.ai\u002Fdocs\u002Fasync",{"title":131,"url":132,"publisher":111,"accessed":65},"Credits and billing","https:\u002F\u002Fdetectivision.ai\u002Fdocs\u002Fcredits",{"title":134,"url":135,"publisher":101,"accessed":65},"Detectivision pricing","https:\u002F\u002Fdetectivision.ai\u002Fpricing",[137,140,143,147,151],{"path":33,"title":138,"description":139},"Profanity filter API: find swear words in ten languages without keeping a word list.","Find swear words in chat, comments and usernames in ten languages with one API call: separate flags for profanity and insults, no word list to maintain.",{"path":141,"title":62,"description":142},"\u002Fglossary\u002Fscunthorpe-problem","The Scunthorpe problem is a filter blocking harmless text because a banned word hides inside it. Why it happens in every language, and the fixes.",{"path":144,"title":145,"description":146},"\u002Fguides\u002Fdetect-toxic-comments","How to detect toxic comments in an app or community","How to detect toxic comments: what counts as toxic, the three approaches, what to do with a score, and a working Python and Node.js example.",{"path":148,"title":149,"description":150},"\u002Ftoxicity-detection-api","Toxicity detection","Check comments and chat messages for insults, hate, harassment and self-harm in ten languages, with a flag for each kind of toxicity.",{"path":152,"title":153,"description":154},"\u002Fguides\u002Ffree-content-moderation-apis","Free content moderation APIs in 2026: the limits and the catch","What OpenAI, Google, AWS, Azure, Sightengine and others give for free, the limits, and the catch, from each vendor’s own pages with the date read.","choosing","TechArticle",false,null,["Island",160],{"key":161,"result":162},"ArticleBody_Ysv7YtyFSC3F29g2ZmFJvAMwwDrIfJ8EcKYOGsSAPI",{"head":163},{},1792193478426]