# Dongchedi Scraper: China Car Specs, Prices & Reviews (懂车帝) (`xiaoliang527/dongchedi-car-data`) Actor

Scrape Dongchedi (懂车帝), China's largest car site: 4,700+ car series, every trim with ~290 full spec fields, local dealer prices and discounts, and owner reviews with scores. No login. From $3 per 1,000 trims.

- **URL**: https://apify.com/xiaoliang527/dongchedi-car-data.md
- **Developed by:** [xiao liang](https://apify.com/xiaoliang527) (community)
- **Categories:** E-commerce, Lead generation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 car trims

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Dongchedi Scraper: China Car Specs, Dealer Prices & Owner Reviews (懂车帝)

Get structured data from **Dongchedi (懂车帝)**, one of China's largest car websites. The Actor covers the full new-car catalog of 4,700+ series. For every trim (车型) you get the **full spec sheet** of about 290 fields, the **local dealer price and discount** in the city you choose, and **owner reviews (口碑)** with scores for each category.

- **One Actor for specs, prices and reviews.** You get the parameter table (参数配置), the dealer quote (经销商报价) and owner reviews for each trim in one run.
- **No login and no cookies.** Only public data is collected, so your account is never involved.
- **Low price.** $3 per 1,000 trims with full specs and prices, and $1 per 1,000 reviews.

### What you can scrape

| Mode | What you get |
|---|---|
| `series_detail` (default) | All trims of a series with full specs and dealer prices, plus owner reviews |
| `specs` | Trims with full specs and prices only. Takes series ids or trim ids |
| `reviews` | Owner reviews only: overall score, category scores, purchase price, city, text and photos |
| `series_list` | The car catalog: all series, or the series of one brand, with price range, Dcar score and trim ids |
| `search` | Dongchedi content search: owner posts and articles for a keyword |

### Input

| Field | Description |
|---|---|
| `mode` | One of the modes above |
| `seriesIds` | Series URLs such as `https://www.dongchedi.com/auto/series/20154`, or plain ids |
| `brandIds` | Brand ids, for example `2` for Audi (奥迪) or `16` for BYD (比亚迪). Use them in `series_list`, or to scrape a whole brand |
| `carIds` | Trim ids or URLs (`.../model-259371`). Used in `specs` mode |
| `cityName` | City used for dealer prices, written in Chinese. Default `北京` |
| `includeSpecs`, `includeDealerPrices` | Turn the spec sheet or the dealer prices on or off |
| `onlyOnSale` | Keep only trims that are on sale (default). Turn it off to also get discontinued and upcoming trims |
| `maxCarsPerSeries`, `maxReviewsPerSeries`, `maxSeries` | Limits. Set `maxReviewsPerSeries: 0` to skip reviews |
| `keywords`, `maxResultsPerKeyword` | Keywords and result limit for `search` mode |

```json
{
  "mode": "series_detail",
  "seriesIds": ["https://www.dongchedi.com/auto/series/20154"],
  "cityName": "上海",
  "maxReviewsPerSeries": 100
}
```

To scrape the whole catalog of one brand:

```json
{"mode": "specs", "brandIds": ["16"], "maxSeries": 50}
```

### Output

Every dataset item has a `type` field. It is one of `car`, `review`, `series`, `post` or `error`.

```json
{
  "type": "car",
  "series_id": 20154, "series_name": "星愿", "brand_id": 858, "brand_name": "吉利银河",
  "car_id": 259371, "car_name": "310km 向往版", "year": 2026,
  "official_price": "6.48万", "dealer_price": "6.18万", "cut_price": "0.30万", "owner_paid_price": "6.14万",
  "city": "北京", "sale_status": "on_sale", "dcar_score": 3.42, "body_type": "轿车",
  "url": "https://www.dongchedi.com/auto/series/20154/model-259371",
  "specs": {
    "官方指导价": "6.48万", "厂商": "吉利银河", "级别": "小型车", "能源类型": "纯电动",
    "纯电续航里程(km)CLTC": "310", "最大功率(kW)": "58kW(79Ps)", "长x宽x高(mm)": "4135x1805x1570",
    "轴距(mm)": "2650", "整备质量(kg)": "1215", "整车保修期限": "4年或15万公里",
    "驾驶辅助影像": "倒车影像", "最小离地间隙(mm)": null, "...": "about 290 fields in total"
  }
}
```

In `specs`, the value `标配` means the feature is standard, `选装` means it is optional, and `null` means the trim does not have it. Prices are in the units the site uses: `万` means 10,000 CNY.

```json
{
  "type": "review", "review_id": "7669767269450256408", "series_id": 20154, "car_name": "480km 探索版",
  "score": 4.5,
  "scores": {"appearance": 5.0, "interior": 5.0, "space": 5.0, "configuration": 4.0, "range": 4.0, "driving": 4.0},
  "content": "这个价位我感觉够开了，配置够用，底盘配置给的也够，就是没有座椅通风按摩",
  "bought_time": "2026-07", "location": "常州", "purchase_price": "8.23万", "range": "410.00km",
  "digg_count": 45, "comment_count": 19, "create_time": "2026-08-03T11:36:00+00:00",
  "author_name": "皮蛋瘦肉周ha", "author_hash": "a669a92593b11e35"
}
```

Review scores are on a 5-point scale. User ids are never returned. Instead each review carries a short `author_hash`, which lets you group reviews by the same author.

```json
{
  "type": "series", "series_id": 99, "series_name": "奥迪A6L", "brand_name": "奥迪",
  "official_price": "32.29万", "dealer_price": "26.33-45.67万", "dcar_score": 4.12,
  "car_ids": [249016, 249017, 249018], "car_count": 10, "url": "https://www.dongchedi.com/auto/series/99"
}
```

### Use cases

- **Competitive analysis and pricing for car makers and dealers.** Compare trims, equipment and local discounts across brands.
- **Spec databases and comparison tools.** Load the complete Chinese car catalog with about 290 parameters per trim.
- **EV market research.** Get CLTC range, battery, charging and smart-cockpit specs for Chinese EVs.
- **Voice of the customer.** Analyse what owners praise or complain about, with an LLM or with sentiment analysis, using category scores and the price each owner paid.

### Use it from code, n8n or an AI agent

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("xiaoliang527/dongchedi-car-data").call(
    run_input={"seriesIds": ["20154"], "cityName": "北京", "maxReviewsPerSeries": 30})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    if item["type"] == "car":
        print(item["car_name"], item["dealer_price"], item["specs"].get("纯电续航里程(km)CLTC"))
```

**MCP (Claude, Cursor):** connect to `https://mcp.apify.com?tools=xiaoliang527/dongchedi-car-data` and send your Apify token as a Bearer header.

### Pricing

| Event | Price |
|---|---|
| Car trim, with full specs and dealer price | $0.003 ($3 / 1,000) |
| Owner review | $0.001 ($1 / 1,000) |
| Series from the catalog list | $0.001 |
| Search result (post) | $0.001 |

Errors such as an invalid URL or an unknown series are returned with `type: "error"` and are not charged. You can set a maximum cost per run in the run options. When the Actor reaches it, it stops cleanly.

### Limits

- Not every trim has a dealer quote. When there is none, `dealer_price` is `null` (the site shows "暂无报价").
- Review items contain the review text, photos and scores. Comment threads under reviews are not expanded.
- Image URLs are signed by the site and expire after some time. Download the images soon after the run if you need them.
- Used cars, sales rankings and posts in owner communities (车友圈) are not included.
- Requests are rate-limited to about 2–3 per second to stay polite. A trim with full specs takes about 0.5 s.
- Only public data is collected. Nothing behind login is accessed.

# Actor input Schema

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

What to scrape.

## `seriesIds` (type: `array`):

Dongchedi series URLs (https://www.dongchedi.com/auto/series/20154) or series ids. Used by series detail, specs and reviews modes.

## `brandIds` (type: `array`):

Dongchedi brand ids, e.g. 2 = Audi (奥迪), 16 = BYD (比亚迪). In series list mode: list this brand's series. In detail/specs/reviews mode without series ids: scrape the brand's series (up to max series).

## `carIds` (type: `array`):

Specs mode only: trim ids or URLs (…/model-259371) to fetch full specs for directly.

## `keywords` (type: `array`):

Search mode: keywords for Dongchedi content search (owner posts and articles), e.g. 汉EV.

## `maxResultsPerKeyword` (type: `integer`):

Search mode: how many posts per keyword.

## `cityName` (type: `string`):

City for local dealer prices and discounts, in Chinese, e.g. 北京, 上海, 广州, 深圳, 成都.

## `includeSpecs` (type: `boolean`):

Add the full parameter table (~290 fields) to every trim.

## `includeDealerPrices` (type: `boolean`):

Add the local dealer price and discount for every trim in the chosen city.

## `onlyOnSale` (type: `boolean`):

Off = also include discontinued and upcoming trims.

## `maxCarsPerSeries` (type: `integer`):

Limit the number of trims per series.

## `maxReviewsPerSeries` (type: `integer`):

0 = no reviews. 15 per page.

## `reviewSort` (type: `string`):

Order of owner reviews.

## `maxSeries` (type: `integer`):

Maximum number of series (series list mode, or when scraping by brand).

## `proxyConfiguration` (type: `object`):

Not needed. Leave off.

## Actor input object example

```json
{
  "mode": "series_detail",
  "seriesIds": [
    "https://www.dongchedi.com/auto/series/20154"
  ],
  "maxResultsPerKeyword": 20,
  "cityName": "北京",
  "includeSpecs": true,
  "includeDealerPrices": true,
  "onlyOnSale": true,
  "maxCarsPerSeries": 50,
  "maxReviewsPerSeries": 50,
  "reviewSort": "default",
  "maxSeries": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `items` (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 = {
    "seriesIds": [
        "https://www.dongchedi.com/auto/series/20154"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("xiaoliang527/dongchedi-car-data").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 = { "seriesIds": ["https://www.dongchedi.com/auto/series/20154"] }

# Run the Actor and wait for it to finish
run = client.actor("xiaoliang527/dongchedi-car-data").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 '{
  "seriesIds": [
    "https://www.dongchedi.com/auto/series/20154"
  ]
}' |
apify call xiaoliang527/dongchedi-car-data --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,xiaoliang527/dongchedi-car-data"
        }
    }
}
```

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/3bevoDg7bTrj7S54c/builds/0DnLdo3n9aP7DMV90/openapi.json
