# Taobao 淘宝 & Tmall 天猫 Product Scraper - USD & Reviews (`insights_data/taobao-tmall-product-scraper`) Actor

Scrape Taobao (淘宝) and Tmall (天猫) products from links, share links or item IDs. Get English titles, CNY and USD prices, shop details, seller ratings, buyer tags and sample reviews as clean JSON. Bulk input, live results, no account or cookies needed.

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

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

### What is Taobao 淘宝 & Tmall 天猫 Product Scraper?

**Taobao 淘宝 & Tmall 天猫 Product Scraper - USD & Reviews** is a Taobao scraper that turns Taobao and Tmall product links into clean rows of product data in English, with prices in CNY and USD, for sellers, sourcing teams and researchers. Paste product links, short share links or numeric item IDs and click **Start**: you don't need a Taobao account, cookies or code. On the Apify Free plan you can save **up to 10 products per run**. Each row has the translated title, the original Chinese title, prices, shop details, seller ratings, buyer impression tags and the reviews shown on the product page, which is a small sample (often only one or a few reviews).

> **Not included:** product variants (SKUs), stock, sales counts, the full image gallery and shipping fees. Details are in the "What data can't … extract?" section below.

It works as a Taobao Tmall data scraper for anyone who buys, sells or studies products from China:

- **Source products with confidence:** check the shop, its credit level and the seller scores before you contact a supplier.
- **Compare prices across borders:** prices come in yuan and, whenever Taobao shows an exchange rate for the product, in US dollars, so you can compare them with Western marketplaces.
- **Enrich a catalog or a dropshipping store:** take translated titles, descriptions, images and category paths straight into your product sheet.
- **Do Taobao product research:** see which listings are on Tmall, where they ship from and what buyers say about them.
- **Support China market research:** collect the same fields for hundreds of products and analyze them in one table.

**You don't need the official Taobao API.** This Taobao data scraper does not use it, so you need no Taobao developer account or API key. It reads public product pages and gives you ready-to-use rows.

#### What can Taobao 淘宝 & Tmall 天猫 Product Scraper do?

- 🔍 **Read any mix of inputs:** product links from item.taobao.com or detail.tmall.com, share links and item IDs, all in one list. Duplicates are skipped.
- 🌐 **Translate titles:** title, description and category path come in English by default, or in Russian, Malay or another locale. The Chinese title is kept next to them.
- 💲 **Show prices in two currencies:** this Taobao price scraper returns CNY prices plus USD prices, converted with the exchange rate Taobao itself shows for the product.
- ⭐ **Check sellers:** shop details and seller scores (store rating, description, service and logistics) when the page shows them.
- 📝 **Collect buyer feedback:** buyer impression tags with counts, plus the few sample reviews shown on the product page (often just one), with photos, video and follow-up comments.
- 📦 **Export the data** to JSON, CSV, Excel, XML or HTML. Use the API, schedule runs, monitor them and connect other apps.
- 🛡️ **Handle blocking for you:** the run starts without a proxy and switches to Apify Proxy automatically if Taobao refuses requests (when Apify Proxy is available on your account). Proxy traffic counts as platform usage.

Taobao and Tmall listings go through the same Taobao product scraper, and `isTmall: true` marks the Tmall ones.

***

### What data can Taobao 淘宝 & Tmall 天猫 Product Scraper extract?

Each product becomes one row of Taobao product data, and Tmall product data uses the same fields. Everything comes from the public product page, so this Taobao extractor returns what any visitor can see there.

| | | |
|---|---|---|
| 🔗 Item ID `itemId` | 🔗 Product URL `url` | 🏬 Tmall listing `isTmall` |
| 📝 Title in your language `title` | 📝 Chinese title `titleOriginal` | 🌐 Language `language` |
| 💲 Price in CNY `price` | 💲 Price in USD `priceUSD` | 💲 List price `originalPrice` / `originalPriceUSD` |
| 💲 Member price `memberPrice` / `memberPriceUSD` | 💲 Currency `currency` / `usdCurrency` | 💲 Price range flag `hasRangePrice` |
| 📂 Category IDs `categoryId` / `rootCategoryId` | 📂 Category path `categoryPath` | 📍 Ships from `location` |
| 🚚 Free shipping flag `freeShipping` | 📸 Main image `mainImage` | 📸 Description images `descriptionImages` |
| 📝 Description HTML `descriptionHtml` | 🏪 Shop details `shop` | ⭐ Seller ratings `sellerRatings` |
| 🎫 Coupon link `couponUrl` | 🏷️ Buyer impression tags `reviewTags` | 💬 Sample reviews `reviews` |
| 💬 Reviews in the sample `reviewsSampleCount` | 💬 More reviews exist `hasMoreReviews` | 🔤 Available languages `availableLanguages` |
| 👤 Your input `input` / `inputType` | 📅 Scrape time `scrapedAt` | ⚠️ Fields not provided `_unavailable` |
| ✅ Product still exists `itemExists` | | |

