# Shopee Product Detail Scraper (`om_kh/shopee-product-detail-scraper`) Actor

Shopee product detail with the exact variant price included — not charged as an extra. SKU, stock, seller and a price_verified flag with the source URL behind every value.

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

## Pricing

from $2.20 / 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

## Shopee Product Detail Scraper — Exact Price Included

> **You paste a Shopee product URL. You get title, exact price, SKU**
> **variants, stock and seller** — the exact price included in the base
> price, not upsold as an extra.

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

The free results waive this Actor's own fee; the source Actor (zen-studio/shopee-product-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.

### ✅ Live-verified 2026-10-12

Checked with a real paid call on a shopee.sg product: title, brand, exact
price, price before discount, discount, currency, total stock, rating, and
every variant with its **SKU id**, name, price and stock, plus the seller's
name, rating and shop link. A delisted product is returned as `NOT_FOUND`
and never billed. A bare item id is not enough: paste the full product link
(it contains `-i.<shop>.<item>`).

**Still pending:** one product is a field check, not a reliability measure.
Do not publish before a larger run is measured and its failure rate recorded.

### The angle

The best-known competitor here charges 4x more for the "exact price" than
for plain detail — an admission that resolving the real price is the hard
part. This Actor includes it in the base price.

### 5 advantages

1. **One bad URL never kills your batch.**
2. **Never billed on a failed lookup.**
3. **Exact price included**, not a paid extra.
4. **Honest price verification** — `price_verified: false` with a reason
   when the real price cannot be confirmed, never a guess.
5. **Hard cost cap you control.** Set `maxTotalChargeUsd`.

### Pricing

- **Source Actor charge:** this Actor runs [zen-studio/shopee-product-detail-scraper](https://apify.com/zen-studio/shopee-product-detail-scraper) inside your run, and Apify bills that run to your account at zen-studio/shopee-product-detail-scraper's own price (about $7.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.05.
  Pay per event, base FREE-tier prices: **$0.004** per product delivered (since 2026-10-26, was $0.008), **$0.002** per SKU variant.
  Paid Store plans pay less on every event — the largest plans reach $0.0011 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/shopee-product-detail-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 Wholesale Supplier Scraper](https://apify.com/om_kh/1688-wholesale-supplier-scraper) — supplier verification for sourcing, not just resale

### 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.

### Input

| Field | What to put | Example |
|---|---|---|
| `productUrls` | Shopee product links (any country site) | `https://shopee.sg/...-i.12496837.29695565289` |
| `itemIds` | Item IDs, if you have them instead of links | `29695565289` |
| `countries` | Shopee country codes to match against a link | `sg`, `my`, `th`, `ph`, `vn`, `id`, `tw` |
| `includeVariants` | Price, stock and attributes of each SKU | `true` |
| `includeReviews` | Review count summary when available | `true` |
| `monitorEnabled` / `monitorId` | On later runs, deliver only products not seen before | `true` / `my-watchlist` |
| `maxTotalChargeUsd` | Hard ceiling on what one run can cost | `1` |

```json
{
  "productUrls": ["https://shopee.sg/-SG-STOCK-Logitech-M331-SILENT-PLUS-Wireless-Mouse-2.4GHz-with-USB-Receiver-Optical-Tracking-1-YEAR-LOCAL-WARRANTY-i.12496837.29695565289"],
  "includeVariants": true
}
```

### Compared with gio21/shopee-scraper

Read on the Store on 2026-10-26 (gio21/shopee-scraper). Where it does better, this section says so.

- **Data source:** this Actor runs zen-studio/shopee-product-detail-scraper for you, then cleans and checks every row.
- **This Actor's fee is free on the first results of every run**, and a hard cost cap (`maxTotalChargeUsd`) limits it.
- **Price:** about $11.99 per 1,000 in total here ($4 for this Actor + $7.99 for zen-studio/shopee-product-detail-scraper, which also charges $0.008 per run start), $30 at xtracto/shopee-product-detail (334 users), $8.5 at gio21/shopee-scraper (a search scraper).

### How to use it in 3 steps

1. Click **Try for free**; the form opens with a ready example in **the first field**.
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.

### Output example

One real row from a run on Apify:

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

```json
{
  "status": "ok",
  "item_id": "29695565289",
  "shop_id": "12496837",
  "product_url": "https://shopee.sg/product/12496837/29695565289",
  "title": "[SG STOCK] Logitech M331 SILENT PLUS Wireless Mouse, 2.4GHz with USB Receiver, Optical Tracking - 1 YEAR LOCAL WARRANTY",
  "brand": "Logitech",
  "list_price": 34,
  "exact_price": 26.6,
  "price_verified": true,
  "discount_percent": 22,
  "currency": "SGD",
  "variants": [
    {
      "sku_id": "411365519060",
      "attrs": "Red",
      "price": 26.6,
      "stock": 35
    },
    {
      "sku_id": "411365519061",
      "attrs": "Blue",
      "price": 26.6,
      "stock": 35
    }
  ],
  "stock_total": 105,
  "rating": 5,
  "seller": {
    "name": "(hidden here)",
    "rating": 4.890721,
    "url": "https://shopee.sg/smartbazaar"
  },
  "review_count": 3
}
```

### Use cases

- **Competitor price watch** on Shopee (Singapore, Malaysia, Thailand, Indonesia, Philippines, Vietnam, Taiwan, Brazil...).
- **Sourcing:** compare SKU variants, stock and seller before buying or listing.
- **Repricing feeds** for a shop: clean rows by API, n8n, Make or Google Sheets.
- **Market research** on a product family across sellers.

### FAQ

**Which URLs work?** Public Shopee product URLs (shopee.sg/...-i.<shopid>.<itemid> and the other Shopee country sites).

**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.

**Is the price exact?** Yes: the price shown on the product page, with SKU-level prices when the product has variants.

**Do I need a Shopee login?** 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`):

Shopee product URLs to fetch.

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

Shopee item IDs, if you have them instead of URLs.

## `countries` (type: `array`):

Shopee marketplace country codes to match against a URL, e.g. sg, my, th, ph, vn, id, tw.

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

Include per-SKU price, stock, and attributes.

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

Include a review count summary where available.

## `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://shopee.sg/-SG-STOCK-Logitech-M331-SILENT-PLUS-Wireless-Mouse-2.4GHz-with-USB-Receiver-Optical-Tracking-1-YEAR-LOCAL-WARRANTY-i.12496837.29695565289"
  ],
  "includeVariants": true,
  "includeReviews": false,
  "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://shopee.sg/-SG-STOCK-Logitech-M331-SILENT-PLUS-Wireless-Mouse-2.4GHz-with-USB-Receiver-Optical-Tracking-1-YEAR-LOCAL-WARRANTY-i.12496837.29695565289"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("om_kh/shopee-product-detail-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://shopee.sg/-SG-STOCK-Logitech-M331-SILENT-PLUS-Wireless-Mouse-2.4GHz-with-USB-Receiver-Optical-Tracking-1-YEAR-LOCAL-WARRANTY-i.12496837.29695565289"] }

# Run the Actor and wait for it to finish
run = client.actor("om_kh/shopee-product-detail-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://shopee.sg/-SG-STOCK-Logitech-M331-SILENT-PLUS-Wireless-Mouse-2.4GHz-with-USB-Receiver-Optical-Tracking-1-YEAR-LOCAL-WARRANTY-i.12496837.29695565289"
  ]
}' |
apify call om_kh/shopee-product-detail-scraper --silent --output-dataset

```

## MCP server setup

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