# AppInChina Content Review Documentation

> This file contains the AppInChina Content Review documentation concatenated into
> a single document. You can paste it into an AI assistant (ChatGPT, Gemini,
> Claude, etc.) to ask questions about your Content Review integration.
>
> Generated automatically at build time.

---


<!-- source: content-review/api-integration.md -->


# API Integration Guidelines

For **User-Generated Content (UGC)** and **Customer-Generated Content (CGC)**, your application must evaluate dynamic content in real-time. To achieve this, you must integrate a Content Review API directly into your backend architecture. 

AppInChina strongly recommends the **Alibaba Cloud Content Moderation API** due to its high detection accuracy for text, images, videos, and audio in the Chinese market.

## Direct Integration Workflow

When integrating the API directly, your engineering team builds the connection, and your internal moderation team handles the review queue. 

Here is the standard integration workflow:

### 1. Account Provisioning
* AppInChina will create an Alibaba Cloud account for your company.
* This account will be strictly limited to Content Moderation functionality to ensure security.
* We will securely provide your engineering team with the necessary **AccessKey ID** and **AccessKey Secret** to authenticate your API requests.

### 2. Backend Integration
* Your backend servers will make API calls to Alibaba Cloud whenever a user attempts to post or send content.
* The API supports scanning text, images, audio, and video.
* **Important:** API calls must be made from your backend, not directly from the client application, to protect your API keys and prevent tampering.

### 3. Implementing Risk-Based Routing
When content is scanned by the API, Alibaba Cloud returns specific risk levels. Your backend must be programmed to handle these responses appropriately:

* **Without risk (Pass)**: The content is safe. Your backend should publish the content immediately.
* **Low Risk (Review)**: The content is likely safe but triggered a minor flag. To avoid disrupting the user experience, you should publish the content immediately, but simultaneously flag it in your internal system for manual review.
* **Medium or High Risk (Block)**: The content contains clear violations. Your backend must **block** the publication immediately and hold the content in a queue for manual review.

### 4. Manual Review Queue
Because the API will inevitably flag content that requires human judgment, a manual review process must be established for any content flagged as Low, Medium, or High risk. You have two options for handling this manual review queue:

