# Taobao & Tmall Product Scraper - Prices, Sellers & Ratings (`topapi/taobao-scraper`) Actor

Scrape Taobao and Tmall products by keyword, category, shop or item URL: CNY prices plus HKD/TWD or a world storefront's money, shop, category, seller DSR scores, rating split, latest review, ship-from city and English titles. $1.00 per 1,000 products. No login.

- **URL**: https://apify.com/topapi/taobao-scraper.md
- **Developed by:** [Top Api](https://apify.com/topapi) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 products

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

### What does Taobao & Tmall Product Scraper do?

**Taobao & Tmall Product Scraper** extracts products from [Taobao](https://www.taobao.com) and Tmall, China's largest consumer marketplaces. You give it keywords (Chinese or English), product URLs or item ids, category ids or shop ids. It returns one row per product, with the price in yuan (plus HKD/TWD, or a world storefront's own money), the shop, the category and an English title. As an add-on it reads the product's own page: Tmall or Taobao, ship-from city, the seller's three DSR scores and credit level, shop age, the rating split and the latest review. It is built for cross-border sellers, sourcing agents, dropshippers and brand teams who track Chinese prices and sellers without a Taobao account.

Taobao scraper · Tmall scraper · Taobao API · 淘宝 天猫 商品采集

<a href="https://console.apify.com/actors/maRFsYWoQYzFF2c8N"><img src="https://api.apify.com/v2/key-value-stores/5ZagqWHiBUsPu1Pi5/records/taobao-scraper-source.png" alt="Taobao keyword list page that Taobao & Tmall Product Scraper turns into rows" style="width:70%"></a>

- **Taobao and Tmall prices as data:** current price, list price, promotion price and the promotion label (`优惠价`, `新品促销`…), in CNY, HKD and TWD on every row.
- **Deep keyword coverage:** Taobao's public catalogue serves one list of 20 per page and no page 2. This actor reads more lists for each keyword: sort orders, price bands, and the list's own brand and property filters. One keyword gave 1,000 unique products in a measured run.
- **Seller signals (add-on):** Tmall store or Taobao seller, credit level, shop age, product count, the three DSR scores (description, service, delivery) and how each compares with the category.
- **Ratings and the latest review (add-on):** positive, neutral and negative share on Taobao shops, the latest review with the variant bought, and the coupon link.
- **Every way in:** keywords, product links or ids, category ids, shop ids, Taobao search URLs, or a file of links.
- **World storefront prices:** pick Singapore, Malaysia, Australia, Japan, Korea or another storefront to get `price` in its currency next to `priceCny`.
- **No login, no cookies, no Taobao account.**
- **Monitor mode:** on a schedule, get only new products and price changes.
- **Exports and integrations:** JSON, CSV and Excel, plus Make, Zapier, n8n, the Apify API and MCP.

### What data can you get from Taobao and Tmall?

<table>
<tr><td>🆔 Item id and links (<code>itemId</code>, <code>url</code>, <code>worldUrl</code>)</td><td>📝 Title + English title (<code>titleEn</code>)</td><td>💴 Price in CNY (<code>priceCny</code>), HKD, TWD</td></tr>
<tr><td>🏷️ List, promotion and discount price, promotion label</td><td>🌏 Storefront price + currency (<code>price</code>, <code>currency</code>)</td><td>🏪 Shop id, name and link</td></tr>
<tr><td>🗂️ Category id, top category, category path</td><td>⭐ Shop "as described" score on every row</td><td>🖼️ Main image and image URLs</td></tr>
<tr><td>🛒 Tmall or Taobao (<code>platform</code>, <code>isTmall</code>)</td><td>📍 Ships from (<code>location</code>)</td><td>👤 Seller id, type and credit level</td></tr>
<tr><td>📅 Shop opened, products listed, new products</td><td>📊 DSR scores: description, service, delivery</td><td>👍 Positive / neutral / negative share</td></tr>
<tr><td>💬 Latest review with the variant bought</td><td>🎟️ Coupon link, payment methods</td><td>❓ Buyer Q&A (top-rated list)</td></tr>
<tr><td>🔎 Which list found it, its position, the keyword's total</td><td>🔁 Monitor: new / price changed, previous price</td><td>🏬 Shop rows: three DSR scores, catalogue size</td></tr>
</table>

Fill on a 1,000-row run (`连衣裙`, run 5xg832mlg0lxz475X):

- 100% filled: item id, title, English title, price and the HKD/TWD prices, list/promotion/discount price, shop id and name, category ids, the shop's "as described" score, image.
- 72%: a promotion label.

With item-page details (195 rows from two runs):

- 100% filled: platform, ship-from city, seller id/type/credit level, shop opened, products listed, the three DSR scores, category path.
- 75%: the latest review.
- 57%: coupon link.
- The rating split comes only from Taobao shops: 66% of Taobao rows have it. Tmall does not publish one.

### How to scrape Taobao with Taobao & Tmall Product Scraper

1. [Create a free Apify account](https://console.apify.com/sign-up). It comes with $5 of monthly credit and needs no card.
2. Open [Taobao & Tmall Product Scraper](https://apify.com/TopApi/taobao-scraper) and click **Try for free**.
3. Type your **Keywords** (e.g. `手机壳`, `蓝牙耳机`, `phone case`), or paste product links, category ids or shop ids.
4. Optional: set a sort order, a price range or free shipping, and turn on **Item-page details** if you want seller scores and ratings.
5. Click **Start**. Rows stream into the dataset as each list is read.
6. Open the **Storage** tab and **Export** as JSON, CSV or Excel, or set the run on a schedule.

### ⬇️ Input

| Parameter | Type | Description |
|---|---|---|
| **🔍 What to scrape** | | |
| `keywords` | List | Search terms, Chinese or English, e.g. `手机壳`, `phone case`. An English term without its own Taobao page is searched again in Chinese (`searchedAs`). |
| `itemUrls` | List | item.taobao.com, detail.tmall.com, world.taobao.com or m.intl links, or bare item ids. One row each, read from the item page. |
| `categoryIds` | List | Category ids or `/list/category/<id>.htm` links. Each gives the category's 20 best sellers. |
| `shopIds` | List | Shop ids or `world.taobao.com/dianpu/<id>.htm` / `shop<id>.taobao.com` links. Each gives the shop's first screen (up to 60). |
| `startUrls`, `urlsFromFile` | List / Text | Any mix of the links above, or a public file with one per line. |
| **🎯 Filters** (applied by Taobao) | | |
| `sortBy` | Select | `sales` (default), `priceAsc`, `priceDesc`. |
| `minPrice` / `maxPrice` | Number | Price range in CNY. Re-checked on every row before it is charged. |
| `freeShippingOnly` | Boolean | Taobao's own free-shipping filter. |
| `region` | Select | Empty = CNY. Or `sg`, `my`, `au`, `nz`, `ca`, `jp`, `kr`, `th`, `ph`, `vn`, `mo`, `kh` for that storefront's money in `price`. |
| **✂️ Refine results** | | |
| `tmallOnly` | Boolean | Only Tmall stores. It reads item pages, so details turn on. |
| `minDescriptionScore` | Number | Minimum shop "item as described" score (1-5). |
| `excludeKeywords` | List | Drop rows whose title or shop contains these words. |
| **➕ Extra data** | | |
| `includeDetails` | Boolean | Item-page details: seller scores, ratings, latest review, coupon. |
| `includeTopRated` | Boolean | Add Taobao's top-rated list (default on). |
| `deepScan` | Boolean | More lists per keyword (default on). |
| `translateTitles` / `translateKeywords` | Boolean | English titles; Chinese search for English keywords (both default on). |
| `includeShopProfiles` | Boolean | One profile row per shop in `shopIds`. |
| **🔁 Monitoring** | | |
| `monitorMode` / `monitorStoreName` | Boolean / Text | Only new products and price changes since the last run with that store. |
| **📦 Output** | | |
| `maxResultsPerKeyword` | Number | Per keyword, category or shop (default 100, max 1,500). |
| `maxResults` | Number | Cap for the whole run (0 = none). |
| `compact` | Boolean | Core fields only, for AI/MCP pipelines. |

<a href="https://console.apify.com/actors/maRFsYWoQYzFF2c8N"><img src="https://api.apify.com/v2/key-value-stores/5ZagqWHiBUsPu1Pi5/records/taobao-scraper-output.png" alt="Taobao & Tmall Product Scraper output rows with item-page details" style="width:70%"></a>

#### Input JSON

```json
{
  "keywords": ["蓝牙耳机", "phone case"],
  "maxResultsPerKeyword": 200,
  "minPrice": 30,
  "maxPrice": 300,
  "includeDetails": true
}
```

#### Search in Chinese when you can

Taobao's catalogue is in Chinese. English terms that Taobao has a page for (e.g. `phone case`) work as they are. For any other English term, the actor searches its Chinese translation and records it in `searchedAs`: in a measured run, `bluetooth earphones` became `蓝牙耳机` and returned 20 rows. For the most products, type the Chinese word buyers use.

#### Ask for depth with Deep scan, not pages

There is no page 2 on Taobao's public lists. With **Deep scan** on, each keyword is read across the three sort orders, price bands built from the prices on the first lists, and every brand and property filter the list offers. A cap of 1,000 was filled for `连衣裙` from 65 lists.

### ⬆️ Output

One row per product. Here is a real row from run rxpj760GXwXs2Qhyh (`蓝牙耳机`, details on), trimmed:

```json
{
  "itemId": "1079352038299",
  "title": "爱国者蓝牙耳机半入耳式2026新款降噪高音质无线运动超长续航游戏",
  "titleEn": "Patriot Bluetooth headset semi-in-ear 2026 new noise-cancelling high-quality wireless sports ultra-long battery life game",
  "url": "https://detail.tmall.com/item.htm?id=1079352038299",
  "platform": "tmall",
  "price": 118, "currency": "CNY", "priceCny": 118, "priceHkd": 140.1,
  "shopId": "503709453", "shopName": "腔调会员精选旗舰店",
  "sellerTypeLabel": "Tmall store (business)", "sellerCreditLevel": 19, "shopOpenedAt": "2023-05-08 14:16:16",
  "dsrDescription": 4.9, "dsrService": 4.9, "dsrDelivery": 4.9,
  "location": "上海",
  "categoryPath": "影音视听 > 耳机耳放 > 耳机",
  "reviews": [{ "rating": 5, "content": "声音挺清晰的。价格实惠，很快收到", "date": "2026.10.04 18:03", "sku": "商品规格:黑色", "user": "***" }],
  "detailsStatus": "ok",
  "source": "search", "sourceQuery": "蓝牙耳机", "searchFacet": "list", "position": 1, "queryTotalResults": 34288
}
```

#### Fields

| Field | Meaning | Fill (measured) |
|---|---|---|
| `itemId`, `title`, `url`, `worldUrl` | Item id, full title, product links | 100% |
| `titleEn` | English machine translation | 100% |
| `price`, `currency`, `priceCny`, `priceHkd`, `priceTwd` | Current price (CNY or storefront money) and Taobao's HKD/TWD prices | 100% |
| `originalPrice`, `promotionPrice`, `discountPrice`, `discountType` | List, promotion and discount price; promotion label | 100% / 72% for the label |
| `shopId`, `shopName`, `shopUrl`, `descriptionMatchScore` | Shop and its "as described" score | 100% |
| `categoryId`, `rootCategoryId` | Leaf and top category | 100% |
| `mainImage`, `images` | Image links | 100% |
| `platform`, `isTmall`, `location` | Item page: Tmall or Taobao, ships from | 100% of detail rows |
| `sellerId`, `sellerType`, `sellerTypeLabel`, `sellerCreditLevel`, `shopOpenedAt`, `shopItemCount` | Item page: the seller | 100% of detail rows |
| `dsrDescription`, `dsrService`, `dsrDelivery`, `dsrVsCategory` | Item page: three shop scores and how they compare with the category | 100% of detail rows |
| `ratingGoodPercent`, `ratingNeutralPercent`, `ratingBadPercent`, `ratingGoodCount` | Item page: rating split (Taobao shops) | 66% of Taobao rows, 0% of Tmall rows |
| `reviews` | Item page: the latest review (rating, text, date, variant, masked user) | 75% of detail rows |
| `couponUrl`, `paymentMethods`, `sellableLanguages` | Item page: coupon link, payment methods, storefront languages | 57% / 100% / 59% |
| `categoryName`, `categoryPath`, `breadcrumbs` | Item page: category trail | 100% of detail rows |
| `questions` | Buyer Q\&A that some top-rated lists print | on top-rated rows that have it |
| `changeType`, `previousPrice`, `priceChange`, `priceChangePct`, `isPriceDrop` | Monitor mode | on monitor rows |
| `source`, `sourceQuery`, `searchedAs`, `searchFacet`, `position`, `queryTotalResults` | Where the row was found | 100% |
| `detailsStatus` | `ok`, `notFound`, or the answer Taobao gave instead of the page (not charged) | rows with details on |

Shop rows (`type: "shop"`) carry `shopId`, `shopName`, `sellerId`, `logo`, `dsrDescription`, `dsrService`, `dsrDelivery`, `dsrAverage`, `catalogueItemCount`, `cataloguePages` and `listedOnFirstScreen`.

**Not available:** Taobao shows these only to signed-in visitors, and this actor does not sign in. They are not in the dataset:

- **SKU matrix and stock per variant:** the item page shows signed-out visitors no variants (`hasRangePrice` tells you when variant prices differ).
- **Sales counts:** not printed on the public catalogue.
- **Full image gallery and description:** the public item page carries one image and no description.
- **Review lists:** only the latest review is public; the full list needs a login.
- **Reverse image search:** Taobao's image search needs a login.
- **Shop pages after the first screen, and categories past 20:** further pages need a login.

### Use cases

- 🛒 **Cross-border sellers:** compare Taobao and Tmall prices with your Amazon, Shopee or Lazada listings, in your storefront's currency.
- 📦 **Sourcing agents and dropshippers:** shortlist sellers by DSR scores, credit level, shop age and rating split before ordering.
- 🏷️ **Brand protection:** search your brand weekly with monitor mode and catch new listings and price changes.
- 📊 **Market research:** size a category by `queryTotalResults` and read its price bands and best sellers.
- 🔁 **Price tracking:** run a list of item ids daily and get only the products whose price moved.
- 🤖 **AI agents:** compact rows through the Apify MCP server.

### How much does it cost to scrape Taobao?

Pay per result, with no start fee:

| What | Price |
|---|---|
| Product row (keyword, category or shop list) | **$0.0010** |
| Item-page details, per product that has them | **+ $0.00027** |
| Product row from an item id or link (item page) | **$0.00027** |
| Shop profile row | **$0.0013** |

| Run | Cost |
|---|---|
| 20 products (one list) | $0.02 |
| 100 products | $0.10 |
| 100 products with item-page details | $0.127 |
| 1,000 products | $1.00 |
| 100 item ids | $0.027 |

On Apify's free plan, $5 of monthly credit covers about 5,000 products. The run stops at your spending limit.

### Integrations, API, scheduling & MCP

- **Schedules:** run daily or hourly from the Console, and turn on monitor mode to receive only what changed.
- **Webhooks and apps:** Make, Zapier, n8n, Google Sheets, Slack and Airbyte through Apify integrations.
- **API:** start runs and fetch datasets with [`apify-client` for Python](https://apify.com/TopApi/taobao-scraper/api/python) or [JavaScript](https://apify.com/TopApi/taobao-scraper/api/javascript), or call the REST API.
- **MCP:** connect Claude, ChatGPT or Cursor through the [Apify MCP server](https://apify.com/TopApi/taobao-scraper/api/mcp).

### More China and e-commerce scrapers

- [1688.com Wholesale Scraper](https://apify.com/TopApi/alibaba-1688-scraper): use it when you need factory prices, MOQ and suppliers for the same product.
- [Douyin Scraper](https://apify.com/TopApi/douyin-scraper): use it when you want the videos and creators that sell a product in China.
- [Weibo Scraper](https://apify.com/TopApi/weibo-scraper): use it for brand mentions and hot search in China.
- [TikTok Shop Scraper](https://apify.com/TopApi/tiktok-shop-scraper): use it for prices, sales and sellers on TikTok Shop.
- [SHEIN Product Scraper](https://apify.com/TopApi/shein-product-scraper): use it for fast-fashion prices and ratings.
- All our actors: [apify.com/TopApi](https://apify.com/TopApi).

### Limits & empty runs

- **20 products per list:** Taobao's public catalogue has no page 2. Depth comes from more lists (Deep scan): about 1,000 per keyword, 20 per category, up to 60 per shop.
- **Refused pages:** Taobao sometimes answers a list or an item page with its login page or slider. That page is listed in the run summary (`blockedTargets`, `notReadable`). It is never retried from another IP and never charged. In the measured runs, 96% of item pages (664 of 690) and 86% of datacenter list pages were read. Run again later to continue.
- **Not in the catalogue:** a removed or region-locked item comes back as `notFound` and is not charged.
- **Empty run:** no row means Taobao has no list for the term. Try the Chinese word.
- Every row is checked against your price range and refine filters before it is charged.

### FAQ

#### How much does Taobao & Tmall Product Scraper cost?

$0.0010 per product row, plus $0.00027 for each product delivered with item-page details. A row asked for by item id is $0.00027, and a shop row is $0.0013. There is no start fee, so 1,000 products cost $1.00.

#### How many products can Taobao & Tmall Product Scraper get per keyword?

Up to about 1,000 with Deep scan: 1,000 unique products for `连衣裙` from 65 lists in 3 minutes. A list holds 20, a category gives 20 best sellers and a shop gives its first screen of up to 60.

#### Can I get SKUs, stock or sales counts with Taobao & Tmall Product Scraper?

No. Taobao shows variants, stock and sales only to signed-in visitors, and this actor does not sign in. `hasRangePrice` tells you when the variants have different prices.

#### Does Taobao & Tmall Product Scraper need a Taobao account, cookies or an API key?

No. It reads the public pages Taobao serves to any visitor. No account, cookies or API key are needed.

#### Can I schedule Taobao & Tmall Product Scraper and get only new products?

Yes. Turn on **Monitor mode**, give the watch list a store name and create a schedule. Later runs deliver only new products and price changes (`changeType`, `previousPrice`, `priceChangePct`), and known products are not charged.

#### Can I search Taobao in English with Taobao & Tmall Product Scraper?

Yes. English terms with their own Taobao page work as typed. Others are translated to Chinese and searched (`searchedAs`). Every row gets an English title in `titleEn`.

#### Can I use Taobao & Tmall Product Scraper with the Apify API or Python?

Yes. Use the [API tab](https://apify.com/TopApi/taobao-scraper/api/python) for ready-made Python and JavaScript snippets, or call the REST API and read the dataset as JSON or CSV.

#### Can I use Taobao & Tmall Product Scraper from an AI agent through MCP?

Yes. Add it to the [Apify MCP server](https://apify.com/TopApi/taobao-scraper/api/mcp), and use `compact` output to keep the rows short.

#### Why did Taobao & Tmall Product Scraper return fewer rows than I asked for?

A keyword's lists ran out, your filters dropped rows, or Taobao refused some pages with its login page or slider. The run summary (`RUN_SUMMARY`) lists each list read and each page refused. Refused pages are not charged; run again later.

#### Is it legal to scrape Taobao?

The actor reads only public product pages that Taobao shows to visitors who are not signed in. Check the data's use against your own requirements.

#### Your feedback

Something missing or wrong? Open an issue on the [Issues tab](https://apify.com/TopApi/taobao-scraper/issues/open). We read every one.

# Actor input Schema

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

Search terms, Chinese or English, e.g. "手机壳", "蓝牙耳机", "phone case". An English term without its own Taobao page is searched again in Chinese.

## `itemUrls` (type: `array`):

item.taobao.com, detail.tmall.com, world.taobao.com or m.intl.taobao.com links, or bare item ids, e.g. 730344766230. One row each, from the item page.

## `categoryIds` (type: `array`):

Taobao category ids or www.taobao.com/list/category/<id>.htm links, e.g. 150704. Each gives the category's 20 best sellers.

## `shopIds` (type: `array`):

Shop ids or links (world.taobao.com/dianpu/<id>.htm, shop<id>.taobao.com), e.g. 72104903. Each gives the shop's first screen of up to 60 products.

## `startUrls` (type: `array`):

Any mix of Taobao links: product pages, keyword list pages (/list/product/<kw>.htm), s.taobao.com searches, categories or shops. Each is routed to the right mode.

## `urlsFromFile` (type: `string`):

Link to a public text or CSV file with one URL, item id or keyword per line.

## `sortBy` (type: `string`):

Order of the first result list. With Deep scan on, the other orders are read too.

## `minPrice` (type: `integer`):

Lowest price in yuan, e.g. 20. Sent to Taobao and re-checked on every row before it is charged.

## `maxPrice` (type: `integer`):

Highest price in yuan, e.g. 200. Sent to Taobao and re-checked on every row before it is charged.

## `freeShippingOnly` (type: `boolean`):

Only listings Taobao marks as shipping free (Taobao's own filter; the top-rated list is skipped because it ignores it).

## `region` (type: `string`):

Empty = prices in CNY. Pick a world storefront to get `price` in its money (CNY stays in `priceCny`).

## `tmallOnly` (type: `boolean`):

Only Tmall (天猫) stores. Needs each product's item page, so it turns item-page details on (charged only for delivered rows).

## `minDescriptionScore` (type: `number`):

Keep products whose shop's "item as described" score (descriptionMatchScore, 1-5) is at least this, e.g. 4.7.

## `excludeKeywords` (type: `array`):

Drop products whose title or shop name contains any of these words, e.g. "二手" (second-hand).

## `includeDetails` (type: `boolean`):

Read each product's item page: Tmall or Taobao, ship-from city, seller DSR scores and credit level, shop age, rating split, latest review, coupon link. Add-on $0.00027 per product.

## `includeTopRated` (type: `boolean`):

Also read Taobao's top-rated list for each keyword (up to 40 products, with buyer Q\&A on some).

## `deepScan` (type: `boolean`):

Read more result lists per keyword (other sort orders, price bands, the page's own brand and property filters) to go past the first 20. Up to ~1,000 per keyword.

## `translateTitles` (type: `boolean`):

Add `titleEn`, a machine translation of the Chinese title.

## `translateKeywords` (type: `boolean`):

When an English keyword has no Taobao page of its own, search its Chinese translation.

## `includeShopProfiles` (type: `boolean`):

With Shop IDs: also deliver one row per shop with its three DSR scores, seller id and catalogue size. $0.0013 per shop row.

## `monitorMode` (type: `boolean`):

Deliver only products not delivered by earlier runs of this input, plus products whose price changed (with the previous price). Unchanged products are skipped and not charged.

## `monitorStoreName` (type: `string`):

Named key-value store that remembers delivered products and prices. Use one name per watch list, e.g. "taobao-phone-cases".

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

Products per keyword, category or shop. Categories give 20, shops up to 60, a keyword about 1,000 with Deep scan (one list holds 20).

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

Stop the whole run after this many products. 0 = no total cap.

## `compact` (type: `boolean`):

Core fields only (id, title, price, shop, category, image), trimmed for AI/MCP pipelines. Add-on fields stay on rows that carry them.

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

Leave as is: the actor uses the platform's own connection first, then Apify datacenter IPs paced to a few pages each. Residential applies to list pages only.

## `maxConcurrency` (type: `integer`):

How many item pages are read at once when details are on.

## Actor input object example

```json
{
  "keywords": [
    "手机壳"
  ],
  "sortBy": "sales",
  "freeShippingOnly": false,
  "region": "",
  "tmallOnly": false,
  "includeDetails": false,
  "includeTopRated": true,
  "deepScan": true,
  "translateTitles": true,
  "translateKeywords": true,
  "includeShopProfiles": false,
  "monitorMode": false,
  "monitorStoreName": "taobao-monitor",
  "maxResultsPerKeyword": 20,
  "maxResults": 0,
  "compact": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "maxConcurrency": 6
}
```

# Actor output Schema

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

One item per Taobao or Tmall product: prices, shop, category, and with item-page details the seller scores, ship-from city, rating split and latest review. Shop rows when requested.

## `summary` (type: `string`):

Per keyword, category and shop: lists read, products delivered and filtered, pages Taobao refused (not charged).

# 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 = {
    "keywords": [
        "手机壳"
    ],
    "maxResultsPerKeyword": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("topapi/taobao-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 = {
    "keywords": ["手机壳"],
    "maxResultsPerKeyword": 20,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("topapi/taobao-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 '{
  "keywords": [
    "手机壳"
  ],
  "maxResultsPerKeyword": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call topapi/taobao-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,topapi/taobao-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/maRFsYWoQYzFF2c8N/builds/VRGtbaJetOJt7dhOR/openapi.json
