Shopee Scraper avatar

Shopee Scraper

Pricing

from $5.00 / 1,000 product scrapeds

Go to Apify Store
Shopee Scraper

Shopee Scraper

Scrape Shopee product listings by keyword, category, or URL across Brazil, Singapore, Malaysia, Vietnam, Thailand, and Philippines. Returns price, discount, seller, ratings, stock, shipping. Ideal for price monitoring, seller intelligence, and market research. $0.005/product.

Pricing

from $5.00 / 1,000 product scrapeds

Rating

4.5

(13)

Developer

Gio

Gio

Maintained by Community

Actor stats

17

Bookmarked

849

Total users

165

Monthly active users

4.1 hours

Issues response

6 hours ago

Last modified

Share

Shopee Scraper — Products, Prices & Sellers

Scrape Shopee products by keyword, category or shop. Extracts name, price, sold-count tier, rating, reviews, seller info and images. Supports Brazil, Indonesia, Thailand, Malaysia, Singapore, Mexico, Philippines and Vietnam.

No login, no cookies, no setup — works out of the box on a paid Apify plan.

⚠️ Free vs. paid Apify plans

This actor relies on a premium unblocking backend that the actor author pays for. Free Apify accounts cannot pull live Shopee data.

  • Free plan: the actor returns a small, clearly-labelled MOCK sample (every record has _mock: true and a _notice field) so you can inspect the exact output shape before committing.
  • Paid plan: real, live Shopee data. The Starter plan ($49/mo) includes $49 in platform credits — enough for roughly 10,000 real products.

Upgrade at https://apify.com/pricing and re-run to switch from mock to live data. No input change needed — the actor detects your plan automatically.

Features

  • 🔍 Search by keyword (Portuguese, English or native language)
  • 🗂️ Category URLs and multi-keyword batches
  • 💰 Price, priceMax, currency
  • 🏷️ Discount detection: originalPrice, discountPercent, isOnSale
  • 📦 Historical sold-count tier (Shopee-native buckets, e.g. 10mil+)
  • ⭐ Rating + review count + favorites
  • 🏪 Seller name, location, brand
  • 🖼️ Up to 5 product images
  • 🌍 Multi-country: BR, SG, MY, TH, ID, MX, PH, VN
  • ♻️ Deduplicated by item ID across 4 sort strategies

Input

FieldTypeDescription
locationStringSingle keyword (e.g. "tênis nike"), or a Shopee search / shop / category URL
keywordsArrayMultiple keywords. Each yields up to ~150 unique items
shopUrlsArrayShopee shop/seller URLs
categoryUrlsArrayShopee category URLs (e.g. .../Tenis-cat.11013548)
priceSlicingBooleanRun each keyword/category across 6 price buckets to bypass the dedup cap
countryStringBR, SG, MY, TH, ID, MX, PH, VN. Auto-detected from URLs
maxItemsIntegerHard cap on total items. Default 100, max 10,000

Output

One record per product (real data on paid plans; mock sample on free plans):

{
"itemId": 1234567890,
"shopId": 987654321,
"name": "Tênis Nike Air Max",
"price": 299.90,
"priceMax": null,
"currency": "BRL",
"originalPrice": 399.90,
"discountPercent": 25,
"isOnSale": true,
"historicalSoldEstimated": "5mil+",
"favorites": 1820,
"reviewCount": 312,
"rating": 4.85,
"shopName": "Nike Official Store",
"brand": "Nike",
"location": "São Paulo",
"images": ["https://cf.shopee.com.br/file/..."],
"url": "https://shopee.com.br/-i.987654321.1234567890"
}

On a free plan, every record additionally carries:

{
"_mock": true,
"_notice": "THIS IS MOCK / SAMPLE DATA — not real Shopee products. ... Upgrade at https://apify.com/pricing ..."
}

Field notes

  • historicalSoldEstimated: Shopee redacts exact sold counts for datacenter IPs. This is the Shopee-native tier (100+, 5mil+, 10mil+, …), taken directly from the API when present, or estimated from review count otherwise. Low or unknown-volume listings return "<100" (the conservative floor, inverse of Shopee's 100+/500+/1mil+ vocabulary); this field is never empty.
  • originalPrice: listed price before any discount, in the same currency as price. null when the item is NOT on sale. Combined with price you get the absolute saving (originalPrice - price).
  • discountPercent: integer percent off as reported by Shopee (e.g. 25 for 25% off). Falls back to a computed ((originalPrice - price) / originalPrice * 100) if Shopee omits the raw value. null when not on sale.
  • isOnSale: boolean. true only when Shopee returned a higher originalPrice than the current price. Use this to filter discounted items: isOnSale === true.
  • priceMax: only set when the listing has a price range across variants (NOT a pre-discount price); otherwise null.
  • brand / location: null when Shopee doesn't expose them for that listing.

How many results per keyword?

Shopee's public search API caps unique results at ~50 per sortBy. The actor rotates relevancy → sales → ctime → pop and deduplicates by item ID.

maxItemsTypical real yieldRuntime
5050~1.5 min
10090–100~3 min
150130–150~4.5 min
200+~150–190 ceiling~6 min

For broad coverage, run several specific keywords or use categoryUrls / priceSlicing.

⏱️ Timeout configuration

Set timeoutSecs (in Apify run options) based on your maxItems to avoid runs being killed by Apify before items are collected:

Your maxItemsRecommended timeoutSecs
Up to 500120 (2 min)
501–2,000200 (~3.5 min)
2,001–5,000500 (~8 min)
5,001–10,0001000 (~17 min)
10,001–25,0002500 (~42 min)
25,001+5000+ (~85 min)

Conservative pace: Shopee API delivers between 10 and 50 items/second depending on anti-bot conditions. We use 10 items/s as the safe lower bound for sizing recommendations.

If your config doesn't match this guidance, the actor still runs but pushes a _warning: config_undersized record to the dataset explaining the mismatch and suggesting concrete values. When the actor detects Apify is about to kill it, it skips anti-fraud retries and serves cached data when possible, so you usually still get some results.

Notes

  • Proxy/unblocking is handled automatically — no configuration needed.
  • Free-plan runs never touch the paid backend, so they are instant and cost nothing.

⭐ Like this actor?

If it saved you time, please leave a review on the Apify Store — it helps a lot! Leave a review