#### Option A: AppInChina Managed Review (Recommended)
By default, AppInChina's compliance team will handle the manual review of any content flagged by the API.
* **Initial Routing**: Your backend handles the initial API integration. When content is flagged as Low, Medium, or High risk, your system temporarily blocks or flags the content.
* **Forwarding to AppInChina**: Your backend must automatically forward the flagged content details (including the `data_id`, content payload or URL, and the API's risk label) to AppInChina's moderation system via our designated webhook/API.
* **Manual Review**: Our Chinese-speaking moderation staff will review the forwarded content in the AppInChina admin dashboard and make the final publish/block decision.
* **Callback & Resolution**: Once a decision is made, our system will send an asynchronous webhook callback to your backend with the final `approved` or `rejected` status. Your system must listen for this callback to automatically publish the approved content or permanently delete the rejected content.

#### Option B: Internal Client Review
If your company has a dedicated Chinese-speaking moderation team, you may choose to handle the manual review queue internally.
* You will need to build or configure an internal dashboard/queue where your staff can review flagged content.
* If a "Low Risk" item is manually determined to be a violation, your team must take it down.
* If a "Medium/High Risk" item is manually determined to be a false positive, your team can manually approve and publish it.
* **Compliance Requirement:** If you choose to handle manual reviews internally, you **must maintain strict records** of all completed reviews, including the reviewer's decision and timestamp. AppInChina or Chinese regulators may request these records at any time to verify compliance.

## Alternative Cloud Providers

If your global infrastructure is already deeply integrated with a different cloud provider, you may prefer to use their corresponding services in China. While we strongly recommend Alibaba Cloud, the following alternatives are also acceptable and follow a similar integration logic:

* [Tencent Cloud Content Moderation](https://cloud.tencent.com/solution/content-moderation)
* [Azure China Content Moderator](https://docs.azure.cn/zh-cn/ai-services/content-moderator/)
* [Baidu Content Review](https://cloud.baidu.com/doc/ANTIPORN/s/dkk6wyt3z)
* [Huawei Cloud Moderation](https://www.huaweicloud.com/intl/en-us/product/moderation.html)
* [Volcengine Content Moderation](https://www.volcengine.com/product/cms)

---


<!-- source: content-review/overview.md -->


# Content Review Overview

As an essential part of compliance, content review is a regulatory safeguard that prevents the publication of sensitive, illegal, or politically risky content that could result in suspension of products, removal from app stores, or even legal consequences in China. This process protects AppInChina, our clients, and end-users by ensuring that all content—text, images, video, audio, and interactive elements (whether hard-coded or dynamically generated)—complies with the full scope of Chinese regulations.

## Documentation Index

- **Implementation guidance**: [API Integration Guidelines](/content-review/api-integration)
- **Submission workflow**: [Tasks Submission Guide](/content-review/submission-guide)
- **High-risk content catalog**: [Sensitive Topics Catalog](/content-review/sensitive-topics)

## Recommended Reading Path

To help you get started with Content Review integration, we recommend the following path:

1. **Understand the Requirements**: Read this Overview to understand the types of content that need review and the legal requirements.
2. **Choose a Solution**: Review the [API Integration Guidelines](/content-review/api-integration) guide to understand how to connect your backend to the Content Moderation API.
3. **Prepare Your Content**: Follow the [Tasks Submission Guide](/content-review/submission-guide) to format your content correctly for review.

## Legal Requirements

Content review is mandated by the **Cybersecurity Law of the PRC (2017)**. Articles 12, 47, and 48 require internet service providers to prevent the dissemination of prohibited content and assume responsibility for information security management. Failure to do so may lead to suspension of services or administrative penalties.

## Content Types and Reviewing Processes

There are three main content types, each with distinct review processes:

### 1. User-Generated Content (UGC - Public)
This refers to **public-facing** content created by users that other people can see, such as social media posts, public forum comments, public reviews, or in-game public chats.
* **Why it matters**: Because this content is broadcasted to the public, the Chinese government considers it high-risk for the dissemination of illegal or sensitive information.
* **Prerequisite (Real Identity Verification)**: If your solution includes social functions (e.g., comments, replies, posting), Chinese law (Cybersecurity Law, Article 24) requires you to verify the user's real identity *before* they can post. In China, this is typically achieved by requiring a Chinese mobile phone number during registration. For more information, please refer to our [Login documentation](/login/introduction).
* **Requirement**: Must be filtered using a Content Review API *before* publication. Failure to implement the API before public release may result in agreement termination.
* **Process**: 
  1. **Submission**: A user attempts to post content.
  2. **Automated Review**: The content is immediately scanned by the Content Review API.
  3. **Risk-Based Routing**:
     * **No Risk**: The content is published immediately.
     * **Low Risk**: The content is published immediately to avoid disrupting the user experience, but it is simultaneously flagged for manual review by the AppInChina team. If the manual review confirms it violates regulations, it will be taken down.
     * **Medium or High Risk**: Publication is blocked. The content is held in a queue for manual review by the AppInChina team and will *only* be published if it is manually cleared.

### 2. Developer-Generated Content (DGC - Official)
This is the **official, static content** of the app or website itself, created by your team. It includes UI text, official articles, hardcoded images, marketing banners, and localization strings.
* **Requirement**: Since you control this content and it doesn't change dynamically every second, it does not require a real-time API. Instead, it requires a one-time (or per-update) hybrid review: you first filter the content, and then AppInChina verifies the high-risk portions.
* **Process**: 
  1. **Self-Assessment & Filtering**: To ensure an efficient review process, you do not need to submit every single string of text in your app. Please apply common sense and filter out undoubtedly safe, standard UI elements (e.g., navigation bar labels like "Home" or "Settings", standard footers, basic button text).
  2. **Identify High-Risk Content**: Carefully review your remaining content against our [**Sensitive Topics Catalog**](/content-review/sensitive-topics). Any content touching on these areas must be isolated for our review.
  3. **Formatting & Submission**: Compile the filtered, potentially sensitive text into a CSV file for *every* language version of your solution. For images and videos, prepare them according to our [Tasks Submission Guide](/content-review/submission-guide). Submit these files to the AppInChina team.
  4. **AppInChina Verification**: Our compliance team will review the submitted high-risk content to ensure it adheres to Chinese regulations.
  5. **Revisions (If Necessary)**: If any sensitive or non-compliant content is found, we will provide a detailed report. You must edit the flagged content and resubmit it for verification.
  6. **Written Confirmation & Publication**: Once the content is fully compliant, AppInChina will issue a formal written confirmation of legality, and you may proceed with publishing the update. **Important:** Publishing unverified high-risk DGC without prior written confirmation is a compliance violation.


### 3. Customer-Generated Content (CGC - Private)
This refers to **private or inbound** content sent from a user directly to your team or company, such as private customer support tickets, direct feedback forms, or private 1-on-1 messages to your business.
* **Why it matters**: Because this content is *not* broadcasted to the public, the risk of mass dissemination of illegal content is very low. However, storing or processing illegal content on Chinese servers still carries inherent regulatory risks.
* **Requirement**: While a strict pre-publication review is not legally mandated for private content, **AppInChina highly recommends that CGC be reviewed** using automated methods to ensure content safety and compliance. This protects your company, your support staff, and AppInChina from potential legal or reputational risks.
* **Process**: You have two options for handling CGC:
  * **Option A: Automated Review (Recommended)**
    1. **Integration**: Connect your customer support or feedback channels to the Content Review API.
    2. **Automated Scanning**: The API scans incoming private messages in real-time.
    3. **Internal Routing**: Clean messages are routed to your support team normally. Flagged messages (Medium/High risk) can be blocked, redacted, or quarantined for internal review by your team, protecting your staff and servers from handling illegal content.
  * **Option B: Formal Opt-Out**
    1. **Waiver**: If you prefer not to implement API review for private inbound content, you must formally opt out by acknowledging the associated risks.
    2. **Reactive Management**: If legal issues arise from unmonitored CGC, AppInChina and your team will collaborate to address the concerns immediately. This may require retroactively introducing API-based or manual review processes to your support channels.

---


<!-- source: content-review/pricing.md -->


# Pricing Examples

Pricing will vary depending on the amount of content you are producing and whether or not the review is conducted manually. You can use the [Alibaba Cloud China pricing calculator](https://www.aliyun.com/price/product?spm=a2c4g.11186623.0.0.65831f559tc2Dk#/lvwang/detail/cdibag) (available in Chinese) for estimates. 

Below is a cost breakdown for a 30-minute review, acting as an example:

## Cost Breakdown for a Single 30-Minute Video

**Assumptions:**
* **Video Duration**: 30 minutes (1,800 seconds).
* **Frames Reviewed**: 360 frames (1 frame every 5 seconds).
* **Subtitles**: 250 characters per minute, totalling 7,500 characters per video.

**Cost Components:**
* **Video Image Review**: CNY 0.0015 per frame × 360 frames = CNY 0.54.
* **Audio Review**: CNY 1.35 per hour, prorated for 30 minutes = CNY 0.675.
* **Subtitles Review**: CNY 0.000005 per character × 7,500 characters = CNY 0.0375.

| Component | Calculation (CNY) | Cost (CNY) |
| :--- | :--- | :--- |
| Video Image Review | 360 frames × 0.0015 per frame | 0.54 |
| Audio Review | 1.35 per hour ÷ 2 (30 min) | 0.675 |
| Subtitles Review | 7,500 characters × 0.000005 per character | 0.0375 |
| Total (before tax) | 0.54 + 0.675 + 0.0375 | 1.2525 |
| Tax (6.72%) | 1.2525 × 0.0672 | 0.0842 |
| Total (with tax) | 1.2525 + 0.0842 | 1.3367 |

In this example, the total cost for 1,000 videos would be 1,000 × CNY 1.3367 = **CNY 1,336.70**.

## Other Pricing

* **Manual Review by AppInChina**: Billed at an hourly rate or as a package with a set number of hours for reviewing flagged content.
* **Real-Name Verification**: Required for user-generated content with social functions. Costs range from CNY 0.3 to CNY 0.18 per API call, depending on usage.
* **Discounts**: AppInChina can assist clients in negotiating lower prices with Alibaba Cloud.

---


<!-- source: content-review/sensitive-topics.md -->


# Sensitive Topics Catalog

When filtering your Developer-Generated Content (DGC) for submission, or when reviewing flagged User-Generated Content (UGC), pay special attention to the following high-risk categories. 

The Chinese internet is heavily regulated, and content involving any of the topics below **must** be submitted to AppInChina for review. Failure to properly moderate these topics can result in immediate app suspension or removal from Chinese app stores.

## Sovereignty and Territory
This is one of the most strictly enforced areas of content regulation in China.
* **Maps of China**: Any map displaying China must be officially approved and correctly show all territorial claims, including the nine-dash line in the South China Sea, Taiwan, and the Aksai Chin region.
* **Taiwan, Hong Kong, and Macau**: These must always be represented as regions or special administrative regions of China, **never** as independent countries. Dropdown menus for "Country" should be changed to "Country/Region" if these are included.
* **Tibet and Xinjiang**: Content must not support separatism or independence movements in these regions.

## Politics and Government
* **National Leaders**: Mentions, images, or caricatures of current or former Chinese political figures and national leaders.
* **Government Policies**: Criticism or unauthorized interpretation of national policies, laws, or the Chinese Communist Party (CCP).
* **National Institutions**: Unauthorized use of the national flag, national emblem, national anthem, or military insignia.

## Historical Events
* **Sensitive History**: References to sensitive Chinese historical events, political movements, or protests (e.g., the Cultural Revolution, the 1989 Tiananmen Square protests).
* **Historical Figures**: Defamation or mockery of recognized national heroes or martyrs.

## Regulated Industries & Activities
Content promoting or facilitating illegal or heavily restricted activities in China:
* **Gambling**: Online casinos, sports betting, lotteries, or games of chance involving real money.
* **Cryptocurrency**: Trading, mining, or promoting Bitcoin and other decentralized cryptocurrencies (which are banned in China).
* **Circumvention Tools**: VPNs, proxies, or software designed to bypass the Great Firewall.
* **Financial Services**: Unauthorized lending, peer-to-peer (P2P) lending platforms, or pyramid schemes.

## Cultural and Social Sensitivities
* **Pornography and Obscenity**: Explicit sexual content, nudity, or sexually suggestive material.
* **Violence and Terror**: Content depicting extreme violence, gore, self-harm, or promoting terrorism and religious extremism.
* **Illicit Drugs**: Promotion, sale, or glorification of illegal drugs and narcotics.
* **Superstition and Cults**: Promotion of feudal superstitions, fortune-telling, or banned religious cults (e.g., Falun Gong).
* **Social Disruption**: Content that incites ethnic hatred, discrimination, or disrupts social order and stability.

---


<!-- source: content-review/submission-guide.md -->


# Content Review Tasks Submission Guide

This document outlines the format requirements for submitting content lists for review. Ensuring your files meet these standards will help streamline the review process and avoid delays.

The system supports three types of content for review:
- **Images**
- **Videos**
- **Text**

To ensure smooth processing, please adhere to the formatting guidelines detailed below.

## General Guidelines

- Your submission files must be in **CSV** or **JSON** format.
- Each row (in CSV) or entry (in JSON) represents a separate content review task.
- The **first field must be** `data_id`, a unique identifier you can use to track each content item. While the system does not enforce uniqueness, it is **highly recommended** to use a unique `data_id` for each entry.
- For **image and video** submissions, content must be provided as a **publicly accessible URL** so our system can download and process it.
- For **text** submissions, the content must be included as a text string.
- You may include up to **five metadata fields** per entry to provide additional context.
- **A single file must only contain one type of content** (e.g., all images, all videos, or all text). Mixing different content types in the same file is not allowed.
- **To ensure smooth processing, always provide URLs that use HTTPS for security and reliability.**

## Metadata Fields

You may include up to **5 metadata fields** per entry. These fields can have any name that best suits your needs, but the total number of metadata fields **must not exceed five**. Metadata fields provide additional context for the content being reviewed and should always come after the required fields (`data_id`, `url` or `content`). Examples include:

- `language` (for text content)
- `category` (e.g., political, violence, gambling, illegal activities)
- `priority` (e.g., low, medium, high)
- `tags` (e.g., NSFW, advertisement)
- `custom fields` relevant to your submission

## Image Submission Requirements

### Supported Formats
Your images must be in one of the following formats: PNG, JPG, JPEG, BMP, WEBP, SVG.

### Size & Resolution Limits
- **Maximum file size:** 20 MB
- **Maximum dimensions:** No single dimension can exceed **16,384 pixels**
- **Maximum total pixel count:** **1.67 billion pixels**
- **Recommended minimum resolution:** **200 × 200 pixels** (lower resolutions may reduce the effectiveness of the content security detection algorithm)

### Download Time Limit
- Images must be downloadable within **7 seconds**.
- If an image exceeds this limit, the system will return a **download timeout** error.

### Format Examples

**CSV Format Example:**
```csv
data_id,url,metadata1,metadata2,metadata3
example_img_001,https://your-public-url.com/example_img_001.jpg,tag1,category_a,medium_priority
```

**JSON Format Example:**
```json
{
  "tasks": [
    {
      "data_id": "example_img_001",
      "url": "https://your-public-url.com/example_img_001.jpg",
      "metadata1": "tag1",
      "metadata2": "category_a",
      "metadata3": "medium_priority"
    }
  ]
}
```

## Video Submission Requirements

### Supported Formats
The system accepts video files in the following formats: **MP4, AVI, MOV, WMV, FLV**.

### Size Limit
- The maximum file size for a single video is **500 MB**.
- If your video exceeds this limit, you can either:
  - **Split the video into smaller segments** before submission.
  - **Contact our support team** to discuss adjusting the size limit.

### Download & Processing Time
- The time required for video review depends on the download speed.
- To ensure smooth processing, we recommend storing videos on **high-availability cloud storage services**.

### Format Examples

**CSV Format Example:**
```csv
data_id,url,metadata1,metadata2,metadata3
example_vid_001,https://your-public-url.com/example_vid_001.mp4,tag1,category_b,high_priority
```

**JSON Format Example:**
```json
{
  "tasks": [
    {
      "data_id": "example_vid_001",
      "url": "https://your-public-url.com/example_vid_001.mp4",
      "metadata1": "tag1",
      "metadata2": "category_b",
      "metadata3": "high_priority"
    }
  ]
}
```

## Text Submission Requirements

### Format Examples

**CSV Format Example:**
```csv
data_id,content,language,category
text_001,"This is an example text for review.",en,social_media
text_002,"Another example comment that requires moderation.",en,comments
```

**JSON Format Example:**
```json
{
  "tasks": [
    {
      "data_id": "text_001",
      "content": "This is an example text for review.",
      "language": "en",
      "category": "social_media"
    },
    {
      "data_id": "text_002",
      "content": "Another example comment that requires moderation.",
      "language": "en",
      "category": "comments"
    }
  ]
}
```

## Summary of Submission Requirements

| Content Type | Required Fields |
| --- | --- |
| **Video** | `data_id`, `url` (public) |
| **Image** | `data_id`, `url` (public) |
| **Text** | `data_id`, `content` |

- Metadata fields (max 5) should always follow the required fields.
- URLs for images and videos must be **publicly accessible**.
- Text content should be in **UTF-8 encoding**.
- CSV files must use **comma separators**.
- JSON files must follow **standard JSON syntax**.
- **Each file must contain only one content type (Image, Video, or Text).**

---

