# Taobao Tmall 淘宝 Product Scraper - Prices, SKUs, Reviews (`zen-studio/taobao-search-scraper`) Actor

Extract Taobao (淘宝) and Tmall (天猫) prices, SKUs, reviews, shop data, images, and attributes by keyword. Supports Chinese searches like 女装, 口红, 手机壳; exports JSON, CSV, and Excel.

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

## Pricing

from $3.99 / 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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Taobao 淘宝 Product Scraper - Prices, SKUs & Reviews (2026)

<blockquote style="border-left:4px solid #4C945E;background:#F0FDF4;padding:12px 16px">
<span style="font-size:16px;font-weight:700;color:#1C1917">Search Taobao (淘宝) and Tmall by keyword and extract product rows with SKUs, shop data, CNY pricing, images, stock, and optional customer reviews</span> <span style="font-size:15px;color:#57534E"> - one row per product in clean structured JSON.</span>
</blockquote>

![Taobao Search Scraper](https://iili.io/Bm1o1p4.png)

#### Copy to your AI assistant

````

zen-studio/taobao-search-scraper on Apify. Searches Taobao by keyword and returns one product row per result with itemId, title, titleOriginal, url, CNY and USD price fields, enriched SKU matrix, attributes, promotions, shop object, category IDs, gallery media, videos, related recommendation groups, product metadata, search metadata, and optional nested customer reviews. Call ApifyClient("TOKEN").actor("zen-studio/taobao-search-scraper").call(run\_input={...}), then client.dataset(run\["defaultDatasetId"]).list\_items().items. Required: keyword. Optional: maxItems, sort (relevance, sales, highest\_price), tmallOnly, enrichWithDetails, fetchReviews, maxReviewsPerItem, minPrice, maxPrice. PPE: product $5.99/1k, detail add-on $5.99/1k, review add-on $4.99/1k before Store discounts. Free tier: 10 lifetime runs, 20 products/run. Token: https://console.apify.com/account/integrations

````

<table style="width:100%">
<tr>
<td colspan="5" style="padding:10px 14px;background:#4C945E;border:none;border-radius:4px 4px 0 0">
<span style="color:#FAFAF9;font-size:14px;font-weight:700;letter-spacing:0.5px">Zen Studio China Scrapers</span>
<span style="color:#D7F4DD;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Taobao, JD.com, wholesale, and resale data</span>
</td>
</tr>
<tr>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 0 4px;border-right:none;border-top:none;background:#E8F5E9;vertical-align:top;width:20%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-PsAKYWM55HG4AHXjK-ItywU7Bp0s-taobao-search-scraper-logo.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/zen-studio/taobao-search-scraper" style="color:#4C945E;text-decoration:none;font-weight:700;font-size:13px">Taobao</a></span><br>
<span style="color:#4C945E;font-size:11px;font-weight:600">&#10148; You are here</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:20%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-ghXSMZcW3GxsCrkiR-5hnvsKv4Yt-1688-wholesale-scraper-logo.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/zen-studio/1688-wholesale-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">1688 Products &#8599;</a></span><br>
<span style="color:#78716C;font-size:11px">Wholesale data</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:20%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-uZy6tbKLKnSVtT4BN-emXnT123uR-jd-com-scraper-logo-square.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/zen-studio/jd-com-search-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">JD.com &#8599;</a></span><br>
<span style="color:#78716C;font-size:11px">京东 prices + reviews</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:20%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-5QcLc4BHaLMBUKYs3-f3CWQ60Row-goofish-search-scraper-logo.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/zen-studio/goofish-xianyu-search-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Goofish Search &#8599;</a></span><br>
<span style="color:#78716C;font-size:11px">Resale listings</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:20%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-1vbpDShUjMFGaGcta-1fcx609tQN-goofish-search-scraper-logo.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/zen-studio/goofish-xianyu-item-detail-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Goofish Detail &#8599;</a></span><br>
<span style="color:#78716C;font-size:11px">URL/ID enrich</span>
</td>
</tr>
</table>

### How to Search Taobao

Use English or Chinese product keywords. Common searches include `女装`, `口红`, `手机壳`, `机械键盘`, `连衣裙`, `淘宝商品`, and Tmall brand terms.

#### Basic - enriched products

```json
{
  "keyword": "iphone 15",
  "maxItems": 20
}
````

#### Search-only rows

```json
{
  "keyword": "机械键盘",
  "maxItems": 50,
  "enrichWithDetails": false
}
```

#### Highest-price products with reviews

```json
{
  "keyword": "女装",
  "maxItems": 10,
  "sort": "highest_price",
  "fetchReviews": true,
  "maxReviewsPerItem": 20
}
```

#### Price range filter

```json
{
  "keyword": "iphone 15",
  "maxItems": 50,
  "minPrice": 3000,
  "maxPrice": 10000,
  "sort": "sales"
}
```

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `keyword` | string | required | Taobao search keyword. Chinese and English terms work. |
| `maxItems` | integer | `100` | Maximum products to return. API values below 10 are raised to 10. Test runs are capped at 5 products; free-tier runs are capped at 20 products. |
| `sort` | string | `relevance` | `relevance`, `sales`, or `highest_price`. Low-price sorting is not exposed because the backend currently returns empty pages for that mode. |
| `tmallOnly` | boolean | `false` | Return only Tmall listings. |
| `enrichWithDetails` | boolean | `true` | Adds SKU matrix, attributes, promotions, shop metadata, media, converted prices, and product detail fields. |
| `fetchReviews` | boolean | `false` | Adds nested customer reviews. Reviews are billed separately. |
| `maxReviewsPerItem` | integer | `100` | Maximum reviews per product when `fetchReviews` is enabled. |
| `minPrice` / `maxPrice` | integer | blank | Optional price range in Chinese yuan. |

### What Data Can You Extract from Taobao Search?

One dataset row represents one Taobao product.

- **Product identity**: `itemId`, `title`, `titleOriginal`, product URL, category IDs, search rank, scrape timestamp.
- **Pricing and stock**: CNY `price`, `priceUSD`, full `priceDetails`, search-side price fields, SKU-level price objects, stock, sales signals.
- **SKU matrix**: SKU ID, quantity, sales count, configurator IDs, and per-SKU CNY/USD price details.
- **Attributes, shop, promotions, and media**: translated and original attributes, promotion prices, shop object, primary image, gallery image sizes and dimensions, description HTML, product metadata, category root path.
- **Optional reviews**: nested customer review objects with content, dates, photos, user profile, rating, append list, and seller reply fields when returned.

#### Output Example

Arrays are trimmed for readability. Optional null or empty fields are omitted here. `titleOriginal` keeps the Chinese Taobao title; `title` is the translated detail title when available.

```json
{
  "itemId": "1003783113480",
  "url": "https://item.taobao.com/item.htm?id=1003783113480",
  "title": "Apple/苹果 Apple, iphone 15, iPhone 15, iPhone 15, iPhone 15, mobile phone, 15 plus, 15promax",
  "titleOriginal": "Apple/苹果 iPhone 15 Plus 苹果15 苹果15ProMax国行 苹果15手机",
  "titleEnFromSearch": null,
  "priceCurrency": "CNY",
  "price": "3099.00",
  "priceUSD": "456.00",
  "priceDetails": {
    "originalPrice": "3099.00",
    "convertedPriceWithoutSign": "456.00",
    "convertedPriceList": {
      "internal": {"price": "3099.00", "code": "CNY"},
      "displayedMoneys": [{"price": "456.00", "code": "USD"}]
    },
    "priceWithoutDelivery": {"originalPrice": "3099.00"},
    "oneItemPriceWithoutDelivery": {"originalPrice": "3099.00"}
  },
  "priceFromSearch": "2339.00",
  "discountedPriceFromSearch": "2339.00",
  "deliveryPrice": "0.00",
  "brandName": "Apple/苹果",
  "skuCount": 30,
  "skus": [
    {
      "skuId": "ot-s-1003783113480-1",
      "quantity": 0,
      "salesCount": 0,
      "configurators": [
        {"pid": "1627207", "vid": "28323"},
        {"pid": "12304035", "vid": "25484125"}
      ],
      "price": {
        "originalPrice": "3099.00",
        "convertedPriceWithoutSign": "456.00",
        "currencyName": "USD",
        "deliveryPrice": "0.00"
      }
    }
  ],
  "attributes": [
    {
      "pid": "上市时间",
      "vid": "2023-09",
      "name": "Time to market",
      "value": "2023-09",
      "originalName": "上市时间",
      "originalValue": "2023-09",
      "isConfigurator": false
    },
    {
      "pid": "售后服务",
      "vid": "店铺保修",
      "name": "After -sales service",
      "value": "Shop warranty",
      "originalName": "售后服务",
      "originalValue": "店铺保修",
      "isConfigurator": false
    }
  ],
  "promotions": [
    {
      "id": "ot-d-promotion-1003783113480",
      "name": "Promotion",
      "price": {
        "originalPrice": "3099.00",
        "convertedPriceWithoutSign": "456.00"
      },
      "configuredItems": [
        {
          "skuId": "5993905756232",
          "price": {
            "originalPrice": "5179.00",
            "convertedPriceWithoutSign": "762.00"
          }
        }
      ]
    }
  ],
  "shop": {
    "shopIdFromSearch": "2235234680",
    "shopNameFromSearch": "乐淘数码通讯",
    "vendorName": "优信数码科技",
    "vendorDisplayName": "优信数码科技",
    "shopId": "35384276",
    "taobaoVendorId": "87764758",
    "shopUrl": "https://shop35384276.taobao.com/",
    "featuredValues": {
      "userScoreDelivery": "4.93837",
      "userScoreItem": "4.93539",
      "userScoreService": "4.95527"
    }
  },
  "mainPictureUrl": "https://img.alicdn.com/imgextra/i3/87764758/...",
  "pictures": [
    {
      "url": "https://img.alicdn.com/imgextra/i3/87764758/...",
      "small": "https://img.alicdn.com/imgextra/i3/87764758/..._100x100q90.jpg",
      "smallWidth": 100,
      "smallHeight": 100,
      "medium": "https://img.alicdn.com/imgextra/i3/87764758/..._310x310q90.jpg",
      "mediumWidth": 310,
      "mediumHeight": 310,
      "large": "https://img.alicdn.com/imgextra/i3/87764758/..._600x600q90.jpg",
      "largeWidth": 600,
      "largeHeight": 600,
      "isMain": true
    }
  ],
  "videos": [
    {
      "url": "https://cloud.video.taobao.com/play/...",
      "previewUrl": "https://img.alicdn.com/..."
    }
  ],
  "ulandItemUrl": "https://uland.taobao.com/item/edetail?id=...",
  "relatedGroups": [
    {
      "type": "Recommendations",
      "displayName": "Recommended items",
      "items": [
        {
          "itemId": "882583316506",
          "url": "https://item.taobao.com/item.htm?id=882583316506",
          "title": "Turas three-in-one power bank...",
          "titleOriginal": "图拉斯三合一随心充...",
          "priceCNY": "448.00",
          "priceUSD": "66.00"
        }
      ]
    }
  ],
  "descriptionHtml": "<!DOCTYPE html>...",
  "weightInfo": {
    "type": "Default",
    "displayName": "Approx weight",
    "weight": 0
  },
  "categoryId": "otc-101413",
  "externalCategoryId": "1512",
  "rootPath": {
    "Content": [
      {"Id": "otc-101413", "ExternalId": "1512"}
    ]
  },
  "isSellAllowed": false,
  "features": ["FakeQuantity", "Expired"],
  "featuredValues": {"TotalSales": "200"},
  "salesSignal": "1000+",
  "frontStock": 32846,
  "search": {
    "itemLoc": "广东 深圳",
    "orderPayUV": "1000+",
    "prodId": 604031738
  },
  "searchKeyword": "iphone 15",
  "searchSort": "relevance",
  "searchRank": 1,
  "scrapedAt": "2026-05-14T09:30:00Z",
  "_detailEnriched": true,
  "_reviewsFetched": true,
  "_reviewsCount": 1,
  "reviews": [
    {
      "date": "2026年05月13日 23:24",
      "content": "评价方未及时做出评价,系统默认好评!",
      "rateId": 1304852821306,
      "user": {
        "nick": "g***2",
        "vipLevel": 6,
        "anony": true
      }
    }
  ]
}
```

### Pricing

This Actor uses pay-per-event pricing. You pay for the data level you request. Apify Store discounts may lower these unit prices.

| Output | Event | Base price |
|--------|-------|------------|
| Product row | `search-result` | `$5.99 / 1,000 products` |
| Detail enrichment add-on | `detail-enrichment` | `$5.99 / 1,000 products` |
| Customer review add-on | `review` | `$4.99 / 1,000 reviews` |

The default run is enriched products without reviews: product row + detail enrichment. Turn off `enrichWithDetails` for cheaper search-only discovery. Turn on `fetchReviews` only when review content matters.

### Notes on Filters

Taobao search currently supports relevance, sales, and high-price sorting, plus Tmall-only filtering and CNY price range filtering. Low-price sorting is not exposed because live tests returned empty pages across multiple keywords. Shop ID and language inputs are not supported by this actor.

### FAQ

#### Can I search in Chinese?

Yes. Use Chinese keywords such as `女装`, `机械键盘`, or `手机壳`.

#### Can I search in English?

Yes. English brand and product keywords such as `iphone 15`, `huawei`, and `keyboard` work.

#### What is the difference between search-only and enriched output?

Search-only rows include product identity, title, URL, basic price, image, seller name, and search metadata.

Enriched rows add the SKU matrix, attributes, promotions, shop IDs, category, media arrays, pricing details, and additional product metadata.

#### Are reviews included by default?

No. Reviews are optional because they add separate per-review billing.

#### What happens if a product detail is unavailable?

The Actor returns a partial search row with `_detailEnriched: false` and `_detailError` set. You are not charged for detail enrichment on that row.

#### Does `maxItems` always return exactly that number?

The Actor returns up to `maxItems`. Actual count depends on how many matching products Taobao returns for the keyword and filters.

Values below 10 are raised to 10 at runtime, except Apify TEST-origin runs, which remain capped at 5 products.

#### What currency are prices in?

Prices are returned in Chinese yuan (CNY) as decimal strings, for example `"3099.00"`. When converted pricing is available, `priceUSD` and SKU-level converted price fields are also included.

#### How does the free tier work?

Free-tier users get 10 lifetime runs, capped at 20 products per run.

#### Why do some optional fields return `null` or empty arrays?

Taobao does not expose every field for every product. Empty top-level fields remain stable in the dataset schema, but the README example uses a populated real fixture and trims arrays only for readability.

### Support

Open an issue on the Actor page if a keyword consistently returns empty results, if a field changes type, or if a filter behaves differently than expected.

For reproducible support, include the input JSON and the run ID.

# Actor input Schema

## `keyword` (type: `string`):

Enter a Taobao search keyword.<br><br>Examples:<br>• <code>iphone 15</code><br>• <code>女装</code> clothing<br>• <code>口红</code> lipstick<br>• <code>机械键盘</code> mechanical keyboard

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

Set the maximum number of product rows to return.<br><br>API values below <code>10</code> are raised to <code>10</code>. Test runs are capped at <code>5</code> products. Free-tier runs are capped at <code>20</code> products.

## `sort` (type: `string`):

Choose how matching products are ordered.<br><br><code>综合排序</code> is the safest default because it follows Taobao-style relevance. Use <code>销量优先</code> when you specifically want best-selling products.

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

Return only Tmall listings when enabled.<br><br>Leave off for broader Taobao marketplace results.

## `minPrice` (type: `number`):

Optional minimum product price in Chinese yuan (CNY).<br><br>Leave blank for no lower price filter.

## `maxPrice` (type: `number`):

Optional maximum product price in Chinese yuan (CNY).<br><br>Leave blank for no upper price filter.

## `enrichWithDetails` (type: `boolean`):

Add rich product details: SKU matrix, attributes, promotions, shop metadata, media, converted prices, and category data.<br><br>Enabled by default because this is the main value of the Actor. Turn off for cheaper search-only rows.

## `fetchReviews` (type: `boolean`):

Add customer reviews as a nested <code>reviews</code> array on each product row.<br><br>Reviews are billed separately. Keep off unless review text is needed.

## `maxReviewsPerItem` (type: `integer`):

Set the maximum reviews to attach to each product when <b>买家评价 Customer reviews</b> is enabled.

## Actor input object example

```json
{
  "keyword": "iphone 15",
  "maxItems": 100,
  "sort": "relevance",
  "tmallOnly": false,
  "enrichWithDetails": true,
  "fetchReviews": false,
  "maxReviewsPerItem": 100
}
```

# Actor output Schema

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

Link to the dataset containing all scraped Taobao product rows.

# 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 = {
    "keyword": "iphone 15"
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/taobao-search-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 = { "keyword": "iphone 15" }

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/taobao-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keyword": "iphone 15"
}' |
apify call zen-studio/taobao-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=zen-studio/taobao-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Taobao Tmall 淘宝 Product Scraper - Prices, SKUs, Reviews",
        "description": "Extract Taobao (淘宝) and Tmall (天猫) prices, SKUs, reviews, shop data, images, and attributes by keyword. Supports Chinese searches like 女装, 口红, 手机壳; exports JSON, CSV, and Excel.",
        "version": "0.0",
        "x-build-id": "zxUtUcrZhOAp9BEqn"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/zen-studio~taobao-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-zen-studio-taobao-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/zen-studio~taobao-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-zen-studio-taobao-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/zen-studio~taobao-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-zen-studio-taobao-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "keyword"
                ],
                "properties": {
                    "keyword": {
                        "title": "关键词 Keyword",
                        "type": "string",
                        "description": "Enter a Taobao search keyword.<br><br>Examples:<br>• <code>iphone 15</code><br>• <code>女装</code> clothing<br>• <code>口红</code> lipstick<br>• <code>机械键盘</code> mechanical keyboard"
                    },
                    "maxItems": {
                        "title": "商品数量 Max products",
                        "minimum": 10,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Set the maximum number of product rows to return.<br><br>API values below <code>10</code> are raised to <code>10</code>. Test runs are capped at <code>5</code> products. Free-tier runs are capped at <code>20</code> products.",
                        "default": 100
                    },
                    "sort": {
                        "title": "排序 Sort",
                        "enum": [
                            "relevance",
                            "sales",
                            "highest_price"
                        ],
                        "type": "string",
                        "description": "Choose how matching products are ordered.<br><br><code>综合排序</code> is the safest default because it follows Taobao-style relevance. Use <code>销量优先</code> when you specifically want best-selling products.",
                        "default": "relevance"
                    },
                    "tmallOnly": {
                        "title": "只看天猫 Tmall only",
                        "type": "boolean",
                        "description": "Return only Tmall listings when enabled.<br><br>Leave off for broader Taobao marketplace results.",
                        "default": false
                    },
                    "minPrice": {
                        "title": "最低价 Min price (¥)",
                        "minimum": 0,
                        "type": "number",
                        "description": "Optional minimum product price in Chinese yuan (CNY).<br><br>Leave blank for no lower price filter."
                    },
                    "maxPrice": {
                        "title": "最高价 Max price (¥)",
                        "minimum": 0,
                        "type": "number",
                        "description": "Optional maximum product price in Chinese yuan (CNY).<br><br>Leave blank for no upper price filter."
                    },
                    "enrichWithDetails": {
                        "title": "商品详情 Detail enrichment",
                        "type": "boolean",
                        "description": "Add rich product details: SKU matrix, attributes, promotions, shop metadata, media, converted prices, and category data.<br><br>Enabled by default because this is the main value of the Actor. Turn off for cheaper search-only rows.",
                        "default": true
                    },
                    "fetchReviews": {
                        "title": "买家评价 Customer reviews",
                        "type": "boolean",
                        "description": "Add customer reviews as a nested <code>reviews</code> array on each product row.<br><br>Reviews are billed separately. Keep off unless review text is needed.",
                        "default": false
                    },
                    "maxReviewsPerItem": {
                        "title": "每商品评价数 Reviews per product",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Set the maximum reviews to attach to each product when <b>买家评价 Customer reviews</b> is enabled.",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
