All Products
Search
Document Center

AI Guardrails:Text Moderation 2.0 Multilingual PLUS Service

Last Updated:Mar 31, 2026

Text Moderation 2.0 Multilingual PLUS detects harmful content across 38 languages in a single API call. The service automatically identifies the input language, runs multiple specialized models in parallel, and returns risk labels, confidence scores, and translated English content to support downstream review workflows.

Comparison with Text Moderation 1.0

FeatureText Moderation 2.0Text Moderation 1.0
Language coverage38 languages18 languages
Moderation modelsMultiple models run in parallel; policies are tuned per language and regionSingle model; policies balance accuracy and recall by language
Tag systemInternationalized — includes profanity, regional, and other tags; supports multiple risk labels and sub-labels per requestChinese-scenario tag system; single risk label per request
Detection scopeAll detection scopes are configurable in the console and map directly to API resultsGeneral scopes that do not map directly to results
Language inputAutomatically identified — no need to specifyMust be specified in the request
Response extrasReturns the detected language and translated English contentNo language detection or translation

Supported languages

The service supports the following 38 languages. Language detection is automatic — submit text in any supported language without specifying a language code.

LanguageEnglish nameLanguage code
EnglishEnglishen
Simplified ChineseChinesezh
Traditional ChineseTraditional Chinesezh-tw
IndonesianIndonesianid
MalayMalayms
ThaiThaith
VietnameseVietnamesevi
TagalogTagalogtl
HindiHindihi
ArabicArabicar
TurkishTurkishtr
FrenchFrenchfr
GermanGermande
RussianRussianru
PortuguesePortuguesept
SpanishSpanishes
ItalianItalianit
DutchDutchnl
PolishPolishpl
JapaneseJapaneseja
KoreanKoreanko
UrduUrduur
UighurUighurug
BengaliBengalibn
PersianPersianfa
SwedishSwedishsv
DanishDanishda
NorwegianNorwegianno
IcelandicIcelandicis
FinnishFinnishfi
BelarusianBelarusianbe
LithuanianLithuanianlt
CzechCzechcs
SlovakSlovaksk
HungarianHungarianhu
Modern GreekModern Greekel
RomanianRomanianro
IrishIrishga

Internationalized tags

The service uses an internationalized tag system designed for international business scenarios. A single piece of content can match multiple risk categories simultaneously — for example, a message that contains both profanity and drug-related terms returns both the inappropriate_profanity and contraband_drug labels. Design your downstream processing logic to handle this multi-label behavior.

Tag categories include, but are not limited to, the following:

LabelConfidence score rangeDescription
pornographic_adult0–100Suspected pornographic content
sexual_terms0–100Suspected sexual health content
sexual_suggestive0–100Suspected vulgar content
sexual_orientation0–100Suspected sexual orientation content
regional_cn0–100Suspected domestic political content
regional_illegal0–100Suspected illegal political content
regional_controversial0–100Suspected political controversy
regional_racism0–100Suspected racism
violent_extremist0–100Suspected extremist organizations
violent_incidents0–100Suspected extremist content
violent_weapons0–100Suspected weapons and ammunition
violence_unscList0–100United Nations Security Council Consolidated List
contraband_drug0–100Suspected drug-related content
contraband_gambling0–100Suspected gambling-related content
inappropriate_ethics0–100Suspected content with undesirable values
inappropriate_profanity0–100Suspected abusive or insulting content
inappropriate_oral0–100Suspected vulgar oral content
inappropriate_religion0–100Suspected religious profanity
pt_to_contact0–100Suspected contact information for advertising
pt_to_sites0–100Suspected off-site traffic diversion
customized0–100Hit a custom keyword library

Understanding confidence scores and risk levels

Each label includes a Confidence score from 0 to 100 (accurate to two decimal places). The overall RiskLevel field is derived from the high and low risk thresholds you configure in the console:

  • high: Take action immediately. Custom keyword library hits always return high.

  • medium: Route for manual review.

  • low: Act only when you have high recall requirements; otherwise treat the same as none.

  • none: No risk detected.

Configure your risk score thresholds in the Content Moderation console.

Billing

The service uses pay-as-you-go billing by default. Charges are based on actual usage, calculated daily. Calls that do not return HTTP 200 are not billed.

Moderation typeServiceUnit price
Basic text moderation (text_standard)Multilingual detection for international business (comment_multilingual_pro_global)USD 0.3 per 1,000 calls

Get started

Step 1: Activate the service

Go to Activate Service and activate Text Moderation 2.0.

After activation, billing starts automatically when you make API calls.

Step 2: Grant permissions to a RAM user

Before integrating the SDK or API, grant API access to a Resource Access Management (RAM) user. You can create an AccessKey pair for an Alibaba Cloud account or a RAM user. You must use an AccessKey pair to complete identity verification when you call an Alibaba Cloud API.

  1. Log on to the RAM console as a RAM administrator.

  2. Create a RAM user. For details, see Create a RAM user.

  3. Grant the AliyunYundunGreenWebFullAccess system policy to the RAM user. For details, see Grant permissions to a RAM user.

  4. Create an AccessKey pair for the RAM user. For details, see Obtain an AccessKey pair.

