# BlackCat Scraper 黑猫投诉 (No Cookie) — China Consumer Complaints (`axon-studio/blackcat-complaints-scraper`) Actor

\[100% No Cookie / No Login — $4.5/1k] Extract real-time Chinese consumer protection complaints, refund disputes, product defects & brand crisis data from Sina BlackCat (新浪黑猫投诉). Auto EN->ZH brand translation & sentiment analysis.

- **URL**: https://apify.com/axon-studio/blackcat-complaints-scraper.md
- **Developed by:** [Axon Studio](https://apify.com/axon-studio) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.80 / 1,000 item-scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

Extract real-time Chinese consumer complaints, refund disputes, product defect reports, and brand crisis signals from **Sina BlackCat (新浪黑猫投诉 / tousu.sina.com.cn)** — China's largest public consumer-rights and dispute-resolution platform with **38M+ verified complaints**.

Built for **Wall Street alt-data equity research, multinational brand PR & legal teams, supply-chain due diligence, and AI/LLM risk-monitoring pipelines** (n8n, Make, Dify, Claude MCP). **100% no login, no cookies, and no VPN required.** Users on the **Apify Free plan ($5 monthly credit) can extract up to 1,111 BlackCat complaint records per month for free**.

***

### What Can This BlackCat Scraper Do? (Features)

| BlackCat Scraper Capability | Built-In Advantage |
| :--- | :--- |
| **Brand & Keyword Search (`searchQuery`)** | Search consumer complaints about any domestic or international brand via our built-in managed session pool and signed API (`tousu.sina.com.cn/api/index/s`). |
| **Nationwide Live Complaint Feed** | Leave `searchQuery` empty to stream the latest consumer disputes across all industries in China (`tousu.sina.com.cn/api/index/feed`). |
| **Auto EN ↔ ZH Brand Localization** | Type an English brand name (e.g., `Tesla`, `Apple`, `Luckin`, `Starbucks`, `Nike`) and the scraper automatically translates and queries its official Chinese name (`特斯拉`, `苹果`, `瑞幸咖啡`, `星巴克`, `耐克`). |
| **Standardized English Status (`statusEn`)** | Automatically maps Chinese dispute stages into standardized English statuses (`pending_assignment`, `in_progress`, `replied`, `completed`, `closed`). |
| **Built-In Complaint Sentiment Scoring** | Zero-RAM Chinese/English sentiment engine with negation reversal tags every complaint with `sentiment` (`negative` / `neutral` / `positive`) and `sentimentScore` (`-1.0` to `+1.0`). |
| **256 MB RAM Real-Time Streaming** | Streams complaint records to your Apify Dataset in real-time batches of 10 rows on just **256 MB RAM**, supporting scheduled monitoring (`deltaMode`), REST API, and one-click **JSON, CSV, Excel, or Parquet** exports. |

***

### How to Scrape BlackCat (黑猫投诉) in 3 Easy Steps

1. **Enter a Brand or Keyword (`searchQuery`)** — Type any company, brand, or product in **English or Chinese** (e.g., `Tesla`, `Luckin`, `瑞幸咖啡`, `携程`), or leave it empty to capture the nationwide live complaint feed.
2. **Set `maxResults`** — Choose how many BlackCat complaints to extract (from `1` to `5,000`).
3. **Click "Start"** — Download your structured consumer complaint dataset in **JSON, CSV, or Excel**, or connect directly to n8n, Make, Google Sheets, or Claude MCP.

***

### BlackCat Scraper Use Cases

| Buyer Profile | BlackCat Consumer Intelligence Use Case |
| :--- | :--- |
| **Hedge Funds & Equity Research Desks** | Track complaint velocity, refund demand spikes (`退款`), and resolution rates (`statusEn`) as an early warning alt-data signal on Chinese consumer & EV tickers (BYD, Tesla, NIO, Luckin, PDD, Alibaba, Meituan) |
| **Global Brand PR & Crisis Teams** | Detect product safety issues, counterfeit reports, and customer service failures in China before they escalate to Weibo Hot Search |
| **Legal, Compliance & ESG Analysts** | Audit corporate consumer-rights responsiveness and dispute patterns across Chinese subsidiaries and e-commerce storefronts |
| **AI / LLM Risk & Financial Agents** | Ground autonomous research agents in live Chinese consumer dispute records via REST API or Claude MCP |

***

### Input

All parameters are available in the **Input** tab. Below are the primary configuration fields and JSON input examples:

| Input Field | Type | Description |
| :--- | :--- | :--- |
| **`searchQuery`** | `string` | Brand, company, or product keyword in English or Chinese (e.g., `"Tesla"`, `"瑞幸咖啡"`). Leave empty `""` for the nationwide live complaint feed. |
| **`autoLocalize`** | `boolean` | Automatically translates English brand names into Simplified Chinese (default: `true`). |
| **`searchAliases`** | `array` | Additional sub-brands or product keywords to merge and deduplicate into the same run. |
| **`maxResults`** | `integer` | Maximum number of BlackCat complaints to return (`1` to `5,000`, default: `50`). |
| **`sentimentAnalysis`** | `boolean` | Attaches `sentiment` polarity and `sentimentScore` (`-1.0` to `+1.0`) to every complaint (default: `true`). |
| **`deltaMode`** | `boolean` | Remembers scraped complaint `sn` IDs across scheduled runs so you only pay for newly filed complaints (default: `false`). |

#### 1. Brand-Specific BlackCat Complaint Search (JSON)

```json
{
  "mode": "complaints",
  "searchQuery": "Tesla",
  "autoLocalize": true,
  "searchAliases": ["Model Y", "Model 3"],
  "maxResults": 100,
  "sentimentAnalysis": true,
  "deltaMode": false
}
```

#### 2. Nationwide Live Consumer Complaint Feed (JSON)

```json
{
  "mode": "complaints",
  "searchQuery": "",
  "maxResults": 200,
  "sentimentAnalysis": true
}
```

***

### Output

Each scraped complaint is stored in your Apify **Dataset** with the following structured fields (matching the `"Tesla"` search input above):

```json
{
  "mode": "complaints",
  "sn": "17402449965",
  "company": "特斯拉客户支持",
  "title": "特斯拉门店充电桩计费异常且客服未按承诺退还差价",
  "appeal": "退款,改善服务,作出解释",
  "text": "本人于2026年10月22日在超级充电站充电，账单多扣取超时占用费，联系特斯拉客服核实后至今未退回...",
  "summary": "本人于2026年10月22日在超级充电站充电，账单多扣取超时占用费，联系特斯拉客服核实后至今未退回...",
  "sentiment": "negative",
  "sentimentScore": -0.78,
  "statusEn": "in_progress",
  "scrapedAt": "2026-10-24 16:32:10 UTC"
}
```

#### Output Field Definitions

- **`sn`**: Unique BlackCat complaint serial number (used for deduplication in `deltaMode`).
- **`company`**: Official name of the complained-against company or brand (`投诉对象`).
- **`title`**: Headline of the consumer complaint.
- **`appeal`**: Specific consumer demands (`投诉要求`, e.g., `退款` refund, `赔偿` compensation, `道歉` apology).
- **`text` / `summary`**: Clean HTML-stripped complaint summary text.
- **`statusEn`**: Standardized dispute progress (`pending_assignment`, `in_progress`, `replied`, `completed`, `closed`).
- **`sentiment` / `sentimentScore`**: Polarity label and normalized severity score (`-1.0` to `+1.0`).

***

### Automated Daily Brand Crisis Monitoring (Schedules & Delta Mode)

Set up a **24/7 automated brand complaint monitor** in 2 minutes:

1. In **Apify Console → Schedules → Create new schedule**, select **`axon-studio/blackcat-scraper`** and set your cron frequency (e.g., hourly `0 * * * *` or daily `0 8 * * *`).
2. Set **`deltaMode: true`** in your input JSON. The Actor stores up to 10,000 scraped `sn` IDs in your Key-Value Store (`DELTA_SEEN_IDS`) and skips previously delivered complaints on future runs—so you only pay for brand-new disputes.

#### Python, JavaScript & One-Line REST API Integration

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_API_TOKEN")
run = client.actor("axon-studio/blackcat-scraper").call(run_input={
    "mode": "complaints",
    "searchQuery": "Tesla",
    "autoLocalize": True,
    "maxResults": 100,
    "sentimentAnalysis": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["sn"], item["company"], item["statusEn"], item["title"])
```

```bash
curl -X POST "https://api.apify.com/v2/acts/axon-studio~blackcat-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode":"complaints","searchQuery":"Tesla","maxResults":50,"sentimentAnalysis":true}'
```

***

### How Much Does It Cost to Scrape BlackCat? (Pricing)

**$4.50 per 1,000 complaints (`$0.0045` per item) + `$0.02` per Actor start (Pay-Per-Event)**

- **Free Plan Credits**: Every Apify account includes **$5.00 in free monthly credits**, covering up to **1,111 BlackCat complaint records every month for free**.
- **Volume Discounts**: Automatic lower unit prices for Apify **Bronze / Starter**, **Silver / Scale**, and **Gold / Business** plan subscribers.
- **No Server Compute Fees**: Memory and CPU usage are fully included in the Pay-Per-Event rate.
- **Typical Run Costs**: 50 brand complaints = **`$0.245`** · 200 brand complaints = **`$0.92`** · 1,000 complaints = **`$4.52`**.

***

### FAQ & Legal Compliance

#### Do I need a Sina Weibo or BlackCat login cookie?

**No.** This BlackCat Scraper uses a built-in managed session pool and SHA-256 request signing automatically.

#### Is it legal to scrape BlackCat consumer complaints?

This Actor extracts publicly visible consumer dispute summaries from `tousu.sina.com.cn` and does not access private user accounts. Under GDPR and PIPL, ensure you have a lawful basis for market research or compliance analytics. *Not affiliated with Sina Corporation.*

***

### More Chinese Social Intelligence Scrapers by Axon Studio

- **[Weibo Scraper — All-in-One Search, Hot Trends, Comments & BlackCat](https://apify.com/axon-studio/weibo-scraper)** — 9-mode comprehensive Sina Weibo & BlackCat intelligence suite.
- **[Weibo User Posts & Profile Scraper (No Cookie)](https://apify.com/axon-studio/weibo-user-posts-scraper)** — Extract creator timelines (`user_posts`) and KOL follower metrics without login.
- **[Weibo Comments & Province Geolocation Scraper](https://apify.com/axon-studio/weibo-comments-scraper)** — Harvest reader comment threads and English IP province locations (`regionEn`).

# Actor input Schema

## `searchQuery` (type: `string`):

Enter any company or brand name in English or Chinese (e.g., Tesla, Luckin, Apple, 瑞幸咖啡, 携程). Leave empty to stream the latest complaints across all companies in China.

## `autoLocalize` (type: `boolean`):

Automatically translates English brand names into Simplified Chinese to match BlackCat records.

## `searchAliases` (type: `array`):

Extra company names or product keywords to merge into the same run.

## `maxResults` (type: `integer`):

Maximum number of consumer complaint records to return (1 to 5,000).

## `sentimentAnalysis` (type: `boolean`):

Automatically scores the severity and sentiment polarity of each complaint (-1.0 to +1.0).

## `deltaMode` (type: `boolean`):

Remembers scraped complaint SN IDs across scheduled runs and only outputs newly filed complaints.

## `mode` (type: `string`):

Locked to BlackCat complaints mode.

## Actor input object example

```json
{
  "searchQuery": "Tesla",
  "autoLocalize": true,
  "searchAliases": [],
  "maxResults": 50,
  "sentimentAnalysis": true,
  "deltaMode": false,
  "mode": "complaints"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("axon-studio/blackcat-complaints-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("axon-studio/blackcat-complaints-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call axon-studio/blackcat-complaints-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,axon-studio/blackcat-complaints-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Tcaoh1s9d1alBc3uL/builds/6BTzfN3fnsh7dLX5f/openapi.json
