# Taobao 淘宝 & Tmall 天猫 Product Scraper - Real Price, SKUs (`om_kh/taobao-tmall-product-scraper`) Actor

Taobao and Tmall product detail with verified post-coupon price, exact SKU variants, stock and seller — every price carries a price_verified flag and its source URL.

- **URL**: https://apify.com/om_kh/taobao-tmall-product-scraper.md
- **Developed by:** [Khandji Omar](https://apify.com/om_kh) (community)
- **Categories:** E-commerce, MCP servers
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.75 / 1,000 product details

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Taobao 淘宝 & Tmall 天猫 Product Scraper — The Real Price, Verified

> **You paste a Taobao/Tmall product URL or item ID. You get the real,**
> **post-coupon price** — or an honest `price_verified: false`, never the
> list price passed off as final.

### Free tier — 3 results free on every run

The free results waive this Actor's own fee; the source Actor (zen-studio/taobao-detail-scraper) still bills its own price for every row it returns.

**The first 3 results of every run are free**, on every run you ever make — not a one-off trial. One guard: the free allowance never covers more than half of a run, so the offer stays sustainable.

### The gap this closes

A well-known competitor in this niche openly admits its coupon price comes
back empty with `price_verified: false` on plenty of items. That's not a
reason to hide the same limitation — it's a reason to never paper over it.
This Actor passes that same honesty straight through: when the real price
after coupon cannot be confirmed, `coupon_price` stays `null` and
`price_verified` stays `false`, with a `price_verification_reason`. The list
price is never re-labeled as the verified one.

### 5 advantages

1. **One bad URL never kills your batch.**
2. **Never billed on a failed lookup.**
3. **Exact SKU variants** — price, stock, and attributes per SKU, not just
   a single blended price.
4. **Honest price verification, always disclosed** — never guessed.
5. **Hard cost cap you control.** Set `maxTotalChargeUsd`.

### Output

A real row from this Actor's latest run on Apify (2026-10-23; long texts are cut and people's names hidden here, your dataset has them in full):

```json
{
  "status": "ok",
  "item_id": "1022020209623",
  "product_url": "https://item.taobao.com/item.htm?id=1022020209623",
  "title": "影视飓风Luna Case光层手机保护壳Pan's iPhone17Pro Max苹果17防摔壳",
  "list_price": "111.97",
  "coupon_price": "70.88",
  "price_verified": true,
  "currency": "CNY",
  "variants": [
    {
      "sku_id": "6149580248924",
      "attrs": "228680323:44406893537:适用手机型号:iPhone 18 Pro;1627207:42382854961:颜色分类:清透几何",
      "price": "111.97",
      "stock": 200
    },
    {
      "sku_id": "6149580248929",
      "attrs": "228680323:44406893537:适用手机型号:iPhone 18 Pro;1627207:44732969302:颜色分类:立体蓝图-白透",
      "price": "111.97",
      "stock": 200
    }
  ],
  "seller": {
    "name": "(hidden here)",
    "url": "https://shop446768788.taobao.com/"
  },
  "shop_url": "https://shop446768788.taobao.com/",
  "stock": 1200
}
```

### Pricing

