Guide · Published · Updated

How to moderate hate speech and insults in Arabic and Turkish

Many moderation APIs were built for English first. Some list Arabic for one category only, and some do not list Turkish at all. Check what each API publishes for each language and each category, then test it on your own messages. Detectivision checks Arabic and Turkish text for insults, hate speech, racism, sexism, sexual language and profanity, among 12 languages, with no language to set.

To moderate Arabic and Turkish text, use a moderation API that lists both languages for the categories your rules cover, such as insults and hate speech, and test it on your own messages before you rely on it. Many tools were built for English first: some list Arabic for one category only, and some do not list Turkish at all. Detectivision checks Arabic and Turkish text for insults, hate speech, racism, sexism, sexual language and profanity, among 12 languages, in one API call.

Why English-first tools miss Arabic and Turkish

Arabic

  • Many spoken varieties. People write online the way they speak: Egyptian, Gulf, Levantine or Maghrebi Arabic as often as Modern Standard Arabic. A word that is ordinary in one variety can be an insult in another, and a model trained mostly on formal text meets the everyday words less often.
  • Arabic in Latin letters. Many people type Arabic with Latin letters and digits for the sounds Latin lacks: 3 for ع, 7 for ح, 2 for ء, as in "7abibi". A model that knows only Arabic script, or only English, reads it as noise.
  • The script itself. Short vowels are usually left out, letters change shape with their position, and people stretch words with repeated letters or the ـ stroke for emphasis. A word list matches none of these unless every form is in it.
  • Two directions in one line. Arabic runs right to left, while numbers, names and English words inside it run left to right. Code that cuts or cleans text without handling both can split a word in two.

Turkish

  • Suffixes. Turkish adds suffixes to a root, so one insult takes many forms: aptal, aptallar, aptalsın, aptallığın. A list of whole words misses the forms it lacks. A list that matches inside words blocks harmless words that happen to contain a short vulgar one; our Turkish page shows examples from the most common Turkish words.
  • Typing without Turkish letters. On a keyboard without them, ş becomes s, ç becomes c, ğ becomes g, ı becomes i, ö becomes o and ü becomes u: şerefsiz is typed serefsiz. Each spelling is a new entry for a list.
  • Two letters i. Turkish has a dotted i and a dotless ı. Code that changes case without the Turkish locale turns a capital I into i rather than ı, which can turn a harmless word into a vulgar one.
  • Abbreviations. Swear words are often typed as two or three letters, which a list cannot tell apart from ordinary abbreviations without the rest of the message.

Both

Messages mix languages: Arabic with English or French, Turkish with English or German. Emoji, repeated letters and symbols in place of letters are used to slip past filters. And the same word can be abuse or reporting abuse, depending on the sentence around it.

What each API publishes for Arabic and Turkish

Arabic and Turkish in content moderation APIsAs read on 5 November 2026
APIArabicTurkishWhat its own page says
DetectivisionYesYesText moderation understands 12 languages, Arabic and Turkish among them, with no language to set. Insults, hate, racism, sexism, sexual language and self-harm are flags on every account; profanity is on the Basic plan
Perspective API (Jigsaw)TOXICITY onlyNot listedTOXICITY lists 17 languages, Arabic among them. SEVERE_TOXICITY, IDENTITY_ATTACK, INSULT, PROFANITY and THREAT list German, English, Spanish, French, Italian, Portuguese and Russian. The service stops after 31 December 2026
HiveYesYesIts languages table lists sexual, violence, hate, bullying, phone numbers and child safety (beta) for both. Text moderation "requires an annual contract"; text up to 1,024 characters
SightengineNot listedYesIts text classification models list English, French, Italian, Portuguese, Spanish, Russian and Turkish; its rule-based filters list 18 languages, Turkish among them
Azure AI Content SafetyOutside the tested setOutside the tested setThe Hate, Sexual, Violence and Self-harm text classifiers are trained and tested on Chinese, English, French, German, Italian, Japanese, Portuguese and Spanish. Microsoft says they can classify other languages, with performance that can vary
Amazon ComprehendNoNo"Currently, toxic content detection supports only the English language"
OpenAI moderationNot listedNot listedIts moderation guide lists categories and says the endpoint is free to use; it lists no languages

Each company's facts are from its own pages, as read on 5 November 2026. Detectivision is not affiliated with any of them. A language in a list means the company says it covers it; it does not tell you how well. Only a test on your own messages does.

How Detectivision checks Arabic and Turkish

Send each message as it was written to POST /api/v1/moderation with "type": "text_moderation". Nothing is translated or cleaned first, and there is no language to set, so a community that writes in Arabic, Turkish and English needs one integration.

FlagWhat it finds
insultName-calling and personal attacks aimed at someone
hateAttacks on people for who they are: their origin, religion, gender and the like
racismAbuse about race, ethnicity or origin
sexismAbuse about sex or gender
sexualSexual language, and sexual harassment of someone
profanitySwear words and vulgar slang, even when not aimed at anyone (on the Basic plan)
self_harmTalk of suicide or self-harm, so someone can reach out

