Shopee Scraper avatar

Shopee Scraper

Pricing

from $5.00 / 1,000 product scrapeds

Go to Apify Store
Shopee Scraper

Shopee Scraper

Scrape Shopee product search results and product detail pages across Singapore, Malaysia, Philippines, Thailand, Vietnam, Indonesia, Brazil, Mexico, and Taiwan. Returns flat MCP-ready product records with price, sales, ratings, stock, seller, and product URLs.

Pricing

from $5.00 / 1,000 product scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

1

Bookmarked

148

Total users

36

Monthly active users

9 days ago

Last modified

Share

Shopee Scraper is an Apify Actor for product search results and product detail pages across Singapore, Malaysia, Philippines, Thailand, Vietnam, Indonesia, Brazil, Mexico, and Taiwan. It accepts keyword queries, Shopee URLs, or direct item and shop ID pairs, and returns one flat record per product with fields such as price, ratings, sold counts, stock, seller data, image URL, category breadcrumbs, and source metadata.

Each dataset record represents one Shopee product. That makes it useful when you need a single, MCP-ready row per item for pricing analysis, assortment research, seller review, or downstream AI workflows that prefer structured product records over nested pages.

Best fit and connected workflows

This Actor fits workflows that start from a Shopee marketplace view and end with normalized product records. Common routes include:

  • Keyword research into product monitoring, using searchQueries and maxSearchPages.
  • Known product URL processing into detail records, using startUrls.
  • Batch product lookup from known item_id and shop_id pairs, using shopItemIds.
  • Marketplace comparison across supported Shopee country domains by switching country.
  • LLM or agent pipelines that need compact, flat output through Apify MCP.

If your workflow begins with Shopee search intent, category browsing, or direct product references, this Actor gives you a single product-level dataset with consistent field names.

Practical scenario

A marketplace analyst starts with a list of Shopee Singapore keywords for wireless accessories. They set searchQueries to those terms, keep includeDetails on, and limit the run with maxProducts.

The returned records include title, price, rating, sold, stock, shopName, and productUrl. From that output, the analyst can compare item prices and seller signals, then open the strongest candidates in Shopee using the canonical URLs for manual review or a follow-up dashboard.

Input fields

FieldTypePurpose
providerModestringChooses the extraction backend: auto, owned, or scrapeless
countrystringSelects the Shopee marketplace domain and currency context
searchQueriesarray of stringBuilds Shopee search URLs from keywords
startUrlsarray of request sourcesUses already known Shopee product, search, category, or shop search URLs
shopItemIdsarray of objectsResolves direct { item_id, shop_id } pairs to product details
maxProductsintegerCaps returned and charged product records
maxSearchPagesintegerLimits pagination for generated keyword, category, or shop listing pages
includeDetailsbooleanIncludes detail-page fields such as description, stock, variants, and richer seller data
sortBystringOrders keyword search results by relevance, latest, or top_sales
includeRawDatabooleanAdds trimmed raw Shopee payload data for debugging and parser work
proxyConfigurationobjectUses Apify Proxy settings, with residential defaults

Focused JSON input example

{
"providerMode": "scrapeless",
"country": "SG",
"searchQueries": [
"wireless earbuds",
"mechanical keyboard"
],
"maxProducts": 100,
"maxSearchPages": 3,
"includeDetails": true,
"sortBy": "relevance",
"includeRawData": false
}

Output fields

FieldTypePurpose
productIdstring or nullShopee item identifier when available
shopIdstring or nullShopee shop identifier when available
productUrlstring or nullCanonical Shopee product URL
titlestring or nullProduct title shown by Shopee
pricenumber or nullCurrent product price
priceMinnumber or nullMinimum variant price when a range is present
priceMaxnumber or nullMaximum variant price when a range is present
priceBeforeDiscountnumber or nullOriginal price before discount when available
currencystringMarketplace currency code
discountstring or nullDiscount label returned by Shopee
ratingnumber or nullAverage product rating
ratingCountinteger or nullCount of ratings or reviews
soldinteger or nullRecent or displayed sold count
historicalSoldinteger or nullHistorical sold count when exposed
stockinteger or nullAvailable stock count when present
shopNamestring or nullSeller or shop display name
shopLocationstring or nullSeller location shown by Shopee
isOfficialShopboolean or nullpublic shop marker
isShopeeMallboolean or nullShopee Mall marker
imageUrlstring or nullMain product image URL
descriptionstring or nullProduct description when detail extraction is enabled
categoriesarray of stringCategory breadcrumbs when available
sourceTypestringDiscovery path such as search, url, api, or fallback
sourceUrlstringInput or generated Shopee URL that produced the record
scrapedAtstringISO 8601 timestamp for the record

Illustrative output record

