Shopee Scraper - All In One
Pricing
from $10.00 / 1,000 results
Shopee Scraper - All In One
All-in-one Shopee scraper to extract product, search, category, and shop data across multiple countries—fast, lightweight, and no browser or proxy required.
Pricing
from $10.00 / 1,000 results
Rating
3.5
(3)
Developer
Xtractoo
Maintained by CommunityActor stats
3
Bookmarked
238
Total users
113
Monthly active users
6 hours ago
Last modified
Categories
Share
Shopee Scraper
Extract product data from Shopee across 11 countries - keyword search, category browsing, product detail, and shop listings. No browser automation, no proxy required for most regions.
Why Use This Actor?
Shopee does not provide a public API. Most scraping solutions rely on full browser automation (Playwright/Puppeteer), which is slow, expensive, and fragile. This actor works without launching a browser at all, making it:
- Fast - lightweight HTTP requests instead of rendering a full browser
- Cost-efficient - lower compute unit consumption
- Stable - no dependency on browser fingerprinting or JS rendering pipelines
Supported Countries
| Code | Domain |
|---|---|
id | shopee.co.id (Indonesia) |
sg | shopee.sg (Singapore) |
my | shopee.com.my (Malaysia) |
th | shopee.co.th (Thailand) |
ph | shopee.ph (Philippines) |
vn | shopee.vn (Vietnam) |
br | shopee.com.br (Brazil) |
tw | shopee.tw (Taiwan) |
mx | shopee.com.mx (Mexico) |
co | shopee.com.co (Colombia) |
cl | shopee.cl (Chile) |
Where the request comes from matters
Shopee shows different amounts of product information depending on the country your request comes from. To get the richest data (description, brand, full specifications, all variants, image gallery), requests must originate inside the country you are scraping.
When you run this actor on Apify Cloud, it automatically uses an Apify
Residential Proxy in the selected country for id, sg, my, th, ph
— no setup needed. Local runs from a mismatched IP, and all SPA-only
countries (vn, br, tw, mx, co, cl), fall back to a lighter
data set (title, price, primary image, rating, sold count, seller info).
What you get per country × mode
| Country | keyword | category | shop | detail (Apify Cloud) | fetchDetail: true (Apify Cloud) |
|---|---|---|---|---|---|
id | ✅ | ✅ | ✅ | ✅ Full | ✅ Full |
sg | ✅ | ✅ | ✅ | ✅ Full | ✅ Full |
my | ✅ | ✅ | ✅ | ✅ Full | ✅ Full |
th | ✅ | ✅ | ✅ | ✅ Full | ✅ Full |
ph | ✅ | ✅ | ✅ | ✅ Full | ✅ Full |
vn | ✅ | ✅ | ✅ | ⚠️ Light | ⚠️ Light |
br | ✅ | ✅ | ✅ | ⚠️ Light | ⚠️ Light |
tw | ✅ | ✅ | ✅ | ⚠️ Light | ⚠️ Light |
mx | ✅ (60–70% have a price) | ✅ | ✅ | ⚠️ Light | ⚠️ Light |
co | ✅ | ❌ Not available | ✅ | ⚠️ Light | ⚠️ Light |
cl | ✅ | ❌ Not available | ✅ | ⚠️ Light | ⚠️ Light |
Legend:
- ✅ Full = title + price range + description + brand + all variants + attributes + tier variations + categories + full image gallery + seller info. Only the exact displayed
pricemay benull(Shopee hides it from the detail data);price_min/price_maxare returned for most products. - ⚠️ Light = title + price + primary image + rating + sold count + seller info. Description, brand, variants, attributes, tier variations, breadcrumb, and image gallery are not returned.
- ❌ Not available = the mode is rejected with a clear error message in the run log. Use
keywordorshopmode for these regions instead.
Use Cases
- Price monitoring - track price changes across products or categories over time
- Competitor research - analyze competitor shop listings, pricing tiers, and discount strategies
- Market research - discover bestselling products in a category or keyword segment
- Product catalog extraction - pull product titles, images, attributes, and variants from a shop or search result
- Lead generation - collect seller info (shop name, location, rating, follower count, response rate)
Input
| Field | Type | Required | Description |
|---|---|---|---|
country | select | No (default: id) | Shopee regional domain to scrape |
mode | select | Yes | Scraping mode (see below) |
keyword | string | mode=keyword | Search term, e.g. "laptop gaming" |
url | string | mode=url | Any Shopee URL - product, search, category, or shop page |
shopId | integer | mode=detail | Seller's numeric shop ID |
itemId | integer | mode=detail | Product's numeric item ID |
category | string | mode=category | Category slug, e.g. /Laptop-cat.11044364.11044440 |
shop | string | mode=shop | Shop username or numeric shop ID |
sort | select | No (default: relevancy) | Sort order for search/category results |
maxProducts | integer | No (default: 40) | Maximum products to return |
minPrice | integer | No | Minimum price filter in local currency (keyword mode only) |
maxPrice | integer | No | Maximum price filter in local currency (keyword mode only) |
fetchDetail | boolean | No (default: false) | If true, each product card in keyword/category/shop/url modes is enriched with full detail data (variants, stock, images, attributes, seller info). Slower — each product requires 2 additional HTTP requests. Recommended for ≤ 20 products. |
delay | number | No (default: 1.0) | Delay in seconds between requests |
Modes Explained
keyword - Search by keyword
Searches Shopee for a keyword and returns product cards (name, price, discount, images, IDs, location).
Note: Results are capped at ~40 products per sort variant. To get more products, increase
maxProducts- the actor will automatically cycle through additional sort orders (sales,newest,price_asc,price_desc) to surface more unique results.
url - Auto-detect from any Shopee URL
Paste any Shopee URL and the actor auto-detects whether it's a product page, search result, category, or shop listing. Country is also auto-detected from the URL domain, so you can paste a shopee.sg URL even when the country input is set to id.
detail - Product detail by Shop ID + Item ID
Fetches full detail for a single product: description, all attributes, variants (names + stock availability), seller info, breadcrumb, and pricing when available. You need the Shop ID and Item ID, which can both be found in the product URL:
https://shopee.co.id/Product-Name-i.{SHOP_ID}.{ITEM_ID}↑ ↑
category - Browse a category page
Provide a category slug (e.g. /Laptop-cat.11044364.11044440) or a full category URL. Returns up to maxProducts product cards from that category.
shop - Fetch a shop's product listing
Provide a shop username (e.g. rasyidjaya_computer) or a numeric shop ID. Returns product cards from that shop's storefront.
fetchDetail — Rich Enrichment Mode
By default, modes keyword, category, shop, and url return lightweight ProductCard data (name, price, discount, rating, image URL). This is fast and suitable for large-scale discovery.
Set fetchDetail: true to enrich each card with full ProductDetail: description, brand, all variant names, stock, full image gallery, product attributes, seller info, breadcrumb, and more.
Speed & Cost
| Mode | fetchDetail | ~Time for 40 products | Requests |
|---|---|---|---|
| keyword | false | ~40–60 sec | ~2 |
| keyword | true | ~6–10 min | ~82 |
| detail | — | ~5–10 sec | 2 |
Each enriched product requires 2 HTTP requests (SSR + Googlebot JSON-LD). With the default 1 second delay and residential proxy latency on Apify cloud, expect ~8–12 seconds per product.
Recommendation: Use
fetchDetail: falsefor discovery (large keyword/category runs), then feed interestingshopId+itemIdpairs intomode=detailruns for full data. Or use the dedicated Shopee Product Detail actor.
What fetchDetail Adds
| Field | ProductCard | ProductDetail (fetchDetail=true) |
|---|---|---|
| name / title | ✓ | ✓ |
| price, discount_pct | ✓ | ✓ |
| rating, sold_count | ✓ | ✓ |
| image_url (1 image) | ✓ | ✓ |
| description | ✗ | ✓ |
| brand, brand_id | ✗ | ✓ |
| images[] (all) | ✗ | ✓ |
| models[] (variants) | ✗ | ✓ |
| tier_variations[] | ✗ | ✓ |
| attributes[] | ✗ | ✓ |
| stock, historical_sold | ✗ | ✓ |
| price_min, price_max | ✗ | ✓ |
| availability | ✗ | ✓ |
| shop{} (seller detail) | ✗ | ✓ |
| breadcrumb[] | ✗ | ✓ |
Example — fetchDetail enabled
Input:
{"country": "id","mode": "keyword","keyword": "laptop gaming","maxProducts": 5,"fetchDetail": true}
Output (one item, enriched):
{"shop_id": 196846900,"item_id": 11089699432,"title": "Laptop Lenovo Thinkpad X1 Carbon 6th Intel Core i5","currency": "IDR","description": "Laptop bekas berkualitas...","brand": "Lenovo","price": 3570000.0,"price_min": 3200000.0,"price_max": 8370000.0,"discount_pct": null,"availability": "InStock","stock": 31,"rating_star": 4.87,"total_ratings": 55,"images": ["https://down-id.img.susercontent.com/file/..."],"models": [{ "model_id": 227787022248, "name": "i5 Gen8 16GB/256GB", "price": null, "stock": null, "has_stock": true }],"attributes": [{ "name": "Ukuran Layar", "value": "14 inci" }],"shop": {"name": "RASYIDJAYA COMPUTER","rating_star": 4.84,"item_count": 120,"follower_count": 2248}}
Sample Input & Output
Example 1 - Keyword Search
Input:
{"country": "id","mode": "keyword","keyword": "laptop gaming","sort": "sales","maxProducts": 40}
Output (one item):
{"shop_id": 12345678,"item_id": 98765432100,"name": "Laptop Gaming ASUS ROG Strix G15 Ryzen 7 16GB 512GB RTX3060","url": "https://shopee.co.id/Laptop-Gaming-ASUS-ROG-i.12345678.98765432100","image_url": "https://down-id.img.susercontent.com/file/id-11134207-xxx","price": 14999000,"original_price": 17500000,"discount_pct": 14,"rating": 4.9,"rating_count": 312,"sold_count": 1200,"location": "Jakarta Barat","is_mall": false,"currency": "IDR"}
Example 2 - Product Detail
Input:
{"country": "id","mode": "detail","shopId": 196846900,"itemId": 11089699432}
Output:
{"shop_id": 196846900,"item_id": 11089699432,"title": "Laptop Lenovo Thinkpad X1 Carbon 6th Intel Core i5 Gen8 Ram 16gb Ssd 256gb Bergaransi","currency": "IDR","brand": "Lenovo","condition": 4,"price": 3570000.0,"price_min": 3200000.0,"price_max": 8370000.0,"availability": "InStock","rating_star": 4.87,"total_ratings": 55,"stock": 31,"is_hide_stock": false,"images": ["https://down-id.img.susercontent.com/file/id-11134207-7ra0n-xxx"],"attributes": [{ "name": "Ukuran Layar", "value": "14 inci" },{ "name": "Sistem Operasi", "value": "Windows" }],"models": [{"model_id": 227787022248,"name": "Carbon 6th i5 Gen8,RAM 16GB/256GB SSD","price": null,"stock": null,"has_stock": true}],"tier_variations": [],"breadcrumb": [{ "position": 1, "name": "Shopee", "url": "https://shopee.co.id" },{ "position": 2, "name": "Komputer & Aksesoris" },{ "position": 3, "name": "Laptop" }],"shop": {"shopid": 196846900,"name": "RASYIDJAYA COMPUTER","username": "rasyidjaya_computer","location": "KOTA BANDUNG","rating_star": 4.84,"item_count": 120,"follower_count": 2248,"response_rate": 98}}
Example 3 - URL Auto-detect
Input:
{"mode": "url","url": "https://shopee.co.id/search?keyword=mouse+wireless","maxProducts": 20}
Returns the same format as keyword search. Country is auto-detected from the URL.
Known Limitations
-
Per-variant prices and stock are hidden by Shopee. For products with multiple variants (size, color, spec), each variant entry will have
price: nullandstock: null. You receive an overall price range (price_min/price_max) for most products, plus a single aggregatestockvalue. -
The exact displayed
priceis hidden in detail mode. Shopee removes it from the data served to crawlers. You usually still receiveprice_minandprice_max. If you need the exact price, scrape the product throughkeyword/category/shopmode first — the product card always carries a price. -
"Sold count" is missing for most products. Shopee hides this number. The actor recovers it on a best-effort basis from visible page text, succeeding for roughly 30–50% of products. Many products will return
nullforsold_count/sold. -
Keyword search returns around 40 products per page. The actor rotates through different sort orders (sales, newest, price low, price high) to surface more unique items, but the total can fall short of
maxProductsfor narrow queries. -
Category pages have only one page of results in
categorymode. Deeper navigation is not available through public access. -
categorymode is not available for Colombia (co) and Chile (cl). These regions do not expose category pages publicly. Usekeywordorshopmode for those countries. -
Detail richness depends on where the request comes from. Full product information (description, brand, all variants, attributes, image gallery) is only returned when the request originates inside the target country. On Apify Cloud this is handled automatically for
id/sg/my/th/phvia residential proxy. From outside, or forvn/br/tw/mx/co/cl, you receive a lighter data set with title, price, primary image, rating, sold count, and seller info only. -
Flash sale and voucher prices are not available. These require an authenticated browser session and cannot be obtained through public access.