- **Source Actor charge:** this Actor runs [zen-studio/taobao-detail-scraper](https://apify.com/zen-studio/taobao-detail-scraper) inside your run, and Apify bills that run to your account at zen-studio/taobao-detail-scraper's own price (about $9.99 per 1,000 results, read on 2026-10-23), on top of this Actor's price. Each call to it is capped at $0.50.
  Pay per event, base FREE-tier prices: **$0.005** per product delivered (since 2026-10-26, was $0.023), **$0.002** per SKU variant, **$0.001** per verified coupon price.
  Paid Store plans pay less on every event — the largest plans reach $0.00055 on the cheapest event; the Pricing tab on this Actor's Store page is
  always the authority. **No event is ever charged on an item that returns an `error`** —
  a batch of 200 with one bad input bills 199.

### Use it from an AI agent (MCP and x402)

Connect Claude Desktop, Cursor, VS Code or any MCP client to Apify's MCP server
at `https://mcp.apify.com` and add this Actor, `om_kh/taobao-tmall-product-scraper`, as a tool — the
agent passes the same JSON as the run input and gets the dataset back.

AI agents that pay with **x402** can run it too, without an Apify account: the
Actor charges only per result delivered, so an agent pays exactly for what it gets.

### Related Actors

- [1688 Image Search - Find Suppliers by Photo, Price, MOQ](https://apify.com/om_kh/1688-reverse-image-product-finder) — find the product first from a photo, then verify it here
- [TikTok Shop Creator Finder](https://apify.com/om_kh/tiktok-shop-creator-finder) — find creators who could promote these products

### Support

Found a bug or have a feature request? Use the **Issues** tab on this
Actor's Apify Store page, or message the author (`om_kh`) directly.

### Example input

```json
{
  "productUrls": [
    "https://item.taobao.com/item.htm?id=1022020209623"
  ]
}
```

### Compared with zen-studio/taobao-detail-scraper

Read on the Store on 2026-10-26 (zen-studio/taobao-detail-scraper). Where it does better, this section says so.

- **Same source data:** this Actor runs zen-studio/taobao-detail-scraper for you, so every row carries its fields.
- **This Actor's fee is free on the first results of every run**, and a hard cost cap (`maxTotalChargeUsd`) limits it.
- **Price:** you pay zen-studio/taobao-detail-scraper's own price ($9.99 per 1,000) plus this Actor's $5, so $14.99 per 1,000 in total (was $32.99 before 2026-10-26). pizani/taobao-product-scraper (2,703 users) charges $4.99 per 1,000 for its own rows, without the verified post-coupon price. If you only need the raw rows once, zen-studio/taobao-detail-scraper alone is cheaper; this Actor is for the only-new mode on schedules and the cost cap.

### How to use it in 3 steps

1. Click **Try for free**; the form opens with a ready example in **Product URLs**.
2. Optional: change the other fields; every one has a description and a sensible default.
3. Click **Start** and download the results as JSON, CSV or Excel, or read them from the API.

### Use cases

- **Sourcing from China:** the real post-coupon price, SKU variants and seller before you order or quote a client.
- **Dropshipping and resale:** check the margin on the price the buyer will really pay.
- **Price tracking** on Taobao and Tmall listings, only the changes delivered on schedules.
- **Agents and buying services:** quote customers from verified prices, not list prices.

### FAQ

**Which inputs work?** A Taobao or Tmall product URL, or its numeric item ID.

**What is the "real price"?** The price after the coupons the page shows; when it cannot be confirmed, `price_verified` is `false` with a reason, never the list price passed off as final.

**What does a product cost in total?** This Actor's fee plus the source Actor's own price, both shown on the Pricing tab; the first 3 products of every run waive this Actor's fee.

**Do I need a Taobao account?** No.

**Can I cap the cost?** Yes, set `maxTotalChargeUsd`.

### Your feedback

Did this Actor save you time? A short review on the **Reviews** tab helps other people find it, and every review is read. Something missing or broken? Open an issue on the **Issues** tab: it is answered and fixed fast.

# Actor input Schema

## `productUrls` (type: `array`):

Taobao or Tmall product URLs to verify.

## `itemIds` (type: `array`):

Numeric Taobao/Tmall item IDs, if you have them instead of URLs.

## `includeVariants` (type: `boolean`):

Include per-SKU price, stock, and attributes.

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

Include a review count summary where available.

## `resolveCouponPrice` (type: `boolean`):

Attempt to resolve the real post-coupon price. When it cannot be confirmed, coupon_price is null and price_verified is false — never a guessed number.

## `monitorEnabled` (type: `boolean`):

On later runs with the same Monitor ID, deliver only products not seen before.

## `monitorId` (type: `string`):

Groups runs into one monitored target. Leave blank for a one-off run.

## `maxTotalChargeUsd` (type: `number`):

Hard ceiling on what this run can bill you.

## Actor input object example

```json
{
  "productUrls": [
    "https://item.taobao.com/item.htm?id=1022020209623"
  ],
  "includeVariants": true,
  "includeReviews": false,
  "resolveCouponPrice": true,
  "monitorEnabled": false
}
```

# Actor output Schema

## `report` (type: `string`):

A visual summary of delivery, charges, and source issues.

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

Products in a sortable table. No JSON knowledge required.

## `csv` (type: `string`):

Results ready for spreadsheets, CRMs, and analytics tools.

## `excel` (type: `string`):

Results as an Excel workbook for non-technical teams.

## `runSummary` (type: `string`):

Machine-readable delivery, billing, and source diagnostics.

# 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 = {
    "productUrls": [
        "https://item.taobao.com/item.htm?id=1022020209623"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("om_kh/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 = { "productUrls": ["https://item.taobao.com/item.htm?id=1022020209623"] }

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

```

## MCP server setup

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