Pricing
from $5.00 / 1,000 product scrapeds
Shopee Scraper
Rising starScrape 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.7
(16)
Developer
Actor stats
17
Bookmarked
1.2K
Total users
213
Monthly active users
5.7 hours
Issues response
an hour ago
Last modified
Categories
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: trueand a_noticefield) 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 (buckets using k/m/b, e.g.
10k+) - β 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
| Field | Type | Description |
|---|---|---|
location | String | Single keyword (e.g. "tΓͺnis nike"), or a Shopee search / shop / category URL |
keywords | Array | Multiple keywords. Each yields up to ~150 unique items |
shopUrls | Array | Shopee shop/seller URLs |
categoryUrls | Array | Shopee category URLs (e.g. .../Tenis-cat.11013548) |
priceSlicing | Boolean | Run each keyword/category across 6 price buckets to bypass the dedup cap |
country | String | BR, SG, MY, TH, ID, MX, PH, VN. Auto-detected from URLs |
maxItems | Integer | Hard 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":"5k+","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/tenis-nike-air-max-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: an estimated sold-count bucket. Shopee does not expose the exact sold count to automated requests, so this is an approximation derived from review volume and other signals, returned as a bucket usingk(thousand),m(million),b(billion):100+,500+,1k+,10k+,100k+, β¦ When Shopee does return its own sold figure, that value is used directly. Low or unknown-volume listings return"<100"(the conservative floor); this field is never empty. It is an estimate, not Shopee's on-page "sold/terjual" figure, which can be a recent/display number rather than the historical total.originalPrice: listed price before any discount, in the same currency asprice.nullwhen the item is NOT on sale. Combined withpriceyou get the absolute saving (originalPrice - price).discountPercent: integer percent off as reported by Shopee (e.g.25for 25% off). Falls back to a computed((originalPrice - price) / originalPrice * 100)if Shopee omits the raw value.nullwhen not on sale.isOnSale: boolean.trueonly when Shopee returned a higheroriginalPricethan the currentprice. 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); otherwisenull.brand/location:nullwhen 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.
maxItems | Typical real yield | Runtime |
|---|---|---|
| 50 | 50 | ~1.5 min |
| 100 | 90β100 | ~3 min |
| 150 | 130β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 maxItems | Recommended timeoutSecs |
|---|---|
| Up to 500 | 120 (2 min) |
| 501β2,000 | 200 (~3.5 min) |
| 2,001β5,000 | 500 (~8 min) |
| 5,001β10,000 | 1000 (~17 min) |
| 10,001β25,000 | 2500 (~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?
Trusted by 900+ users. If it saved you time, please take 30 seconds to leave a review on the Apify Store - it is the single biggest way to support continued development of this actor. Leave a review