The `shop` object holds `shopId`, `sellerId`, `shopName`, `shopUrl`, `sellerType` (`B` = business, Tmall-style shop; `C` = individual seller), `creditLevel`, `itemCount`, `newItemCount`, `openedAt` and `icon`. Each review holds `date`, `rating`, `content`, `skuInfo`, `userName`, `userIcon`, `images`, `video` and `appendList` (follow-up comments).

> **Note:** `memberPrice` is filled only when the member or coupon price is lower than `price`, otherwise it is `null`. `couponUrl` is `null` when the product shows no promotion link. `sellerRatings` holds only the scores the page shows. If a score type is not recognised, it keeps its own key. `availableLanguages` is off by default. When `hasRangePrice` is `true`, the product's variants have different prices: `price` is the one current price the product page shows, and per-variant prices are not provided. Prices and scores come back as text (for example `"79.90"` or `"4.8"`), so convert them to numbers in your spreadsheet before sorting or adding them up. Review text and impression tags are usually in Chinese, because only the title, description and category path are translated.

#### Taobao seller rating and shop data

You get the Taobao seller rating scores that buyers see: `storeRating`, `descriptionScore`, `serviceScore` and `logisticsScore`. They are returned as text, for example `"4.8"`, when the page shows them. Together with the shop's credit level, product count and opening date, this gives you a quick Taobao shop rating check for Taobao seller research.

#### Taobao buyer reviews and impression tags

The page shows a small sample of Taobao buyer reviews, often just one, and the Actor returns that sample. `hasMoreReviews` tells you whether the product has more reviews. `reviewTags` lists the most common buyer impressions with how many buyers said them, sorted by count. This works for a quick Taobao review analysis, but this Taobao reviews scraper does not page through the full review history.

#### What data can't Taobao 淘宝 & Tmall 天猫 Product Scraper extract?

These fields are not provided, and every row lists them under `_unavailable`:

- variant (SKU) list, per-variant stock and total stock
- sales and units sold
- full image gallery and main product video (you get the main image and the description images)
- full review history
- shipping fee (you get the `freeShipping` flag only)

