Taobao Tmall 淘宝 Product Scraper - Prices, Sales & Shops
Pricing
from $8.00 / 1,000 results
Taobao Tmall 淘宝 Product Scraper - Prices, Sales & Shops
Search Taobao and Tmall (淘宝/天猫) products by keyword and get price, discount price, sales count, shop name and ID, shop ratings, seller level, ship-from location, stock and images. Filter by price range or Tmall only. No login or cookies needed. Export to JSON, CSV or Excel.
Pricing
from $8.00 / 1,000 results
Rating
0.0
(0)
Developer
Silkline
Maintained by CommunityActor stats
0
Bookmarked
347
Total users
79
Monthly active users
2 hours ago
Last modified
Categories
Security
Limited permissionsShare
Taobao Scraper is a Taobao API that searches Taobao (淘宝) products by keyword and works as a Tmall scraper for Tmall (天猫) products, reads the questions and answers buyers post under an item (问大家), reads the buyer reviews of an item, lists every product of a shop, and returns clean, flat JSON records. For every searched product you get the price and discount price, the sales count, the shop name, ID and ratings, the seller level, where the item ships from, stock and images. It is built for sellers, sourcing teams, analysts and developers who need China e-commerce product data without a Taobao account. No Taobao account, API keys, proxies or cookies are needed.
Pricing is pay-per-event: $0.008 per product or question and $0.0045 per review, plus a $0.03 start fee per run. shopProducts mode charges $0.06 per shop instead. 100 products from one keyword cost about $0.83; 100 reviews of one item cost about $0.48.
What is Taobao?
Taobao (淘宝) is a large Chinese online marketplace run by Alibaba, where many independent shops sell to consumers. Tmall (天猫) is its sister platform for brand and official stores, and Tmall products also appear in Taobao search results. This Actor works on the Taobao search results page, so it covers both regular Taobao shops and Tmall stores.
What data can you get?
The Actor has three modes, chosen with mode:
search(default) returns products matching keywords, with the full field set below.questionsreturns the questions under items (typeisquestion), each with the answer Taobao shows first.shopProductslists the best-selling products of shops, 60 per request, from a seller ID plus the shop ID. In its output,shopIdholds the seller ID (as in the other modes), which is not the shop ID you enter. It returns the same fields as a search result except the shop name, ratings, seller level, location, stock and extra images, which stay empty.shoplists the products of shops (typeisproduct). A shop listing carries onlyitemId,url,title,price,salesText,salesCount,shopIdandimageUrl; the other product fields are present but empty (null).
In search and shop modes each dataset item is one product (type is product). The most useful fields come first.
Taobao product price and sales
| Field | Description |
|---|---|
price | List price in Chinese yuan (CNY), as a number |
discountPrice | Price in CNY after the shop's current promotion; equals price when there is none |
discountType | Name of the current promotion, for example 特价秒杀; null when there is no promotion |
salesText | Buyer count as Taobao shows it, for example 1万+ |
salesCount | Lower bound of salesText as a number (1万+ becomes 10000) |
commentCount | Review count; usually empty in search results |
stock | Stock count shown on the listing |
Taobao shop data
| Field | Description |
|---|---|
shopName | Shop name |
shopId | Shop ID |
isTmall | true when the shop is a Tmall store |
sellerLevel | Seller level shown by Taobao |
sellerPositiveRate | Positive-review rate of the seller, in percent |
descriptionRating | Shop rating for item as described, out of 5 |
serviceRating | Shop rating for service, out of 5 |
shippingRating | Shop rating for shipping, out of 5 |
sellerLocation | Seller's location; empty for many shops |
Taobao product data
| Field | Description |
|---|---|
itemId | Taobao item ID |
url | Link to the item page on taobao.com |
title | Item title (Chinese) |
titleEn | English title; usually empty |
subtitle | Selling-point line under the title; empty for many items |
spuId | Standard product unit ID that groups the same product across shops |
imageUrl | Main image URL |
imageUrls | Further image URLs |
searchKeyword | The search keyword this item was found with |
type | Record type: product |
Taobao delivery and ship-from location
| Field | Description |
|---|---|
itemLocation | Where the item ships from (province and city) |
Taobao buyer questions and answers (mode: questions)
Each record is one question under an item (type is question).
| Field | Description |
|---|---|
question | Question text |
questionId | Question ID |
answerCount | Number of answers the question has |
answers | The answer Taobao shows first, as a list of {answerId, text, answeredAt}. It is not the full thread, and no answerer details are returned. |
askedAt | When the question was asked (ISO 8601, UTC) |
updatedAt | When the thread last changed (ISO 8601, UTC) |
itemId | ID of the item the question belongs to |
itemTitle | Title of that item |
url | Link to the question page |
type | Record type: question |
Reviews (mode: reviews)
Each record is one buyer review of an item (type is review). Reviewer fields are what Taobao shows publicly next to the review; many buyers review anonymously, and then Taobao masks the nickname (for example t***2) and gives no user ID.
| Field | Description |
|---|---|
text | Review text |
rating | good, neutral or bad, as the buyer rated the item |
score | Average of the buyer's star scores (1 to 5), when given |
reviewedAt | When the review was written (ISO 8601, UTC) |
sku | The variant the buyer bought, for example colour and phone model |
imageCount, imageUrls | Number of photos in the review and their links |
likeCount, usefulCount | Likes and useful votes the review received |
followUpText, followUpDaysLater | The buyer's later follow-up review and the days after delivery it was written; empty when there is none |
reviewerNickname, reviewerId, reviewerAvatar, reviewerLevel, reviewerAnonymous | The reviewer's public nickname, user ID (empty for anonymous reviews), avatar link, membership level, and whether the review is anonymous |
reviewId | Review ID |
productId | ID of the item the review belongs to |
url | Link to the item page |
type | Record type: review |
The numbers are ready to use: prices are numbers in CNY, the sales count comes both as text as Taobao shows it and as a number, and shop ratings are plain numbers out of 5.
How to use Taobao Scraper
- Open the Actor on Apify and click Try for free (or Start).
- Choose a Mode: search products by keyword (
search), questions and answers of items (questions), products of shops (shop), products of shops by seller ID and shop ID (shopProducts) or buyer reviews of items (reviews). - For
search, enter one or more keywords, in Chinese or English, and optionally choose a sort order, turn on Tmall only, and set a minimum and maximum price. Forquestionsorreviews, enter item IDs or item links in Items. Forshop, enter seller IDs or shop links in Shops. - Set Max results to the total number of records (products, questions or reviews) you want for the run.
- Click Start and wait for the run to finish.
- Open the Products view in the dataset and export the data as JSON, CSV or Excel, or fetch it through the API.
The Actor also runs with an empty input: {} searches 手机壳 (phone cases), which is a quick way to see the output format.
A common workflow is to search a keyword first, then use the itemId of interesting products in questions mode to see what buyers ask, and the shopId of their shops in shop mode to list the shops' catalogues.
Input
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
mode | string | Optional | search (products by keyword), questions (questions and answers of items), shop (products of shops) or reviews (buyer reviews of items) | prefilled with search; when left out, questions if items is given, shop if shops is given, otherwise search. Giving both items and shops without mode is an error. |
keywords | array of strings | Optional | Used in search mode. Search keywords, Chinese or English (for example 手机壳 or phone case). They are searched one after the other, and results are collected keyword by keyword until maxResults is reached. A later keyword is only searched if the earlier ones did not already fill maxResults. | Falls back to 手机壳 when empty |
items | array of strings | Optional (needed for questions and reviews modes) | Item IDs (the itemId field of search results) or item links containing id=<digits>, for example https://item.taobao.com/item.htm?id=672400567264. Short links such as e.tb.cn are not supported. Questions or reviews are collected item by item until maxResults is reached. | none |
shops | array of strings | Optional (needed for shop and shopProducts modes) | Seller IDs (the shopId field of search results) or shop links containing user_id=<digits> or user_number_id=<digits>. Products are listed shop by shop, newest first, until maxResults is reached. In shopProducts mode each entry needs both IDs: sellerId:shopId (for example 1659916565:103710607) or a shop link containing both user_id=<digits> and shop_id=<digits>; products come best-selling first. | none |
sort | string | Optional | Used in search mode. sales (best selling), priceHighToLow (price, high to low) or general (Taobao's general ranking). Price low to high is not offered. | sales |
tmallOnly | boolean | Optional | Used in search mode. Only products from Tmall stores. | false |
minPrice | number | Optional | Used in search mode. Only products whose price after discount (discountPrice) is at least this many yuan (inclusive); the list price (price) can be higher. Minimum 0. | none |
maxPrice | number | Optional | Used in search mode. Only products whose price after discount (discountPrice) is at most this many yuan (inclusive); the list price (price) can be higher. Minimum 0. | none |
maxResults | integer | Optional | Maximum number of records (products or questions) to return in total for this run, from 1 to 5000. A single keyword returns at most about 1000 products, so higher totals need several keywords. The run stops as soon as it is reached. You are charged per record returned. | 20 |
Example: best-selling Taobao products for a keyword
{"keywords": ["手机壳"],"sort": "sales","maxResults": 100}
Example: Tmall products within a price range
{"keywords": ["蓝牙耳机"],"sort": "sales","tmallOnly": true,"minPrice": 20,"maxPrice": 200,"maxResults": 100}
Example: English keyword on Taobao, most expensive first
{"keywords": ["phone case"],"sort": "priceHighToLow","maxResults": 50}
Example: what Taobao buyers ask under an item
{"mode": "questions","items": ["672400567264"],"maxResults": 50}
Example: buyer reviews of an item
{"mode": "reviews","items": ["672400567264"],"maxResults": 100}
Example: the newest products of a Taobao shop
{"mode": "shop","shops": ["1659916565"],"maxResults": 100}
When you give several keywords, they are searched in order. The run only moves on to the next keyword when the earlier ones did not fill maxResults. With a small maxResults, the first keyword often fills it, and the later keywords are never searched.
Output example
One product record. Values are illustrative.
{"type": "product","itemId": "123456789012","url": "https://item.taobao.com/item.htm?id=123456789012","searchKeyword": "手机壳","title": "透明磁吸手机壳 适用iPhone 防摔全包超薄保护套","titleEn": null,"subtitle": "镜头全包 不易发黄","price": 59.0,"discountPrice": 49.0,"discountType": "特价秒杀","salesText": "1万+","salesCount": 10000,"commentCount": null,"isTmall": true,"shopId": "1000000001","shopName": "示例数码旗舰店","sellerLevel": 19,"sellerPositiveRate": 100.0,"descriptionRating": 4.84,"serviceRating": 4.88,"shippingRating": 4.9,"itemLocation": "广东 东莞","sellerLocation": "广东 深圳","stock": 25000,"imageUrl": "https://img.alicdn.com/imgextra/i1/1000000001/example-main.jpg","imageUrls": ["https://img.alicdn.com/imgextra/i1/1000000001/example-2.jpg"],"spuId": "8000000001"}
Question record (values are illustrative):
{"type": "question","itemId": "123456789012","itemTitle": "透明磁吸手机壳 适用iPhone 防摔全包超薄保护套","questionId": "585847296732","question": "质量怎么样?会刮花手机吗","askedAt": "2026-10-13T03:19:20Z","updatedAt": "2026-10-14T12:35:16Z","answerCount": 4,"answers": [{"answerId": "585287107305", "text": "不会", "answeredAt": "2026-10-14T12:35:05Z"}],"url": "https://web.m.taobao.com/app/mtb/ask-everyone/detail?id=585847296732"}
How much does it cost?
The Actor uses pay-per-event pricing. These are the charge events:
| Event | Price (USD) | When it is charged |
|---|---|---|
run-start | $0.03 | Once per run, charged when the first request succeeds, even if that request returns nothing. It is not charged when the run fails from the start, or when your spending limit cannot cover it. Each further keyword, item or shop the run actually reaches pays one more start fee. That fee is charged before its first request and is kept even if it then fails or returns nothing. A later keyword, item or shop is only reached when the earlier ones did not fill maxResults. |
result | $0.008 | For each record returned: a product (search, shop and shopProducts modes) or a question (questions mode). |
review | $0.0045 | For each review returned (reviews mode). |
In shopProducts mode every shop pays two start fees ($0.06), because a shop request costs more. A shop's next page of 60 is only requested when the shop's fees and products already cover it. A shop request that was sent but got no answer is not repeated and the shop ends there; its two start fees are still charged, because the request may have been processed.
Worked examples:
-
100 products from one keyword cost $0.03 + 100 × $0.008 = $0.83.
-
100 products from two keywords, when the first keyword returns fewer than 100 and the run moves on to the second, cost 2 × $0.03 + 100 × $0.008 = $0.86. If the first keyword already returns 100 products, the second keyword is not searched and the run costs $0.83.
-
100 questions from one item cost $0.03 + 100 × $0.008 = $0.83. An item with fewer than 100 questions costs less, because only the questions returned are charged.
-
100 reviews of one item cost $0.03 + 100 × $0.0045 = $0.48. Reviews come 20 to a page, newest first; the run stops at the end of the item's reviews or when
maxResultsis reached. An item that returns no reviews at all still costs its start fee, and the next item still runs. -
100 products from one shop cost $0.03 + 100 × $0.008 = $0.83. Two shops that together fill 100 products cost $0.06 + 100 × $0.008 = $0.86.
-
100 products from one shop in
shopProductsmode cost 2 × $0.03 + 100 × $0.008 = $0.86; each further shop adds $0.06.
You never pay for more than maxResults items, and you are never charged for items that were not delivered. The run stops by itself if your spending limit is reached.
On the free Apify plan you get 2 free trial runs of this Actor with your own input, up to 10 results each, and nothing is charged; after that, runs return a stored sample dataset (a real result of the prefilled input). Use any paid Apify plan for full runs.
Use cases
- Price monitoring and competitor research: see how a product category is priced, which promotions run (
discountType,discountPrice) and who sells the most (salesCount). - Sourcing and product selection: find best-selling items per keyword, with shop quality at a glance through
descriptionRating,serviceRating,shippingRatingandsellerPositiveRate. - Market research for cross-border sellers: see what sells on Taobao and Tmall before you list or source it.
- Brand and Tmall store tracking: use
tmallOnlyandisTmallto compare official Tmall stores with regular Taobao shops. - Regional supply analysis: group products by
itemLocationto see where items in a category ship from. - AI and data projects: clean product records for catalogs, price models and recommendations.
Integrations and API
You can start runs from your own code through the Apify API, schedule them on the Apify platform (for example a daily price check), and send results to other tools with Apify integrations and webhooks. Results are stored in a dataset you can download as JSON, CSV or Excel.
Python example using the apify-client package:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("clover_folktale/taobao-scraper").call(run_input={"keywords": ["蓝牙耳机"],"sort": "sales","tmallOnly": True,"minPrice": 20,"maxPrice": 200,"maxResults": 100,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Tips and limits
-
In
shopmode there is no shop name, soshopNameis empty there;shopIdis filled. -
Reliability. The Actor retries transient errors on its own and stops cleanly instead of failing half-way. It never charges for items it did not deliver.
-
Speed. A search page holds 10 products, a questions page 10 questions and a shop page about 30 products, so large runs make many requests; expect roughly 2-5 seconds per page. Different pages of one search do not overlap.
-
Run size.
maxResultsis the total for the whole run (1 to 5000, default 20). A single keyword returns at most about 1000 products (often fewer, when the search runs out of pages), so to get more you need several keywords. With several keywords, results are collected keyword by keyword until the total is reached, and later keywords are not searched once the total is filled. -
Sales counts.
salesCountis the lower bound of the sales text:1万+becomes 10000,1000+becomes 1000. Taobao only gives rounded buyer counts in search results. -
Price filters.
minPriceandmaxPriceare in yuan and both inclusive. A narrow price range can return no products at all; widen the range if that happens. -
Nothing found. A search that finds nothing is skipped.
-
Currency. Prices are in Chinese yuan (CNY) and are what Taobao shows at the time of the run.
-
Sorting. Price low to high is not offered; use
priceHighToLow,salesorgeneral. -
Empty fields.
commentCountandtitleEn(the English title) are empty in search results.subtitleandsellerLocationare empty for many products.discountTypeisnullwhen the product has no promotion. -
Questions. Each question carries the answer Taobao shows first, not the whole thread;
answerCountsays how many answers exist. An item without questions is skipped and counts as nothing found. -
Shops. Use the seller ID (the
shopIdfield of search results). Products come newest first. A shop that Taobao does not know, or that has no products, is skipped as nothing found. -
Unreadable entries. If one entry of an ID or link list cannot be read (a typo, a stray cell, a link to the wrong kind of page), it is skipped and named in the log, and the status message says how many were skipped; the other entries still run and nothing is charged for a skipped one. Only a list with no readable entry stops the run with an input error.
-
Free plan. On the free Apify plan you get 2 free trial runs of this Actor with your own input, up to 10 results each, and nothing is charged; after that, runs return a stored sample dataset (a real result of the prefilled input). Use any paid Apify plan for full runs.
-
Privacy. Only public listing data is returned: what anyone sees on a Taobao search page, such as the shop name, its ratings and the item's ship-from location. No buyer data, no private shop data.
FAQ
Do I need a Taobao account, cookies or an API key?
No. No Taobao account, API keys, proxies or cookies are needed. You only need an Apify account to run the Actor.
Is this the official Taobao API?
No. This Actor is not affiliated with Taobao or Tmall. It is an independent tool that collects public search-result data and returns it as structured JSON, so you can use it as an alternative to building your own Taobao product search integration.
Is it legal to scrape Taobao?
The Actor only returns public listing data that anyone can see on a Taobao search page. It does not return buyer data, private shop data, phone numbers or messages. You are responsible for how you use the data and for following the laws and rules that apply to you.
How fresh is the data?
The data is collected live during each run. Prices, sales counts and stock are what Taobao shows at the time of the run.
Why are some fields empty?
Taobao search results do not include every field for every product, and a shop listing carries fewer fields than a search result. commentCount and titleEn are empty in search results, subtitle and sellerLocation are empty for many products, and discountType is null when there is no promotion.
Can I get SKUs or full product details?
Not yet. The Actor returns keyword search results, the questions and buyer reviews under items and the products of shops, with the fields listed above. The full SKU list and full product details are not included; each review does name the variant that buyer bought (sku).
How many results can I get?
You can set maxResults up to 5000 per run, but a single keyword returns at most about 1000 products, often fewer. To get more, add more keywords.
Can I schedule runs and export the data?
Yes. You can schedule runs on Apify, start them through the API, and export the dataset as JSON, CSV or Excel.
Something is missing. How do I ask for it?
Missing a field or a filter? Open an issue from the Actor page and it will be looked at.
Other tools by Silkline
Every tool below charges per result and needs no login or cookies.
E-commerce
- 1688.com 阿里巴巴 Wholesale Scraper - MOQ Prices & Suppliers
- JD.com 京东 Scraper - Shop Products & Buyer Reviews
- Douyin Shop 抖音商城 Product Scraper - Sales, Commission & Shops
- TikTok Shop Scraper - Products, Sales, Reviews & Hot Sellers
- AliExpress 速卖通 Scraper - Products, Prices & Sold Counts
- Amazon Product Scraper - Best Sellers, ASIN, Prices, Ratings
More from Silkline
- Xiaohongshu 小红书 RedNote Scraper - Notes, Comments & Replies (Chinese social media and content)
- TikTok Scraper - Video Search, Hashtags, Profiles & Sounds (Global platforms)
- Douyin Xingtu 巨量星图 KOL Scraper - Rates, CPM & Rankings (Marketing and creator data)