Submit a webpage for moderation to detect policy, safety, and compliance risks across its text, images, audio, and video content. You can submit a URL to crawl, raw page text, or raw HTML source. The service extracts every component, moderates each one, and returns a consolidated verdict.
Request body is JSON in the HTTP body. The body must not exceed 3.5 MB.
Request Parameters
Parameter
Type
Required
Description
accessKey
string
Yes
API authentication key. The default accessKey is sent in your onboarding email.
appId
string
Yes
Application identifier, such as web for your web application or app for your mobile app. The default appId is sent in your onboarding email. Contact DeepCleer if you need a new appId.
eventId
string
Yes
Event identifier used to distinguish moderation scenarios in your application. The default eventId is sent in your onboarding email. Contact DeepCleer if you need a new eventId.
imgType
string
Yes
Image detection types for images on the page. Multiple values can be joined with underscores — for example, POLITY_QRCODE_ADVERT. NONE cannot be combined with any other value. See Image Detection Types.
txtType
string
Yes
Text detection types for text extracted from the page. Multiple values can be joined with underscores — for example, TEXTRISK_FRAUD. Combined types are unioned. NONE cannot be combined with any other value. See Text Detection Types.
audioType
string
No
Audio detection types for audio on the page. Multiple values can be joined with underscores — for example, POLITY_EROTIC_MOAN_ADVERT (recommended). NONE cannot be combined with any other value. See Audio Detection Types.
videoImgType
string
No
Detection types for video frames sampled from page video. Multiple values can be joined with underscores. NONE cannot be combined with any other value. See Image Detection Types.
videoAudioType
string
No
Detection types for the audio track of page video. Multiple values can be joined with underscores. NONE cannot be combined with any other value. See Audio Detection Types.
callback
string
No
Callback HTTP/HTTPS URL. When provided, DeepCleer posts the full moderation result to this endpoint as soon as it becomes available.
Risky text inside images. Required if you need to moderate text rendered within an image.
BOCR
Minority-language OCR and automatic language detection. Singapore cluster only.
Text Detection Types
Applies to txtType.
Value
Description
NONE
Do not moderate text
POLITY
Political content
VIOLENT
Violence and terrorism
BAN
Prohibited content
EROTIC
Pornographic content
DIRTY
Profanity and abusive language
ADVERT
Advertising
PRIVACY
Personally identifiable information
ADLAW
Advertising law violations
MEANINGLESS
Meaningless or junk text
FRAUD
Online fraud and scams
UNPOACH
High-value user poaching attempts
TEXTMINOR
Content involving minors
TEXTRISK
Bundled general-risk check. Covers POLITY, VIOLENT, BAN, EROTIC, DIRTY, ADVERT, PRIVACY, ADLAW, and MEANINGLESS. When combined with any of these individual categories, the result is their union — so TEXTRISK_POLITY behaves the same as TEXTRISK alone.
Audio Detection Types
Applies to audioType and videoAudioType.
Value
Description
NONE
Do not moderate audio
AUDIOPOLITICAL
Voiceprint recognition of top political figures
POLITY
Political content
EROTIC
Pornographic content
ADVERT
Advertising
ADLAW
Advertising law violations
BAN
Prohibited content
VIOLENT
Violence and terrorism
ANTHEN
National anthem recognition
MOAN
Moaning / erotic breathing
DIRTY
Profanity and abusive language
BANEDAUDIO
Prohibited songs
COPYRIGHTSONGS
Copyrighted songs
data Object
Provide exactly one of url, text, or contents.
Parameter
Type
Required
Description
url
string
No
Downloadable URL of the webpage to moderate. The URL's Content-Type header must be text/html. Content size up to 500 MB. Text length defaults to a 500,000-character limit; images default to a 500-image limit. Provide exactly one of url, text, or contents.
text
string
No
Plain text of the page to moderate. Up to 500,000 characters. Provide exactly one of url, text, or contents.
contents
string
No
Raw HTML source of the page to moderate. Text length defaults to a 500,000-character limit; images default to a 500-image limit. Provide exactly one of url, text, or contents.
lang
string
Yes
Language of the page text. Pass en by default. For international traffic when the language is unknown, pass auto to enable automatic language detection. See Supported Languages.
acceptLang
string
Yes
Language for returned labels. Set en by default.
returnAllImg
int
No
Image return level. 0: return only images whose risk level is not PASS. 1: return images of all risk levels. Default 0.
returnAllText
int
No
Text return level. 0: return only text whose risk level is not PASS. 1: return text of all risk levels. Default 0.
returnAllVideoImg
int
No
Video-frame return level. 0: return only frames whose risk level is not PASS. 1: return all frames. Default 0.
returnAllVideoAudio
int
No
Video-audio return level. 0: return only segments whose risk level is not PASS. 1: return all segments. Default 0.
returnAllVideo
int
No
Video return level. 0: return only videos whose risk level is not PASS. 1: return all videos. Default 0.
returnAllAudio
int
No
Audio-segment return level. 0: return only segments whose risk level is not PASS. 1: return all segments. Default 0.
tokenId
string
Yes
Stable identifier for the end user, typically your internal user UID (an encrypted UID is fine). Used for behavioral-risk signals such as spam and repeat-offender detection. Alphanumeric with underscores and hyphens, up to 64 characters. Use a unique data ID if no user UID exists.
receiveTokenId
string
No
tokenId of the message recipient in a one-to-one scenario. Alphanumeric with underscores and hyphens, up to 64 characters.
level
int
No
User tier, used to apply different interception policies per tier. 0: lowest (e.g., newly registered or fully inactive). 1: low (low activity or low level). 2: medium. 3: high (high activity or high level). 4: highest (e.g., paying or VIP users).
gender
string
No
User gender. male or female.
nickname
string
No
The end user's display name, moderated for risky content.
ip
string
No
Public IP address of the user who submitted the page. Accepts IPv4 or IPv6.
deviceId
string
No
Device-fingerprint identifier issued by DeepCleer.
dataId
string
No
Client-side identifier attached to the moderation call. DeepCleer echoes it back with the result, letting you correlate your source record with the moderation verdict.
Live-room or chat-room ID. Strongly recommended when eventId is groupChat; without it, context-aware moderation cannot be applied.
passThrough
json
No
Arbitrary pass-through data. The value is echoed back verbatim in the response, unchanged.
articleDoubleJumpConfig Object
Parameter
Type
Required
Description
isOpen
bool
No
Whether to enable second-hop crawling. Default off.
articleScreenShotConfig Object
Parameter
Type
Required
Description
isOpen
bool
No
Whether to enable screenshot moderation. Default off.
width
int
No
Screenshot width. Default 1080.
height
int
No
Screenshot height. Default 6480.
timeoutSecond
int
No
Screenshot timeout, in seconds. Default 30.
userAgent
string
No
Browser User-Agent. Default Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36.
articleDynamicConfig Object
Parameter
Type
Required
Description
isOpen
bool
No
Whether to enable dynamic-page (rendered) moderation. Default off.
userAgent
string
No
Browser User-Agent. Default Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36.
cookie
string
No
Cookie used when rendering the dynamic page. Default empty.
Supported Languages
Value
Language
en
English
zh
Chinese
ar
Arabic
hi
Hindi
es
Spanish
fr
French
ru
Russian
pt
Portuguese
id
Indonesian
de
German
ja
Japanese
tr
Turkish
vi
Vietnamese
it
Italian
th
Thai
tl
Filipino
ko
Korean
ms
Malay
auto
Automatic detection
Response
Synchronous Response
The call returns the following base response immediately. When a callback URL is provided in the request, the full result is delivered asynchronously to that callback (see Callback Response).
Current result stage. 0: machine moderation. 1: human moderation.
finalResult
int
Yes
Whether this is the final result. 1: final (can be used directly for downstream processing; default when only machine moderation is enabled). 0: intermediate (human review will follow).
Response Codes
Code
Message
1100
Success
1901
QPS limit exceeded
1902
Invalid parameters
1903
Service failure
1905
Character count exceeded
9100
Insufficient balance
9101
Unauthorized operation
textDetails Array
Each element describes one moderated text segment from the page.
Used by textDetails.riskDetail and by every nested riskDetail of the same shape (for example, allLabels[].riskDetail).
Parameter
Type
Required
Description
matchedLists
json_array
No
Custom keyword lists that were triggered. Each entry names a list configured in the DeepCleer console and enumerates the matched terms. Returned only when a configured keyword appears.
matchedLists[].name
string
No
Name of the triggered list, as configured in the DeepCleer console.
matchedLists[].words
json_array
No
Matched terms from this list.
matchedLists[].words[].word
string
No
The matched term, as it appeared on the list.
matchedLists[].words[].position
int_array
No
Character offsets of the match in the input text.
riskSegments
json_array
No
Contiguous high-risk spans of the input. Returned when political, terrorism, prohibited, or advertising-law content is detected.
riskSegments[].segment
string
No
The high-risk span, extracted verbatim from the input.
riskSegments[].position
int_array
No
Character offsets of the span in the input text.
textDetails.auxInfo Object
Parameter
Type
Required
Description
filteredText
string
No
Text with risky segments replaced by asterisks (*).
passThrough
json_object
No
Pass-through field. Same value as data.extra.passThrough in the request.
contactResult
json_array
No
Contact information detection results, including WeChat, QQ, and phone numbers.
Object/logo ID. The same position across labels shares the same ID.
objects[].name
string
No
Object name.
objects[].probability
float
No
Confidence score (0–1).
objects[].qrContent
string
No
QR code content. Returned only when a QR-code label is matched.
objects[].location
int_array
No
Bounding box [x1, y1, x2, y2].
ocrText
json_object
No
OCR text recognized in the image. Present when imgType includes IMGTEXTRISK or ADVERT.
ocrText.text
string
No
Text recognized in the image.
ocrText.matchedLists
json_array
No
Triggered custom keyword lists. Returned only when a configured keyword appears.
ocrText.matchedLists[].name
string
No
Name of the triggered list.
ocrText.matchedLists[].words
json_array
No
Matched terms from this list.
ocrText.matchedLists[].words[].word
string
No
The matched term.
ocrText.matchedLists[].words[].position
int_array
No
Character offsets of the match.
ocrText.riskSegments
json_array
No
High-risk spans in the OCR text.
ocrText.riskSegments[].segment
string
No
The high-risk span.
ocrText.riskSegments[].position
int_array
No
Character offsets of the span (zero-indexed).
persons
json_array
No
Human figures and their positions. Up to 10 entries.
persons[].id
string
No
Person ID. The same person across labels shares the same ID; a person appearing n times gets n IDs.
persons[].person_ratio
float
No
Human-figure area ratio (0–1).
persons[].probability
float
No
Confidence score (0–1).
persons[].location
int_array
No
Bounding box of the human figure.
imgDetails.auxInfo Object
Parameter
Type
Required
Description
segments
int
Yes
Number of segments actually processed.
typeVersion
json_object
Yes
Model version per detection type. Format X.Y where X is the major version (overall model iteration) and Y is the minor version (routine iteration). Keys: ADVERT, EROTIC, IMGTEXTRISK, POLITY, QRCODE, VIOLENT.
Frame timestamp (13-digit millisecond Unix timestamp). Returned when the streamInfo feature is used.
qrContent
string
No
QR code content recognized in the image.
streamId
string
No
Stream identifier. Returned when stream-related parameters are passed.
passThrough
json_object
No
Pass-through field. Same value as data.extra.passThrough in the request.
Image businessLabels Array
Parameter
Type
Required
Description
businessDescription
string
Yes
Business label description, formatted as "Level1:Level2:Level3".
businessLabel1
string
Yes
Level-1 business label.
businessLabel2
string
Yes
Level-2 business label.
businessLabel3
string
Yes
Level-3 business label.
probability
float
Yes
Confidence score (0–1).
confidenceLevel
int
No
Confidence tier (0–2). Higher means greater confidence.
businessDetail
json_object
No
Business detail. Same structure as Image riskDetail Object, including faces, objects, persons, plus face_compare_num (face count from imgCompareBase when FACECOMPARE is used).
disposal Object
Returned only when a custom label/disposition mapping is configured.
Parameter
Type
Required
Description
riskDescription
string
Yes
Mapped risk description. Normal when riskLevel is PASS.
riskLabel1
string
Yes
Mapped level-1 risk label. normal when no custom label is mapped and the mapped riskLevel is PASS.
riskLabel2
string
Yes
Mapped level-2 risk label. Empty when no custom label is mapped and the mapped riskLevel is PASS.
riskLabel3
string
Yes
Mapped level-3 risk label. Empty when no custom label is mapped and the mapped riskLevel is PASS.
riskLevel
string
Yes
Mapped disposition recommendation. Returns the default recommendation when no custom rule matched.
Use the result query API to actively poll for the final verdict by requestId — for asynchronous queues, callback delivery, or segmented audio/video callbacks. The business fields match the Callback Response.
Request body is JSON in the HTTP body. The body must not exceed 1 MB.
Request Parameters
Parameter
Type
Required
Description
accessKey
string
Yes
API authentication key, same as the moderation API. Provided by DeepCleer.
requestIds
string_array
Yes
List of detection requestId values returned by the webpage moderation API's synchronous response. Up to 20 per call; each up to 128 characters; duplicates are de-duplicated.
Response Parameters
Parameter
Type
Required
Description
code
int
Yes
Response code. 1100: success. 1902: the whole request is invalid. 1101 and 1903 do not appear here — they only appear in machineResult.code.
message
string
Yes
Response message corresponding to the code.
requestId
string
Yes
Identifier of this query request.
contents
json_array
Yes
Query results, in the same order as the requested requestIds. See below.
contents Array
Parameter
Type
Required
Description
requestId
string
Yes
The detection requestId this entry corresponds to.
machineResult
json_object
Yes
Machine moderation result. Per-entry code (independent of the top-level code): 1100 final success (business fields as in Callback Response); 1101 no history or still processing (message "Request is processing"); 1902 history data cannot be parsed as valid JSON; 1903 result written as a degraded record because the data was too long (message "Service failure", includes detail).
humanResult
json_object
No
Human moderation result. Returned when human review occurred.
mergeResult
json_object
No
Merged result. Shows the strategy-merged result first, e.g., riskLevel.