Search results, shop pages and category pages are not supported: one input entry is one product. For full product reviews from another marketplace, see [Flipkart Reviews Scraper](https://apify.com/insights_data/flipkart-reviews-scraper).

***

### Taobao scraper tutorial: how to scrape Taobao product details

Follow these five steps. You don't need any scraping experience.

1. [Create a free Apify account](https://console.apify.com/sign-up) using your email.
2. Open [Taobao 淘宝 & Tmall 天猫 Product Scraper](https://apify.com/insights_data/taobao-tmall-product-scraper).
3. Paste your product links, share links or item IDs into **🛒 Taobao / Tmall products**, one per line. See [how to copy a product link](#how-to-copy-a-product-link) below.
4. Click **Start** and wait for the run to finish. Products appear in the **Output** tab as soon as each one is ready.
5. Download your data in JSON, CSV, Excel, XML or HTML.

> ⚠️ The form comes prefilled with **one** example product, so your first run returns at most one row. Replace it with your own list. On the Free plan, a run saves at most 10 products.

***

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

Taobao 淘宝 & Tmall 天猫 Product Scraper uses **pay-per-event** pricing. Your bill has three parts:

| Part | Price | When it is charged |
|---|---|---|
| 💲 Results | **$6.99 per 1,000 results** ($0.00699 per product) on the Free plan (lower on paid plans, see below) | Once for each product row saved to the dataset |
| 🚀 Actor start | $0.00005 per run (with the default memory setting of 1 GB) | Once per run |
| ⚙️ Platform usage | Apify's normal usage rates | The computing time of the run, plus proxy traffic if the run switches to Apify Proxy (a proxy sends requests through other IP addresses) |

| Apify plan | Price per product | Price per 1,000 products |
|---|---|---|
| Free | $0.00699 | $6.99 |
| Starter | $0.0063 | $6.30 |
| Scale | $0.0055 | $5.50 |
| Business and higher | $0.005 | $5.00 |

Paid Apify plans get a lower result price. The plan discount applies to that price only. The start fee is the same on every plan, and platform usage is billed at your Apify plan's own rates.

**What you pay for and what is free:**

- ✅ Charged: every saved product row. This includes a product whose page loads but says it no longer exists. That row is saved with `itemExists: false`.
- ❌ Not charged: duplicates, entries where no product ID can be found, products that could not be reached, pages that show no product (not listed, region-locked or taken down), and products left over after the 10-product Free plan cap or your maximum charge limit.

**Example result charges at Free plan prices** (start fee and platform usage come on top):

| Products saved | Result charges |
|---|---|
| 10 | about $0.07 |
| 100 | about $0.70 |
| 1,000 | about $6.99 |

Platform usage depends on your products and on whether the run needs a proxy, so this README gives no fixed number for it. To estimate your total bill:

1. Run 10 of your own products (this works on the Free plan).
2. When the run finishes, open the run's page in Apify Console and read the total cost of that run. It includes the result charges, the start fee and the usage.
3. Divide that total by the number of products saved to get a cost per product, then multiply it by the size of your list.

Lists of more than 10 products in one run need a paid Apify plan, so step 3 is how you plan a paid run. Usage can vary from run to run, for example when a run has to switch to a proxy.

To set a cost cap, use the **maximum charge limit** when you start a run. The run stops cleanly when it reaches the limit and keeps every row it already saved. See the [pricing tab](https://apify.com/insights_data/taobao-tmall-product-scraper/pricing) for the event list.

#### Is scraping Taobao free?

You can start on the [Apify Free plan](https://apify.com/pricing), which includes $5 of usage credit every month. The credit pays for the result charges, the start fees and the platform usage together. On the Free plan, each run saves **up to 10 products**. There is no monthly product limit in the Actor, so you can start more 10-product runs, and each one draws from the same $5 credit. The result charges of one full run are about $0.07 (10 × $0.00699), plus the start fee and that run's usage. For more than 10 products in one run you need a paid Apify plan, which removes the 10-product cap. Your maximum charge limit still applies.

***

### ⬇️ Input

The only required input is a list of Taobao or Tmall products. Everything else has a sensible default.

#### Settings most people change

| Form field | JSON name | What to enter |
|---|---|---|
| 🛒 Taobao / Tmall products | `urls` | Product links, short share links or numeric item IDs, one per line |
| 🌍 Output language | `language` | `en` (English, default), `ru` (Russian), `ms` (Malay), `original` (Chinese title) or a full locale such as `ja_JP` |

Here's an example that reads one product in English. It is a Tmall item even though the link is on item.taobao.com: Tmall items open there too, and the `isTmall` field tells you which kind each product is.

```json
{
  "urls": ["https://item.taobao.com/item.htm?id=996833066479"],
  "language": "en"
}
```

See the [input tab](https://apify.com/insights_data/taobao-tmall-product-scraper/input-schema) for every field.

#### Advanced settings

| Form field | JSON name | Default | What it does |
|---|---|---|---|
| 🈶 Original Chinese title | `includeOriginalTitle` | `true` | Adds `titleOriginal` |
| 📝 Product description | `includeDescription` | `true` | Adds `descriptionHtml`, the Taobao product description as HTML (translated when available) |
| 🌄 Description images | `includeDescriptionImages` | `true` | Adds `descriptionImages` |
| 📂 Category path | `includeCategoryPath` | `true` | Adds `categoryPath` |
| ⭐ Seller ratings | `includeSellerRatings` | `true` | Adds `sellerRatings` |
| 🎫 Coupon link | `includeCoupon` | `true` | Adds `couponUrl` |
| 💬 Sample reviews | `includeReviews` | `true` | Adds `reviews`, `reviewsSampleCount`, `hasMoreReviews` |
| 🏷️ Buyer impression tags | `includeReviewTags` | `true` | Adds `reviewTags` |
| 🔤 Available languages | `includeAvailableLanguages` | `false` | Adds `availableLanguages` |
| 🔄 Retries per request | `maxRetries` | `3` | How often a failed request is retried (0 to 10) before the product is given up |
| 🌐 Proxy | `proxyConfiguration` | no proxy | Optional. A proxy sends requests through other IP addresses. Leave it as is: the run switches to Apify Proxy by itself if Taobao refuses requests. Advanced users can pick their own proxy here |

When a section is switched off, its fields are left out of the row. The price per product stays the same.

#### How to copy a product link

- **On the Taobao or Tmall website:** open the product page and copy the whole address from your browser's address bar. It contains the item number, for example `https://item.taobao.com/item.htm?id=996833066479`.
- **In the Taobao app:** tap **Share** and copy the link. The copied text is usually a block of Chinese text with a short link inside. Paste **only the link** (it starts with `https://e.tb.cn/` or `https://m.tb.cn/`), not the whole block. A whole share text with spaces in it is not read and gives no row.
- **Item ID only:** if you already have the numeric item ID, paste just the number.

#### Product links, share links and item IDs

The Actor needs the numeric product ID behind each entry. A normal product link already contains it. A Taobao short link (from e.tb.cn, m.tb.cn or s.click.taobao.com) is opened first to find it. A bare Taobao item ID works too, so you can use it as a Taobao item scraper for plain ID lists. The same list works as a Tmall product scraper for detail.tmall.com links.

- ✅ Good: `https://item.taobao.com/item.htm?id=996833066479`, a `detail.tmall.com/item.htm?id=…` link, `996833066479`, an `e.tb.cn` share link
- ❌ Bad: a shop home page, a search results page, a product name typed as text. These give no row or, at best, a row (and a charge) for some other product.

> ⚠️ Entries where no product ID can be found give no row. The log names each one so you can fix it.

#### Output language

`en`, `ru` and `ms` are built-in shortcuts. Any other language must be a full locale with an underscore or hyphen, such as `ja_JP`. Short codes like `de` are not recognised, so the run falls back to English and writes a warning in the log. Use `original` to get the Chinese title in `title`.

- ✅ Good: `en`, `ru`, `ms`, `original`, `ja_JP`
- ❌ Bad: `de`, `English`

> ⚠️ Taobao decides which translations a product offers. Switch on `includeAvailableLanguages` to see them.

***

### ⬆️ Output

Results are saved to a dataset as soon as each product is ready. Open the **Output** tab to view them as a table or as JSON. To download everything, go to **Storage → Datasets**, open the run's dataset and click **Export**. Formats are JSON, CSV, Excel, XML and HTML. You can also pick only the fields you need before you export Taobao data.

**Spreadsheets (Taobao to Excel or Taobao to CSV):** `shop`, `sellerRatings`, `reviews` and `reviewTags` are nested fields (a group of values inside one field). The raw Taobao JSON keeps them exactly as shown below. For Excel, the easiest option is the **Shop and seller ratings** table in the Output tab: it shows each shop field and each seller score in its own column. If you download through the [Apify API](https://docs.apify.com/api/v2/dataset-items-get), the `flatten` option turns a nested field into separate columns (for example `flatten=shop` gives `shop.shopName`), and the `unwind` option puts each element of a list such as `reviews` on its own row.

The Output tab offers seven ready-made tables: Overview, Prices, Product details, Shop and seller ratings, Images and description, Reviews and buyer tags, and Run details. The Prices table shows the CNY and USD prices, the member price, the free-shipping flag and the coupon link.

The run also saves a short summary file in its storage (the key-value store). It counts products saved, products billed, products not available or failed, products skipped, and the duration.

#### JSON example

This is a real row for the input example above, from an earlier run, so today's prices and scores may differ. Fields not shown here are left out, the long title is shortened with "…", and `url` and `language` follow directly from the input.

```json
{
  "input": "https://item.taobao.com/item.htm?id=996833066479",
  "inputType": "url",
  "itemId": "996833066479",
  "url": "https://item.taobao.com/item.htm?id=996833066479",
  "isTmall": true,
  "title": "[Double 11 Early Purchase] Mukeishi Double-Ended Lip Glaze Lip Mud Lip Cream …",
  "language": "en",
  "price": "79.90",
  "priceUSD": "12.02",
  "memberPrice": "35.20",
  "memberPriceUSD": "5.30",
  "currency": "CNY",
  "categoryPath": ["Hitao Map Template", "makeup fragrance", "fashion makeup", "Lip Gloss/Lip Gloss"],
  "shop": { "shopName": "Mooekiss木柯诗旗舰店", "sellerType": "B", "creditLevel": "14" },
  "sellerRatings": { "storeRating": "5", "serviceScore": "4.8", "descriptionScore": "4.7", "logisticsScore": "4.8" },
  "reviewTags": [{ "count": 2112, "label": "颜色很搭" }],
  "reviewsSampleCount": 1,
  "hasMoreReviews": true
}
```

How to read it:

- `price` is ¥79.90 and `priceUSD` is $12.02. That is Taobao's own rate for this product, about 0.1504 USD per yuan (12.02 ÷ 79.90).
- `memberPrice` is ¥35.20 because the member/coupon price is lower than `price`. The same rate gives $5.30 (35.20 × 0.1504 ≈ 5.30).
- `sellerType` `B` marks a business (Tmall-style) shop. The impression tag `颜色很搭` means "the color matches well" and was given by 2,112 buyers.
- `categoryPath` is the category breadcrumb exactly as Taobao's own translation gives it. The Actor only drops the "home" entry and does not translate or rename the rest, so some names read oddly, like "Hitao Map Template" here. The later levels show the useful path: makeup → lip gloss.
- USD prices are the converted product price only. Shipping is not included.

***

### Taobao scraper tips and advanced usage

#### How many products can you scrape with Taobao 淘宝 & Tmall 天猫 Product Scraper?

Each entry gives at most one product row. On the Free plan a run saves up to 10 products. Paid plans have no per-run cap, and your maximum charge limit is the only ceiling. You get fewer rows than entries when links have no product ID, products are unavailable, or entries are duplicates. Start with a short run of a few of your own links to see the result.

#### How to get faster or cheaper results

- **Put all your products in one run.** The start fee is charged once per run, and several products are processed in parallel.
- **Clean your list first.** Search, shop and category pages are not supported. They give no row or, at best, a row for some other product, so leave them out.
- **Leave the proxy on automatic.** The run only uses Apify Proxy, and its traffic costs, when Taobao refuses requests.
- **Switch off sections you don't need** to keep rows small and easy to read. This does not change the price per product.

#### Taobao price monitoring with scheduled runs

For Taobao price monitoring, save a task with a fixed list of products and run it on an [Apify schedule](https://docs.apify.com/platform/schedules), for example daily. Each run produces a fresh dataset with the current `price` and `priceUSD`. The Actor does not detect changes or keep a price history, so compare the datasets in your own sheet or database.

#### Known issues

- Reviews are a sample (often one per product). `hasMoreReviews` shows whether more exist.
- If Taobao can't provide the translation for a product during a run, `title` can be empty or in Chinese and the USD prices can be `null`. `titleOriginal` and the CNY prices still come through.
- If the connection keeps failing, the run stops starting new products and keeps the rows it already saved. If you changed the **Proxy** setting, set it back to the default and run again.

***

### Taobao scraper integrations and API

#### Can I use Taobao 淘宝 & Tmall 天猫 Product Scraper as an API?

Yes. The [Apify API](https://docs.apify.com/api/v2) lets you start runs, schedule them and fetch results, so this Actor works as a Taobao scraper API. It also covers Taobao product API and Taobao price API use cases without a Taobao developer key. Use the `apify-client` [NPM package](https://apify.com/insights_data/taobao-tmall-product-scraper/api/javascript) for Node.js or the `apify-client` [PyPI package](https://apify.com/insights_data/taobao-tmall-product-scraper/api/python) for Python. The [API tab](https://apify.com/insights_data/taobao-tmall-product-scraper/api) has ready-to-use code. If you were looking for a Tmall API for product details, the same calls work for Tmall links.

#### How to scrape Taobao with Python

This minimal Taobao scraper Python example runs the input example above and prints each product:

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("insights_data/taobao-tmall-product-scraper").call(run_input={
    "urls": ["https://item.taobao.com/item.htm?id=996833066479"],
    "language": "en",
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["itemId"], item["price"], item["priceUSD"], item["title"])
```

#### Can I integrate Taobao 淘宝 & Tmall 天猫 Product Scraper with other apps?

Yes. [Apify integrations](https://apify.com/integrations) connect the Actor with **Make, Zapier, Slack, Google Sheets, Google Drive, Airbyte, GitHub, LangChain** and more. Use [webhooks](https://docs.apify.com/integrations/webhooks) to trigger an action when a run finishes. For example, a weekly scheduled run can send fresh prices and seller scores for your supplier list straight to a Google Sheet.

#### Can I use Taobao 淘宝 & Tmall 天猫 Product Scraper with AI agents (MCP)?

Yes. Connect it to Claude and other AI assistants through the Apify MCP server. Open the [MCP tab](https://apify.com/insights_data/taobao-tmall-product-scraper/api/mcp) for setup steps.

***

### Other e-commerce and China data scrapers

These Actors from the same developer collect data from other marketplaces (Amazon, Flipkart) and from China's Weibo:

| | |
|---|---|
| 🛒 [Amazon Product Scraper](https://apify.com/insights_data/amazon-product-scraper): products from URLs, keywords or ASINs across 23 marketplaces, with price, seller, rating, reviews and variants | 🛍️ [Flipkart Product Scraper](https://apify.com/insights_data/flipkart-product-scraper): Flipkart products by keyword or category URL, with prices, discounts, ratings, specs and sellers |
| ⭐ [Flipkart Reviews Scraper](https://apify.com/insights_data/flipkart-reviews-scraper): Flipkart product reviews, star ratings, photos and rating summaries in bulk | 📊 [Weibo Scraper — Posts, Comments, Profiles & Hot Search](https://apify.com/insights_data/weibo-scraper): public Sina Weibo posts, comments, profiles and hot search, no account needed |

***

### ❓ FAQ

#### Is it legal to scrape Taobao?

Scraping publicly available product data is generally legal. The Actor reads only public product pages and needs no login. Still, respect personal data rules such as GDPR and China's personal-information law, collect personal data (for example reviewer names) only with a legitimate reason, and take Taobao's terms of service and intellectual-property rights into account. If you are asking "is it legal to scrape Taobao" for a specific project, talk to a lawyer. This is not legal advice.

#### How does Taobao 淘宝 & Tmall 天猫 Product Scraper work?

It works like a person browsing Taobao, only faster. For each entry it finds the product ID, opening share links first. Then it reads the public product page and turns it into one clean row. It converts the yuan prices to dollars with Taobao's displayed rate and saves the row right away. As a Taobao crawler it reads the products you list (opening share links where needed) and does not browse search results. If Taobao refuses requests, it switches to Apify Proxy automatically. That Apify Proxy traffic counts as platform usage.

#### How is this different from the official Taobao API?

This Actor does not use the official Taobao API, so you need no Taobao developer account or API key, only an Apify account and your product links. It returns English titles and USD prices in the same row, and you can export, schedule or call it through the Apify API.

#### Can I get Taobao in English?

Yes. With `language` set to `en` (the default), the title, description and category path come in English, and the Chinese title stays in `titleOriginal`. Review text and buyer impression tags usually stay in Chinese.

#### How is the Taobao price to USD conversion done?

The Actor uses the exchange rate Taobao itself shows for the same product, not a fixed rate. It applies that rate to `price`, `originalPrice` and `memberPrice` and rounds to two decimals, so the CNY and USD figures in a row match each other. If no rate is shown, the USD fields are `null`.

#### What happens with removed products?

It depends on what the page shows. If the page still loads but says the product no longer exists, you get a row with `itemExists: false` and a warning in the log, and that row is charged like any other. If the page shows no product at all (not listed, region-locked or taken down), you get no row and no charge.

#### Why scrape Taobao product data?

- **Sourcing and supplier checks:** shop details and seller scores help you vet shops before you buy.
- **Price comparison:** USD prices make Taobao listings easy to compare with other marketplaces.
- **Catalog building:** translated titles, descriptions and images speed up listing products.
- **Taobao review analysis:** impression tags show what buyers mention most.
- **Taobao product research:** track Tmall vs Taobao listings, locations and categories.

#### Why am I getting fewer results than expected?

1. Check the free-plan cap: Free plan runs save up to 10 products.
2. Look for duplicates: the same item ID is saved once.
3. Check the log: it names every entry where no product ID could be found and every product that is not available.
4. Remove shop, search and category pages, because they are not product pages.
5. Raise **Retries per request** (`maxRetries`) and run again if products could not be reached.
6. Check whether the run stopped at your maximum charge limit.

#### Do I need to know Taobao web scraping or coding?

No. You paste links into a form, click **Start** and download the results. Coding is only needed if you want to use the API.

#### Does it work as a Tmall scraper too?

Yes. Tmall products use the same input and the same fields. A Tmall item can open on a `detail.tmall.com` link or on an `item.taobao.com` link. Either works, and `isTmall` is `true` when Taobao marks the item as a Tmall listing.

***

### Support and feedback

Found a bug or missing a field? Please create an issue on the [Issues tab](https://apify.com/insights_data/taobao-tmall-product-scraper/issues/open).

Need a **custom solution**, more fields or another marketplace? Contact us at hello.insights.data@gmail.com.

Built and maintained by [Insights Data](https://apify.com/insights_data).

# Actor input Schema

## `urls` (type: `array`):

One entry per line. Accepted: item.taobao.com or detail.tmall.com product links, short share links (e.tb.cn, m.tb.cn, s.click.taobao.com) and bare numeric item IDs. Mixed formats are fine and duplicates are skipped. Free plan: up to 10 products per run, with no monthly limit; paid plans have no limit.

## `language` (type: `string`):

Language of the translated title, description and category path. English, Russian and Malay are built in; you can also type a full locale such as ja_JP. Choose original to get the Chinese text only.

## `includeOriginalTitle` (type: `boolean`):

Adds titleOriginal, the Chinese title, next to the translated title.

## `includeDescription` (type: `boolean`):

Adds descriptionHtml, the translated description as HTML.

## `includeDescriptionImages` (type: `boolean`):

Adds descriptionImages, the list of images shown in the product description.

## `includeCategoryPath` (type: `boolean`):

Adds categoryPath, the breadcrumb of categories the product belongs to.

## `includeSellerRatings` (type: `boolean`):

Adds sellerRatings: store rating plus description, service and logistics scores.

## `includeCoupon` (type: `boolean`):

Adds couponUrl, the promotion link shown for the product when there is one.

## `includeReviews` (type: `boolean`):

Adds reviews, the sample buyer reviews shown for the product (rating, text, photos, video, follow-up comments), plus reviewsSampleCount and hasMoreReviews.

## `includeReviewTags` (type: `boolean`):

Adds reviewTags, the most common buyer impressions with how many buyers said them.

## `includeAvailableLanguages` (type: `boolean`):

Adds availableLanguages, the translation languages offered for the product.

## `maxRetries` (type: `integer`):

How often a failed or blocked request is retried before giving up on that product (0 to 10). Also the number of fresh-IP tries on the last proxy step.

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

Optional. By default the actor connects without a proxy. If Taobao refuses the connection it switches to datacenter proxies, then residential proxies, and stays on that step for the rest of the run.

## Actor input object example

```json
{
  "urls": [
    "https://item.taobao.com/item.htm?id=996833066479"
  ],
  "language": "en",
  "includeOriginalTitle": true,
  "includeDescription": true,
  "includeDescriptionImages": true,
  "includeCategoryPath": true,
  "includeSellerRatings": true,
  "includeCoupon": true,
  "includeReviews": true,
  "includeReviewTags": true,
  "includeAvailableLanguages": false,
  "maxRetries": 3,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

One line per product: image, title, price and headline numbers.

## `pricing` (type: `string`):

CNY and USD prices, member price and shipping.

## `product` (type: `string`):

Titles, language, category and origin.

## `shop` (type: `string`):

Shop details and the four seller scores.

## `media` (type: `string`):

Main image, description images and description.

## `reviews` (type: `string`):

Sample reviews and buyer impression tags.

## `run` (type: `string`):

Input, scrape time and fields not provided.

## `summaryFile` (type: `string`):

SUMMARY file with the counts of this run.

# 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 = {
    "urls": [
        "https://item.taobao.com/item.htm?id=996833066479"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("insights_data/taobao-tmall-product-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 = {
    "urls": ["https://item.taobao.com/item.htm?id=996833066479"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("insights_data/taobao-tmall-product-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 '{
  "urls": [
    "https://item.taobao.com/item.htm?id=996833066479"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call insights_data/taobao-tmall-product-scraper --silent --output-dataset

```

## MCP server setup

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