# Taobao & Tmall Scraper (`parsebird/taobao-tmall-scraper`) Actor

Scrape Taobao and Tmall (淘宝 天猫) products by keyword, category, product URL or shop: price in your currency plus CNY, seller DSR scores, ratings, reviews, images, category path and seller leads.

- **URL**: https://apify.com/parsebird/taobao-tmall-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.59 / 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.
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

### Taobao & Tmall Scraper

**Taobao & Tmall Scraper** extracts product and seller data from [Taobao](https://world.taobao.com/) and [Tmall](https://www.tmall.com/) (淘宝 天猫): titles, prices in your local currency plus CNY, seller DSR scores, credit level, buyer-rating breakdowns, customer reviews, images, category paths, ship-from locations and seller leads, as clean JSON, CSV or Excel.

<table><tr>
<td style="border-left:4px solid #FF5000;padding:12px 16px;font-weight:600">
Search Taobao by keyword, sweep whole categories, track a watchlist of product URLs or build a seller list from shop ids, with prices quoted in any of 12 overseas storefronts (SGD, MYR, THB, PHP, AUD, JPY, KRW and more) and the yuan price alongside.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Apify Actor: parsebird/taobao-tmall-scraper. Scrapes Taobao and Tmall (淘宝 天猫) products and sellers from Taobao's public overseas storefront (world.taobao.com), no login. Call via ApifyClient: client.actor("parsebird/taobao-tmall-scraper").call(run_input={"mode": "search", "keywords": ["蓝牙耳机"], "region": "sg", "maxItems": 100, "scrapeDetails": true}). Inputs: mode (search | category | item | shop; default search), keywords (array of strings, Chinese gives the most results), categoryIds (array: Taobao category ids like 50064014 or https://world.taobao.com/category/50064014.htm), itemUrls (array: product ids or item.taobao.com / detail.tmall.com / world.taobao.com URLs; category, shop and search URLs pasted here are routed automatically), shopIds (array: shop ids like 63978904, world.taobao.com/dianpu/ URLs or shopNNN.taobao.com URLs), region (sg | world | my | th | vn | ph | mo | au | nz | kr | jp | ca; default sg; sets the currency), maxItems (integer, default 50), scrapeDetails (boolean, default true: opens each product page), deepScan (boolean, default true: re-queries across sort orders and price bands for several hundred results per keyword; in category mode also follows sub-categories), expandKeywords (boolean, default false: adds up to 10 Taobao-suggested related keywords), minPrice / maxPrice (integer CNY), freeShippingOnly (boolean, search only), urlsFromFile (string: list of URLs/ids, or one link to a .txt/.csv file, Google Sheet or Google Drive file), proxyConfiguration (object). Output rows have type "product" (itemId, title, url, taobaoUrl, platform taobao|tmall, price, currency, priceCny, priceHkd, priceTwd, originalPrice, promotionPrice, discountPrice, discountType, shopId, shopName, sellerId, sellerType, sellerTypeLabel, sellerCreditLevel, shopOpenedAt, shopItemCount, shopNewItemCount, dsrDescription, dsrService, dsrDelivery, descriptionMatchScore, ratingGoodPercent, ratingNeutralPercent, ratingBadPercent, ratingGoodCount, ratingBadCount, reviews[{rating, content, date, sku, user}], reviewTags[{tag, count}], categoryId, rootCategoryId, categoryName, categoryPath, breadcrumbs, location, freeShipping, areaLimit, paymentMethods, mainImage, images, sellingPoints, sellableLanguages, query, queryTotalResults, queryTotalPages) or "shop" (shopId, shopName, sellerId, logo, dsrDescription, dsrService, dsrDelivery, dsrAverage, catalogueItemCount, cataloguePages, products[], topCategoryIds, leadScore 0-100). Pricing: pay per event: product (listing row), detail (row enriched from the product page), seller-lead (shop row). Full API spec: https://apify.com/parsebird/taobao-tmall-scraper/api. Get your token: https://console.apify.com/settings/integrations.
```

### What is Taobao & Tmall Scraper?

**Taobao & Tmall Scraper** is a **Taobao API alternative** that turns Taobao and Tmall search results, category pages, product pages and shop pages into a structured dataset. Type a keyword such as **蓝牙耳机** (Bluetooth earphones), pick a storefront such as **Singapore (SGD)** and click **Start**. No Taobao account, no Taobao Open Platform key and no browser are needed.

The actor reads Taobao's own server-rendered overseas storefront, [world.taobao.com](https://world.taobao.com/) and its country sites, which Taobao publishes for search engines and lists as crawlable in its [robots.txt](https://world.taobao.com/robots.txt). The consumer site (s.taobao.com, item.taobao.com, detail.tmall.com) sits behind a login and anti-bot wall; this storefront carries the same catalogue without one, which is why the Taobao scraper runs fast and reliably.

### What can Taobao & Tmall Scraper do?

- 🔍 **Search Taobao by keyword.** Chinese or English keywords, with price range and free-shipping filters.
- 🗂️ **Browse a category.** Give a Taobao category id or URL; with deep scan on, the actor also follows the sub-categories its products belong to.
- 📦 **Scrape specific products.** Paste product ids or any item.taobao.com, detail.tmall.com or world.taobao.com URL for price monitoring on a watchlist.
- 🏪 **Build seller leads.** Give shop ids and get one record per shop with DSR scores, catalogue size, listed products and a 0-100 lead score.
- 💱 **Prices in your currency.** 12 storefronts: Singapore, Malaysia, Thailand, Philippines, Macau, Australia, New Zealand, South Korea, Japan, Canada, Vietnam and Global. The yuan price is always included.
- 📈 **Deep scan.** Each query is re-run across sort orders and price bands to collect several hundred unique products instead of one page of 20.
- 🔗 **Smart URL routing.** Paste any mix of product, category, shop and search links; each goes to the right mode. Import long lists from a text file, Google Sheet or Google Drive file.

As an Apify Actor it also gets the platform features: [scheduled runs](https://docs.apify.com/platform/schedules), a full [REST API](https://docs.apify.com/api/v2), [integrations](https://apify.com/integrations) with Google Sheets, Slack, Zapier, Make and webhooks, and export in JSON, CSV, Excel, XML or HTML.

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

| Group | Fields |
|-------|--------|
| Identity | `itemId`, `title`, `url`, `taobaoUrl`, `platform` (taobao / tmall), `itemIdStr` |
| Pricing | `price` + `currency` (your storefront), `priceCny`, `priceHkd`, `priceTwd`, `originalPrice`, `promotionPrice`, `discountPrice`, `discountType`, `hasRangePrice`, `priceNote` |
| Seller | `shopId`, `shopName`, `sellerId`, `sellerType` + `sellerTypeLabel` (individual vs business), `sellerCreditLevel`, `shopOpenedAt`, `shopItemCount`, `shopNewItemCount`, `shopUrl`, `taobaoShopUrl`, `shopIcon` |
| Seller quality | `dsrDescription`, `dsrService`, `dsrDelivery` (Taobao's three 1-5 seller scores), `descriptionMatchScore` |
| Ratings and reviews | `ratingGoodPercent`, `ratingNeutralPercent`, `ratingBadPercent`, `ratingGoodCount`, `ratingBadCount` (Taobao listings), `reviews[]` (rating, text, date, variant bought, reviewer), `reviewTags[]` (sentiment tags with counts, where Taobao shows them) |
| Category | `categoryId`, `rootCategoryId`, `categoryName`, `categoryPath`, `breadcrumbs[]` |
| Logistics | `location` (ships from), `freeShipping`, `areaLimit`, `paymentMethods[]` |
| Media and copy | `mainImage`, `images[]`, `imageCount`, `sellingPoints[]`, `sellableLanguages[]` |
| Market size | `query`, `queryTotalResults`, `queryTotalPages` (how many listings Taobao reports for the keyword or category) |
| Shops (shop mode) | `shopName`, `sellerId`, `logo`, the three DSR scores + `dsrAverage`, `catalogueItemCount`, `cataloguePages`, `products[]`, `topCategoryIds`, `leadScore` |

<table><tr>
<td style="border-left:4px solid #FF5000;padding:12px 16px">
<b>Tmall listings do not publish the buyer-rating breakdown; Taobao listings do.</b> In our tests, 0 of 109 Tmall product pages carried <code>ratingGoodPercent</code> and the related counts, while 39 of 58 Taobao product pages did (the rest had no buyer ratings yet). Every Tmall row still gets a sample customer review where one exists, all three DSR seller scores and <code>descriptionMatchScore</code>, so you can rank Tmall sellers on quality. Use the <code>platform</code> field to tell the two apart.
</td>
</tr></table>

### How to scrape Taobao and Tmall

1. Open [Taobao & Tmall Scraper](https://apify.com/parsebird/taobao-tmall-scraper) and click **Try for free**.
2. Under **What to scrape**, choose **Search by keyword**, **Browse a category**, **Specific products** or **Shops / seller leads**.
3. Fill in the matching field: keywords, category ids, product ids/URLs or shop ids. You can paste any Taobao, Tmall or world.taobao.com link into **Product IDs or URLs**.
4. Pick a **Region / currency** and set **Max records**. Start with 20-50 for a first run.
5. Leave **Scrape full product detail** on for seller profiles, ratings and reviews, or turn it off for a faster, cheaper listing scrape.
6. Click **Start**. Results appear in the **Output** tab as the run goes.
7. Download the data as JSON, CSV or Excel, or read it through the API.

**Tip:** Taobao is a Chinese-language catalogue, so Chinese keywords return the most results. English keywords work too. Check `queryTotalResults` on any row to see how many listings Taobao reports for your query.

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

Taobao & Tmall Scraper uses pay-per-event pricing. You pay for the records saved to your dataset; compute and proxy costs are included in the event price.

| Event | What counts | Free | Bronze | Silver | Gold |
|-------|-------------|------|--------|--------|------|
| `product` | One product from a keyword search, category or shop listing | $3.49 / 1,000 | $2.99 / 1,000 | $2.79 / 1,000 | $2.59 / 1,000 |
| `detail` | One product enriched from its own product page (seller profile, DSR, rating breakdown, review, category path, location, payment methods) | $6.49 / 1,000 | $5.99 / 1,000 | $5.79 / 1,000 | $5.59 / 1,000 |
| `seller-lead` | One shop record from Shop mode, charged once per unique shop per run | $8.49 / 1,000 | $7.99 / 1,000 | $7.79 / 1,000 | $7.59 / 1,000 |

Each product row is charged once: as `detail` when **Scrape full product detail** is on and its product page loaded, otherwise as `product`. Example: 1,000 products from a keyword search cost $3.49 on the Free plan with details off, or $6.49 with details on. Apify's free plan includes monthly platform credits you can use to try the actor, and the run stops by itself when your spending limit is reached.

### Input

Example input for a keyword search in the Singapore storefront:

```json
{
    "mode": "search",
    "keywords": ["手机", "connector"],
    "region": "sg",
    "maxItems": 200,
    "scrapeDetails": true,
    "deepScan": true
}
```

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `mode` | string | `search` | `search`, `category`, `item` or `shop` |
| `keywords` | array | — | Search terms (Search mode) |
| `categoryIds` | array | — | Category ids or `world.taobao.com/category/...` URLs (Category mode) |
| `itemUrls` | array | — | Product ids or Taobao / Tmall / world.taobao.com URLs; other Taobao links are routed automatically |
| `shopIds` | array | — | Shop ids, `world.taobao.com/dianpu/...` or `shopNNN.taobao.com` URLs (Shop mode) |
| `region` | string | `sg` | Storefront and currency: `sg` SGD, `world` CNY, `my` MYR, `th` THB, `vn` CNY, `ph` PHP, `mo` MOP, `au` AUD, `nz` NZD, `kr` KRW, `jp` JPY, `ca` CAD |
| `maxItems` | integer | 50 | Stop after this many records |
| `scrapeDetails` | boolean | true | Open each product page for the seller profile, ratings, review, category path and location |
| `deepScan` | boolean | true | Re-query across sort orders and price bands; follow sub-categories in Category mode |
| `expandKeywords` | boolean | false | Also scrape up to 10 related keywords Taobao suggests for each keyword |
| `minPrice` / `maxPrice` | integer | — | Yuan price range |
| `freeShippingOnly` | boolean | false | Taobao's free-shipping filter (keyword searches) |
| `urlsFromFile` | string | — | URL / id list, or a link to a .txt / .csv file, Google Sheet or Google Drive file |
| `proxyConfiguration` | object | Apify Proxy | Proxy settings |

### Output example

A Taobao product with full detail (`scrapeDetails` on, New Zealand storefront):

```json
{
    "type": "product",
    "itemId": "788336715855",
    "title": "瑜伽鞋女跑步鞋男训练鞋专用软底防滑室内健身鞋跳绳跑步机运动鞋",
    "url": "https://world.taobao.com/item/788336715855.htm",
    "taobaoUrl": "https://item.taobao.com/item.htm?id=788336715855",
    "platform": "taobao",
    "price": 5.11,
    "currency": "NZD",
    "priceCny": 18.88,
    "priceHkd": 22.42,
    "priceTwd": 93.07,
    "discountType": "品牌钜惠",
    "shopId": "136716292",
    "shopName": "鯊巴特SBART遊泳之家",
    "sellerId": "2288722944",
    "sellerType": "C",
    "sellerTypeLabel": "Individual seller",
    "sellerCreditLevel": 15,
    "shopOpenedAt": "2015-10-12 17:26:11",
    "shopItemCount": 116,
    "dsrDescription": 4.8,
    "dsrService": 4.8,
    "dsrDelivery": 4.8,
    "descriptionMatchScore": 4.82,
    "ratingGoodPercent": 99,
    "ratingNeutralPercent": 1,
    "ratingBadPercent": 0,
    "ratingGoodCount": 2000,
    "ratingGoodCountText": "2000+",
    "reviews": [
        {
            "rating": 5,
            "content": "材質穿着舒服，底子也防滑，老人居家穿着很滿意",
            "date": "2026.10.13 08:27",
            "sku": "鞋碼:38-39(適合37-38的腳);顏色分類:雙拼SPORT/紫色",
            "user": "***"
        }
    ],
    "categoryPath": "運動鞋 > 女子訓練鞋",
    "location": "浙江金華",
    "freeShipping": false,
    "paymentMethods": ["蚂蚁花呗", "集分宝", "支付宝支付"],
    "mainImage": "https://img.alicdn.com/imgextra/i4/2288722944/O1CN01PnF3fo1XcP26qZWCe_!!2288722944.jpg",
    "sellableLanguages": ["en_US", "ru_RU", "ms_MY", "th_TH"],
    "query": "跑步鞋",
    "queryTotalResults": 38456
}
```

A seller lead from Shop mode (`products` shortened):

```json
{
    "type": "shop",
    "shopId": "71799145",
    "shopName": "iQOO手機官方旗艦店",
    "sellerId": "883737303",
    "shopUrl": "https://world.taobao.com/dianpu/71799145.htm",
    "dsrDescription": 4.8,
    "dsrService": 4.8,
    "dsrDelivery": 4.8,
    "dsrAverage": 4.8,
    "catalogueItemCount": 48,
    "productCount": 46,
    "products": [
        {
            "itemId": "629552891650",
            "title": "vivo 耳機轉接線Type-C to 3.5mm耳機轉換器原裝正品官方旗艦店",
            "price": 29,
            "currency": "CNY",
            "priceCny": 29,
            "url": "https://world.taobao.com/item/629552891650.htm"
        }
    ],
    "topCategoryIds": ["1512", "50008090", "50019780"],
    "leadScore": 69
}
```

Download the dataset in JSON, CSV, Excel, XML or HTML from the **Output** tab or the API.

### Use the Taobao scraper API

**Python** ([apify-client](https://docs.apify.com/api/client/python)):

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("parsebird/taobao-tmall-scraper").call(run_input={
    "mode": "search",
    "keywords": ["蓝牙耳机"],
    "region": "sg",
    "maxItems": 100,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["title"], item["price"], item["currency"], item.get("dsrService"))
```

**JavaScript** ([apify-client](https://docs.apify.com/api/client/js)):

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('parsebird/taobao-tmall-scraper').call({
    mode: 'item',
    itemUrls: ['https://item.taobao.com/item.htm?id=730344766230'],
    region: 'au',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### Use cases

- **Price benchmarking and monitoring.** Schedule a daily run on a watchlist of product URLs and track `price`, `promotionPrice` and `discountType` over time.
- **Product research.** Measure demand with `queryTotalResults` and compare prices and sellers across a keyword or category.
- **Supplier sourcing.** Rank sellers by DSR scores, credit level, shop age and catalogue size before you contact them.
- **Seller lead lists.** Feed the `shopId` values from a product scrape into Shop mode to get scored seller records.
- **Review and sentiment checks.** Use the rating breakdown, sample reviews and review tags to spot quality problems.
- **Cross-border e-commerce.** Quote Taobao prices directly in SGD, MYR, THB, PHP, AUD, NZD, JPY, KRW, CAD or MOP.

### How it works

1. The actor builds storefront URLs for your keywords, categories, products or shops on world.taobao.com or the country storefront you chose.
2. It reads the product data Taobao embeds in each server-rendered page; there is no browser and no login.
3. With deep scan on, each query is repeated across up to 5 sort orders and 8 price bands, and duplicates are dropped.
4. With full detail on, each product page adds the seller profile, ratings, review, category path and location.
5. Prices are quoted in the storefront's currency at Taobao's own exchange rate, with the yuan price kept in `priceCny`.
6. Records are saved as they are found, and the run stops at **Max records** or your spending limit.

### FAQ

**How many results can I get per keyword?**
Taobao's public storefront serves one page of 20 products per query and has no deeper pagination. Deep scan re-queries across sort orders and price bands: in our tests a single keyword returned 566 unique products (手机壳, Philippines storefront) and 500 (connector, Japan storefront). Add more keywords, turn on **Follow related keywords**, or use Category mode for more.

**Why do some titles look Traditional Chinese and others Simplified?**
Country storefronts (Singapore, Malaysia and the others) show Simplified Chinese titles. Global storefront pages, product pages and shop pages show Traditional Chinese. The text is Taobao's own.

**Why is the product title shortened in Item mode?**
Taobao shortens titles on its product pages. The actor recovers the full title from the seller's shop listing; if the product is not among the shop's listed items, the shortened title is kept and `titleIsShortened` is set to `true`.

**Why are the rating percentages empty on some rows?**
Tmall pages do not publish the buyer-rating breakdown, and Taobao pages only show it once a product has buyer ratings. See the note under the data table. Review counts are approximate where Taobao rounds them ("2000+" becomes `2000`, with the original text in `ratingGoodCountText`).

**Does it return the full image gallery and all reviews?**
No. The public storefront publishes the main product image and one sample review per product page; `hasMoreReviews` tells you whether more exist. The full gallery and review pagination are only available behind Taobao's logged-in app.

**How is the lead score calculated?**
`leadScore` = up to 70 points from the shop's DSR average (4.0 scores 0, 5.0 scores 70) plus up to 30 points from catalogue size on a log scale (10,000+ listings scores 30).

**Which currency does the Global storefront use?**
CNY. Vietnam also returns CNY, because that is what Taobao quotes on its Vietnam storefront. Category and shop pages only exist on the Global site, so their prices are converted to your storefront's currency at the same exchange rate Taobao uses on that storefront.

**Do I need a proxy?**
Apify Proxy is on by default and nothing needs configuring. Pages that are refused on every attempt are retried through an Apify residential exit, and category and shop pages go through an Asia-Pacific residential exit, because Taobao serves them without their filters to many other regions.

**Can I schedule runs or connect the data to other tools?**
Yes. Use [Apify schedules](https://docs.apify.com/platform/schedules) for daily or weekly runs, the [API](https://apify.com/parsebird/taobao-tmall-scraper/api) from your own code, or [integrations](https://apify.com/integrations) such as Google Sheets, Slack, Zapier and Make.

**Something is missing or broken?**
Open an issue in the **Issues** tab. Feedback and feature requests are welcome.

### Is it legal to scrape Taobao?

This actor collects publicly available product and seller information that Taobao publishes on its overseas storefront without a login, on the product, category, item and shop pages its robots.txt lists as open to crawlers. It does not collect private user data; reviewer names are masked by Taobao itself. You are responsible for how you use the data, including compliance with copyright, data protection laws such as GDPR, and Taobao's terms. If you are unsure, consult a lawyer. Read more in Apify's blog post on [whether web scraping is legal](https://blog.apify.com/is-web-scraping-legal/).

### Other e-commerce scrapers

- [AliExpress Scraper](https://apify.com/parsebird/aliexpress-scraper): AliExpress products and sellers
- [AliExpress Product Variants Scraper](https://apify.com/parsebird/aliexpress-product-variants-scraper): every SKU, price and stock level of AliExpress products
- [1688 Products Wholesale Scraper](https://apify.com/parsebird/1688-wholesale-scraper): Alibaba 1688 wholesale products with supplier details
- [Coupang Search Scraper](https://apify.com/parsebird/coupang-search-scraper): Coupang (쿠팡) search results from Korea
- [Google Shopping Scraper](https://apify.com/parsebird/google-shopping-scraper): Google Shopping products and offers

# Changelog

This Actor's version history is a separate document: https://apify.com/parsebird/taobao-tmall-scraper/changelog.md

# Actor input Schema

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

Search = find products by keyword. Category = scrape a Taobao category id. Item = scrape specific product IDs or URLs. Shop = scrape sellers by shop id (returns one seller record per shop, not individual products).

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

Enter search terms, one per line. Chinese terms return the most results (Taobao is a Chinese-language catalogue), but English terms work too. Used in Search mode.

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

Enter Taobao category ids (e.g. 50064014) or category URLs like https://world.taobao.com/category/50064014.htm. Used in Category mode.

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

Enter product ids (e.g. 730344766230) or any product URL: item.taobao.com, detail.tmall.com and world.taobao.com links all work. Category, shop and search links pasted here are routed to the right mode automatically.

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

Enter Taobao shop ids (e.g. 63978904), or shop URLs like https://world.taobao.com/dianpu/63978904.htm or https://shop63978904.taobao.com. Every scraped product carries its shopId, so you can feed those back here to build a seller list. Used in Shop mode.

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

Choose the Taobao overseas storefront. Search results come from that storefront's own listing selection, and prices are quoted in its currency at Taobao's own exchange rate. The yuan price is always returned in priceCny.

## `maxItems` (type: `integer`):

Stop after this many records (products or shops). Keep it modest for a first run: every record is billed.

## `scrapeDetails` (type: `boolean`):

Open each product page to add the seller profile (DSR scores, credit level, shop age, catalogue size), the buyer-rating breakdown (Taobao listings), a customer review, the full category path, payment methods and ship-from location. Turn off for a faster, cheaper listing-only scrape.

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

Taobao's public storefront serves one page of 20 results per query. Deep scan re-queries each keyword or category across sort orders and price bands to collect several hundred unique products. Turn off to fetch only the first page.

## `expandKeywords` (type: `boolean`):

Also scrape up to 10 related search terms that Taobao suggests for each keyword. Widens coverage; results drift further from your original keyword.

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

Keep only products at or above this yuan price.

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

Keep only products at or below this yuan price.

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

Apply Taobao's free-shipping filter to keyword searches. Taobao does not offer this filter on category pages.

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

Paste a list of Taobao / Tmall URLs or ids (one per line), or one link to a .txt / .csv file, Google Sheet or Google Drive file that contains them. Google Sheet and Drive share links are handled automatically.

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

Apify Proxy is used by default. Pages refused on every attempt are automatically retried through an Apify residential exit. Choose RESIDENTIAL here to send every request that way from the start.

## Actor input object example

```json
{
  "mode": "search",
  "keywords": [
    "蓝牙耳机"
  ],
  "region": "sg",
  "maxItems": 20,
  "scrapeDetails": true,
  "deepScan": true,
  "expandKeywords": false,
  "freeShippingOnly": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "mode": "search",
    "keywords": [
        "蓝牙耳机"
    ],
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/taobao-tmall-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 = {
    "mode": "search",
    "keywords": ["蓝牙耳机"],
    "maxItems": 20,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/taobao-tmall-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 '{
  "mode": "search",
  "keywords": [
    "蓝牙耳机"
  ],
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call parsebird/taobao-tmall-scraper --silent --output-dataset

```

## MCP server setup

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