{
"productId": "131564786",
"shopId": "22739277",
"productUrl": "https://shopee.sg/product/22739277/131564786",
"title": "Wireless Bluetooth Earbuds",
"price": 19.9,
"priceMin": 15.9,
"priceMax": 24.9,
"priceBeforeDiscount": 29.9,
"currency": "SGD",
"discount": "20%",
"rating": 4.8,
"ratingCount": 1240,
"sold": 5000,
"historicalSold": 15000,
"stock": 98,
"shopName": "Shopee Mall Store",
"shopLocation": "Singapore",
"isOfficialShop": true,
"isShopeeMall": false,
"imageUrl": "https://down-sg.img.susercontent.com/file/example",
"description": "Bluetooth 5.3 earbuds with charging case.",
"categories": [
"Mobile & Gadgets",
"Audio"
],
"sourceType": "search",
"sourceUrl": "https://shopee.sg/search?keyword=wireless%20earbuds",
"scrapedAt": "2026-06-12T08:00:00.000Z"
}

How it works

This Actor uses a Playwright-based crawler and supports three Shopee extraction backends through providerMode:

  • auto uses SCRAPELESS_API_KEY when configured, then falls back to owned browser scraping.
  • owned uses browser scraping.
  • scrapeless uses the Scrapeless provider path and is the recommended production route in the supplied contract.

It can start from generated search URLs, direct Shopee URLs, or direct item_id and shop_id pairs. The dataset is intentionally flat so each record is easy to consume in Apify datasets, SQL-style pipelines, and Apify MCP tool workflows.

Pricing

Shopee Scraper uses Pay per event plus Apify platform usage.

  • Actor start: charged per run start event.
  • Product scraped: charged for each product record successfully returned to the dataset.

For example, a run that returns one hundred product records is charged for one hundred product events, plus the start event, plus Apify platform usage. To see the live pricing tab for the current run cost details, open the Actor's Pricing tab in Apify.

Use with AI agents (MCP)

This Actor is available as an Apify Actor usable through Apify MCP. The tool is designed to fetch Shopee product records with stable field names that are easy for agents to parse and pass downstream.

Actor identity: khadinakbar/shopee-scraper

Tool description: run Shopee keyword, URL, or batch item lookup jobs and read flat product records from the dataset output. The dataset contains product-level provenance such as sourceType, sourceUrl, and scrapedAt, which helps an agent explain where each record came from.

Search Shopee Singapore for wireless earbuds, return up to 20 products, and keep the output focused on price, sold count, rating, seller, and product URL.

Output interpretation:

  • productUrl points to the canonical Shopee product page.
  • sourceUrl shows the input or generated Shopee URL behind the record.
  • sourceType tells you whether the record came from search, URL, API, or fallback discovery.
  • scrapedAt records when the item was produced.

Provenance and scope:

  • The Actor covers the Shopee country domains listed in the contract: SG, MY, PH, TH, VN, ID, BR, MX, and TW.
  • The dataset schema is product-focused and MCP-ready, with one record per product.
  • includeRawData can add trimmed raw payloads for debugging schema changes.

Pagination and cost guidance:

  • maxSearchPages applies to generated keyword, category, or shop listing pages.
  • maxProducts caps the number of product records returned and charged.
  • For agent workflows, start with a smaller cap, inspect the first records, and expand only when the source coverage looks right.

Apify API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const input = {
providerMode: 'scrapeless',
country: 'SG',
searchQueries: ['wireless earbuds'],
maxProducts: 10,
maxSearchPages: 1,
includeDetails: true,
};
const run = await client.actor('khadinakbar/shopee-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems({ clean: true });
console.log(items);

Best results and outcome guidance

Use country that matches the Shopee marketplace you want to inspect, since it controls the marketplace domain and currency context. When you already have product references, shopItemIds gives direct batch lookup. When you are starting from discovery, searchQueries and startUrls are the most direct routes.

A practical setup is:

  • providerMode: "scrapeless" for production runs when SCRAPELESS_API_KEY is configured.
  • includeDetails: true when you want seller and stock fields from detail pages.
  • includeRawData: false for compact, stable output.
  • maxProducts sized to the smallest useful set for your workflow.

Focused standalone workflow

Shopee Scraper is designed as a focused standalone workflow for the public input and structured output contract described above.

Design note

I found that categories, sourceType, sourceUrl, and scrapedAt are required output fields in the dataset contract, which is a clear sign that the Actor is meant to produce provenance-aware product records rather than only price fields.

FAQ

Can I use this Actor for Shopee search pages and product pages?

Yes. It accepts keyword searches, direct Shopee URLs, and direct batch item lookup through shopItemIds.

Does this Actor work across multiple Shopee country domains?

Yes. The contract includes SG, MY, PH, TH, VN, ID, BR, MX, and TW.

When should I use shopItemIds instead of searchQueries?

Use shopItemIds when you already know the item_id and shop_id values and want direct product detail lookup. Use searchQueries when you want Shopee to generate the product set from keywords.

What is the role of includeDetails?

It adds detail-page fields such as description, stock, variants, and richer seller data when those fields are available.

How does maxSearchPages interact with maxProducts?

maxSearchPages limits how many generated pages are visited, while maxProducts caps the returned and charged product records.

Responsible use

Use this Actor for publicly accessible Shopee product information and for workflows that respect applicable laws, Shopee terms, privacy rules, and marketplace policies. Keep your runs focused on product research, catalog monitoring, and agent consumption, and apply the results in ways that fit your organization or project's compliance requirements.