Step 3: Install the SDK and configure your endpoint

Choose the endpoint for your region. For the full SDK integration guide, see Integration guide.

RegionPublic endpointVPC endpoint
Singaporegreen-cip.ap-southeast-1.aliyuncs.comgreen-cip-vpc.ap-southeast-1.aliyuncs.com
UK (London)green-cip.eu-west-1.aliyuncs.comNot available
US (Virginia)green-cip.us-east-1.aliyuncs.comgreen-cip-vpc.us-east-1.aliyuncs.com
US (Silicon Valley)green-cip.us-west-1.aliyuncs.comNot available
Germany (Frankfurt)green-cip.eu-central-1.aliyuncs.comgreen-cip-vpc.eu-central-1.aliyuncs.com
The UK (London) region uses the Singapore console configuration. The US (Silicon Valley) and Germany (Frankfurt) regions use the US (Virginia) console configuration.

API reference

Usage notes

ItemDetails
Business interfaceTextModerationPlus
QPS limit100 calls per second per single user. Exceeding this limit throttles your requests.
BillingOnly requests that return HTTP 200 are billed.

For details on constructing HTTP requests, see Request structure. For SDK examples, see Integration guide.

Request parameters

NameTypeRequiredExampleDescription
ServiceStringYestext_multilingual_pro_globalThe moderation service type. Set to text_multilingual_pro_global for multilingual detection.
ServiceParametersJSONStringYesA JSON string containing the moderation parameters. See the table below.

ServiceParameters fields

NameTypeRequiredExampleDescription
contentStringYesContent to be detectedThe text to moderate. Maximum 600 characters.
dataIdStringNotext0424****A unique identifier for the content item. Accepts uppercase letters, lowercase letters, digits, underscores (_), hyphens (-), and periods (.). Maximum 64 characters.

Response parameters

NameTypeExampleDescription
CodeInteger200HTTP status code. See Status codes.
DataJSONObjectModeration results. See the table below.
MessageStringOKResponse message.
RequestIdStringAAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****The request ID.

Data fields

NameTypeExampleDescription
ResultJSONArrayDetected risk labels and confidence scores. See the table below.
DataIdStringtext0424****The data ID from the request, if provided.
RiskLevelStringhighOverall risk level: high, medium, low, or none.
TranslatedContentStringTranslated textThe translated English content.
DetectedLanguageStringenThe detected input language code.

Result fields

NameTypeExampleDescription
LabelStringpolitical_xxxThe risk label. Multiple labels may be returned. See Internationalized tags.
ConfidenceFloat81.22Confidence score from 0 to 100, accurate to two decimal places. Not all labels include a score.
RiskwordsStringAA,BB,CCDetected sensitive words, comma-separated. Not all labels return sensitive words.
CustomizedHitJSONArray[{"LibName":"...","Keywords":"..."}]Custom library hits. Populated when Label is customized. See the table below.
DescriptionStringSuspected pornographic contentHuman-readable label description. For result processing, use Label — this field may change without notice.

CustomizedHit fields

NameTypeExampleDescription
LibNameStringCustom library 1The name of the custom keyword library.
KeywordsStringCustom word 1,Custom word 2The matched keywords, comma-separated.

Examples

Request

{
    "Service": "text_multilingual_pro_global",
    "ServiceParameters": {
        "content": "testing content",
        "dataId": "text0424****"
    }
}

Response: system policy hit

{
    "Code": 200,
    "Data": {
        "Result": [
            {
                "Label": "political_entity",
                "Description": "Suspected political entity",
                "Confidence": 100.0,
                "RiskWords": "Word A,Word B,Word C"
            },
            {
                "Label": "political_figure",
                "Description": "Suspected political figure",
                "Confidence": 100.0,
                "RiskWords": "Word A,Word B,Word C"
            }
        ],
        "RiskLevel": "high",
        "DetectedLanguage": "en",
        "TranslatedContent": "Translated text content",
        "DataId": "text0424****"
    },
    "Message": "OK",
    "RequestId": "AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****"
}

Response: custom keyword library hit

{
    "Code": 200,
    "Data": {
        "Result": [
            {
                "Description": "Hit a custom library",
                "CustomizedHit": [
                    {
                        "LibName": "Custom library name 1",
                        "KeyWords": "Custom keyword"
                    }
                ],
                "Confidence": 100,
                "Label": "customized"
            }
        ],
        "RiskLevel": "high",
        "DataId": "text0424****"
    },
    "Message": "OK",
    "RequestId": "AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****"
}

Status codes

CodeStatusDescription
200OKRequest successful.
400BAD_REQUESTInvalid request. Check your request parameters.
407NOT_SUPPORTThe language type cannot be identified or is not supported.
408PERMISSION_DENYThe account is not authorized, has an overdue payment, has not been activated, or has been disabled.
500GENERAL_ERRORTemporary server-side error. Retry the request. If this persists, contact online supportonline support.
581TIMEOUTRequest timed out. Retry the request. If this persists, contact online supportonline support.
588EXCEED_QUOTARequest frequency exceeds the quota.