Each flag raised comes with its confidence, so your rules can treat them apart: remove hate at once, hold insults for a moderator, only warn on profanity. The models are our own: our team collects and cleans the training data, and trains and develops the models in-house.

Request
curl https://api.detectivision.ai/api/v1/moderation \
  -H "Api-Key: $DETECTIVISION_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "text_moderation",
    "input": "أنت غبي ولا أحد يريدك هنا",
    "mode": "detect",
    "flags": ["insult", "hate", "racism", "sexism", "sexual"],
    "metadata": { "commentId": "c_7310" }
  }'
Response
{
  "id": 3184,
  "type": "text_moderation",
  "mode": "detect",
  "status": "completed",
  "flagged": true,
  "flags": [{ "flag": "insult", "confidence": 0.93 }],
  "checked": ["hate", "insult", "racism", "sexism", "sexual"],
  "unchecked": [],
  "tookMs": 640,
  "usage": { "charged": 2, "remaining": 9998 },
  "metadata": { "commentId": "c_7310" }
}

The message means "You are stupid and nobody wants you here." The Turkish "Sen salak birisin, kimse seni istemiyor." says the same and goes to the same endpoint. Values in the example are illustrative. A text can be up to 10,000 characters and costs 1 credit per started 2,500 characters by webhook, twice that for an answer at once (Text moderation docs).

Voice messages and the sound of videos in both languages go through audio moderation, which understands the same 12 languages and gives each finding with its start and end in seconds.

Test before you switch

  1. Collect real messages. Take a few hundred messages your moderators have already judged in each language: removed ones and approved ones.
  2. Cover how people write. Include Gulf, Egyptian, Levantine and Maghrebi Arabic if your users write them, Arabic typed in Latin letters, Turkish typed without its letters, mixed-language messages, and messages that quote abuse to report it.
  3. Count both kinds of error. For each flag, count the abusive messages it missed and the harmless ones it flagged. One overall accuracy figure hides the category that matters to you.
  4. Set a line per flag. A flag is raised from a confidence of 0.5 by default. Hold the band your moderators should see, and act automatically only above a line where harmless messages stop appearing.
  5. Keep people who read the language. Appeals and borderline cases need moderators who read Arabic and Turkish, and know the slang of your community.

Start the free trial and run the test in the dashboard's Playground or through the API. The Perspective API alternative page maps Perspective's attributes to these flags if you are moving before it stops.

Questions

Frequently asked

Which content moderation APIs support Arabic and Turkish?

As read on 5 November 2026: Detectivision checks both, among 12 languages. Hive lists both for its sexual, violence, hate, bullying and phone number classes, under an annual contract. Sightengine lists Turkish. Perspective lists Arabic for TOXICITY only. Azure AI Content Safety's text classifiers are trained and tested on eight languages, neither of them. Amazon Comprehend's toxicity detection supports only English.

Does Perspective API support Turkish?

Its Attributes & Languages page, read on 5 November 2026, lists no attribute in Turkish, and lists Arabic only for TOXICITY. Perspective API also stops after 31 December 2026.

Why do word lists miss Turkish insults?

Turkish builds words with suffixes, so one insult has dozens of forms. A list of whole words misses them; a list that matches inside words blocks harmless ones. People also type without Turkish letters, so ş becomes s and ı becomes i.

Do I need to tell the API which language a message is in?

Not with Detectivision. Send the message as it was written, Arabic or Turkish script and all; there is no language setting, and nothing is translated first.

How do I test a moderation API on Arabic and Turkish messages?

Take a few hundred messages your moderators have already judged in each language, including dialect, Arabic typed in Latin letters, Turkish typed without its letters and quoted abuse. Send them all, then count misses and false alarms for each category before you set your lines.

Can voice messages in Arabic and Turkish be checked too?

Yes. Detectivision's audio moderation understands the same 12 languages as its text moderation, and gives each finding with its start and end in seconds.

Related articles
Sources
  1. About the API - Attributes and Languages, Jigsaw, read on 5 November 2026
  2. Perspective API (sunset notice), Jigsaw, read on 5 November 2026
  3. Region availability and service limits: Language considerations (Azure AI Content Safety), Microsoft, read on 5 November 2026
  4. Trust and safety: Toxicity detection (Amazon Comprehend Developer Guide), Amazon Web Services, read on 5 November 2026
  5. Text Moderation - Overview (languages table), Hive, read on 5 November 2026
  6. What languages does text moderation work with?, Sightengine, read on 5 November 2026
  7. Moderation (OpenAI API guide), OpenAI, read on 5 November 2026
  8. Text moderation (docs), Detectivision, read on 5 November 2026
  9. Text moderation API, Detectivision, read on 5 November 2026
  10. Türkçe küfür ve hakaret tespiti (Turkish suffixes, letters and word lists), Detectivision, read on 5 November 2026
  11. Audio moderation API, Detectivision, read on 5 November 2026