Shopee Scraper: 8 Countries, 900+ Products per Search
Pricing
from $2.10 / 1,000 products
Shopee Scraper: 8 Countries, 900+ Products per Search
Over 900 products per keyword or category on 8 Shopee countries: price, discount, rating, badges. $3 per 1,000 products. Vietnam, Singapore, Philippines, Indonesia, Malaysia, Thailand, Taiwan, Brazil.
Pricing
from $2.10 / 1,000 products
Rating
0.0
(0)
Developer
Luzi
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
2
Monthly active users
4 days ago
Last modified
Categories
Security
Limited permissionsShare
Get over 900 Shopee products from a single keyword or category link, on Shopee Vietnam, Singapore, the Philippines, Indonesia, Malaysia, Thailand, Taiwan or Brazil: name, price, price before discount, discount, star rating, the shop's badges (Mall, Preferred), where the seller ships from, whether a voucher or a video is offered, the image and the product link. One row per product. No Shopee account, login or cookies needed.
Tested on every site: one keyword and one category link, capped at 1,000 each, saved 2,000 products in 2–3 minutes on each of the eight.
What does this Actor do?
You give it keywords and the country to search them in, or links to Shopee category pages or searches on any of the eight sites. For each one it reads Shopee's listing and saves every product it finds, once, until it reaches your limit or the listing gives no more. A category link covers the category's subcategories too. You can also give single products, by their link or their shop and item ids: one row each.
Each product comes with:
- its name, link and main image
- the price now, the price before discount and the discount, in the site's currency, and the site's country code
- its star rating and the place it ships from
- the shop's badges as the site names them (Mall, Preferred, Yêu thích, Star, Oficial, …), and the promotion labels the listing shows when it has any (bundle deals, gifts, new arrivals)
- the same badges and labels as yes/no columns, ready to filter on: Mall, Preferred, bundle deal, wholesale price, add-on deal, gift, new-buyer and VIP prices and more, plus whether the product is on sale and whether it ships from abroad
- whether the listing shows a voucher, whether the product has a video, and which variant the listing showed
- the shop's id and a link to the shop
- the keyword or category it was found under, with the category's place in Shopee's menu
Why use it?
- Research a market. See what sells under a keyword or in a category, at what prices and discounts.
- Watch competitors' prices. Run it daily on your keywords and compare.
- Find sellers. Every row carries the shop id and link, the shop's badges and the province it ships from. Keep only Mall shops, or only sellers abroad, with one filter.
- Use the data anywhere. Download as JSON, CSV or Excel, or send it to your own tools through Apify's API and integrations.
How to use it
- Type one or more Keywords and pick the Country to search them in, or paste Category, search or product links from any of the eight sites, or type Product ids, or mix them.
- Optionally, set Max products per keyword or link.
- Click Start. When the run ends, open the Output tab to view the products or download them.
Run it with no input to see a sample: up to 50 Vietnamese products for "tai nghe bluetooth", charged as usual.
Links that work
| Link | Looks like |
|---|---|
| A category page | https://shopee.vn/Thời-Trang-Nam-cat.11035567 |
| A subcategory | https://shopee.sg/Tops-cat.11012819.11027727 |
| A search | https://shopee.co.id/search?keyword=kaos |
| A product | https://shopee.vn/Tai-nghe-S20-i.38518277.19881311830 or https://shopee.vn/product/38518277/19881311830 |
The eight sites: shopee.vn, shopee.sg, shopee.ph, shopee.co.id,
shopee.com.my, shopee.co.th, shopee.tw and shopee.com.br. A link is
always read on its own site, whatever Country says. A /list/… link is
read as a keyword search for its words; to read a whole category with its
subcategories, use the category's -cat. link. A product link gives one
row: that product, read from its own page. Product links are read on six
sites; shopee.tw and shopee.co.th product links are refused (search for
the product there instead). Other Shopee pages (a shop, the flash sale) and
other sites are not supported, and a link to them stops the run before
anything is read, naming the link.
Input
| Field | What it does | Default |
|---|---|---|
Keywords (keywords) | Words to search for, one search each | — |
Country (country) | The site the keywords are searched on: vn, sg, ph, id, my, th, tw or br | vn |
Category, search or product links (startUrls) | Category pages or searches on any of the eight sites; products on six of them (not shopee.tw or shopee.co.th) | — |
Product ids (productIds) | Products as shop id/item id, e.g. 38518277/19881311830, read on the Country site (not tw or th) | — |
Max products per keyword or link (maxProductsPerSearch) | Stop each keyword or link after this many products, 1 to 10,000 | 200 |
Include product details (includeProductDetails) | Also read each product's own page: description, brand, gallery, category path, rating count and the shop's name and rating | off |
Include shop details (includeShopDetails) | Also read each product's shop page: its follower count, name, rating, handle and logo | off |
Give at least one keyword, link or product id. Example input:
{"keywords": ["tai nghe bluetooth"],"country": "vn","startUrls": [{ "url": "https://shopee.co.id/Elektronik-cat.11044258" }],"maxProductsPerSearch": 200}
Turn on includeProductDetails to add each product's own page to its row
(see the fields marked with product details on below). It costs nothing
extra per product, but each product takes one more page to read, so a run
takes longer. includeShopDetails works the same way for the shop's page
(the fields marked with shop details on), on keywords, links and product
ids alike.
A row from a product link or a product id carries the product page's
facts: name, price, currency, rating, image and link, plus every field
marked with product details on. The fields only a search listing shows
(price before discount, discount, badges, promotion labels, where it ships
from, voucher and video flags, the keyword or category) are empty on it. A
product whose page shows no product (1 of 6 tested on shopee.vn and
shopee.ph) gives no row and is not charged.
Output
One row per product. An example, with made-up values:
{"item_id": "52157713787","shop_id": "1541796848","shop_url": "https://shopee.vn/shop/1541796848","name": "Wireless Bluetooth earbuds, touch control","price": 135000,"original_price": 200000,"discount_percent": 33,"is_on_sale": true,"currency": "VND","country": "VN","rating": 4.7,"location": "Thành phố Hà Nội","is_overseas_seller": false,"has_voucher": true,"labels": ["Mua 3 & giảm 8%"],"has_bundle_deal": true,"has_wholesale": false,"has_add_on_deal": false,"has_gift_with_purchase": false,"has_new_user_price": false,"has_vip_price": false,"is_lowest_price": false,"is_new_arrival": false,"is_trending_shop": false,"badges": ["Mall"],"is_mall": true,"is_preferred": false,"is_preferred_plus": false,"is_shopee_handled": false,"badge_image_urls": ["https://down-vn.img.susercontent.com/file/…"],"has_video": true,"shown_variant_id": "395686498650","v_item_id": null,"v_model_id": null,"v_shop_id": null,"image_url": "https://down-vn.img.susercontent.com/file/…","overlay_image_url": "https://down-vn.img.susercontent.com/file/…","url": "https://shopee.vn/Wireless-Bluetooth-earbuds-i.1541796848.52157713787","keyword": null,"category_id": "11035592","category_name": "Áo","category_path": ["Thời Trang Nam", "Áo"],"category_path_ids": ["11035567", "11035592"],"category_image_url": "https://down-vn.img.susercontent.com/file/…"}
| Field | What it holds |
|---|---|
item_id | Shopee's id for the product |
shop_id | Shopee's id for the shop |
shop_url | The shop's page on Shopee |
name | The product's name |
price | The price shown, in the site's currency, as a number |
original_price | The price before discount. Empty when the product has no discount, and on sites that show only the discount (Singapore, the Philippines, Taiwan) |
discount_percent | The discount, in percent. Empty when the product has no discount |
is_on_sale | true when the listing shows a discount or a price before discount |
currency | The site's currency: VND, SGD, PHP, IDR, MYR, THB, TWD or BRL |
country | The site: VN, SG, PH, ID, MY, TH, TW or BR |
rating | Average stars, 0 to 5. Empty for a product with no ratings yet |
location | The place the product ships from, as the site writes it (a province, a city, or a country for a seller abroad) |
is_overseas_seller | true when the product ships from abroad (Nước ngoài on shopee.vn, Internacional on shopee.com.br, a country's name elsewhere). Empty when the listing names no place or a place we cannot place, and on shopee.co.id |
has_voucher | true when the listing shows a voucher for the product |
labels | The promotion labels the listing shows (a bundle deal, a gift, …), in the site's language, on about half the products |
has_bundle_deal | true when a label offers a bundle deal (Mua 2 & giảm 5%, Any 2 enjoy 5% off: buy 2, save 5%); labels holds the quantity and discount |
has_wholesale | true when a label offers a wholesale price (Mua giá bán buôn/ bán sỉ, Wholesale, Grosir, ขายส่ง) |
has_add_on_deal | true when a label offers an add-on deal (Mua Kèm Deal Sốc, Add-on Deal, Kombo Hemat, 加價購) |
has_gift_with_purchase | true when a label offers a gift with the purchase (Mua để nhận quà, Free Gift, Hadiah Gratis, รับสินค้าฟรี, 滿額贈) |
has_new_user_price | true when a label offers a price for new buyers (Giá dành riêng bạn mới, New User Exclusive, ราคาพิเศษสำหรับลูกค้าใหม่) |
has_vip_price | true when a label offers a members' price (Giá độc quyền dành cho Người dùng ShopeeVIP …, VIP Price …) |
is_lowest_price | true when the product carries the site's lowest-price label (Rẻ Vô Địch, Garansi Harga Terbaik, ช้อปปี้ถูกชัวร์) |
is_new_arrival | true when the product carries a new-arrival label (Hàng mới về, New Arrival, Produk Baru) |
is_trending_shop | true when the product carries the #ShopThinhHanh (trending shop) label (shopee.vn) |
badges | The shop's badges as the site names them (Mall, Yêu thích, Preferred, Star+, Oficial, Fulfilled, PREMIUM, …). An empty list when none |
is_mall | true when the shop has the site's Mall badge (Mall, Mall | ORI, Oficial, 商城, 商城旗艦店); null when it shows a badge we could not identify instead |
is_preferred | true when the shop has the site's Preferred badge (Yêu thích, Preferred, Star, Indicado, ร้านแนะนำ, 蝦皮優選); null when it shows a badge we could not identify instead |
is_preferred_plus | true when the shop has the site's Preferred+ badge (Yêu thích+, Star+, ร้านแนะนำดีเยี่ยม); null when it shows a badge we could not identify instead |
is_shopee_handled | true when Shopee handles the order (Shopee Xử lý, Fulfilled, Full, 蝦皮直營); null when it shows a badge we could not identify instead |
badge_image_urls | The badges' images, including any badge we could not identify (missing from badges) |
has_video | true when the product has a video |
shown_variant_id | The variant (size, colour, …) the listing showed; the price and image are its own |
image_url | The product's image |
overlay_image_url | The campaign mark Shopee draws on the product's image. Empty when there is none |
url | The product's page |
keyword | The keyword the product was found under. Empty for a category link |
category_id | The (sub)category the product was found under. Empty for a keyword |
category_name | That category's name |
category_path | The category's place in Shopee's menu, top level first. Empty for a keyword |
category_path_ids | The ids of those categories, in the same order |
category_image_url | The subcategory's picture in Shopee's menu. Empty for a keyword and for products listed directly under the linked category |
description | With product details on: the seller's full description of the product |
brand | With product details on: the brand the seller gives. Empty when none is given (about 4 products in 10 have one) |
images | With product details on: every picture in the product's gallery, in order |
product_category_path | With product details on: the product's own category in Shopee's menu, top level first, for keyword and category searches alike |
product_category_ids | With product details on: the ids of those categories, in the same order |
rating_count | With product details on: how many ratings the product has |
shop_name | With product or shop details on: the shop's name |
shop_rating | With product or shop details on: the shop's average stars, 0 to 5 |
shop_rating_count | With product or shop details on: how many ratings the shop has |
shop_handle | With product or shop details on: the shop's handle, as in shopee.vn/<handle> |
shop_logo_url | With product or shop details on: the shop's logo |
shop_follower_count | With shop details on: how many people follow the shop, as Shopee rounds it (214,5k is 214500) |
The promotion columns (has_bundle_deal … is_trending_shop) are filled on
the sites whose labels for them we know, and empty (not known) elsewhere:
| Site | Promotion columns filled |
|---|---|
shopee.vn | all nine |
shopee.sg, shopee.ph | bundle deal, wholesale, add-on deal, gift, new-buyer price, new arrival |
shopee.co.id | bundle deal, wholesale, add-on deal, gift, lowest price, new arrival |
shopee.co.th | bundle deal, wholesale, gift, new-buyer price, VIP price, lowest price |
shopee.tw | bundle deal, add-on deal, gift |
shopee.com.my | new arrival |
shopee.com.br | none yet: only about 1% of its products show a label |
A few products also carry v_item_id, v_model_id and v_shop_id: the ids
of another listing Shopee links the product to. Most rows leave them empty.
With product details on, a row also carries, for example (made-up values):
{"description": "Wireless earbuds with touch control. 20 hours with the case. In the box: 2 earbuds, case, cable.","brand": "Sample Audio","images": ["https://down-vn.img.susercontent.com/file/…","https://down-vn.img.susercontent.com/file/…"],"product_category_path": ["Thiết Bị Điện Tử", "Tai nghe nhét tai"],"product_category_ids": ["11036132", "11036143"],"rating_count": 579,"shop_name": "Sample Audio Store","shop_rating": 4.8,"shop_rating_count": 12045}
Not included: units sold, stock, the list of variants and the reviews. The description and the shop's name come with product details on, the shop's follower count with shop details on.
How much does it cost?
No surcharges and no paid options; an item that fails is not charged.
You pay for what you get:
- $3 per 1,000 products ($0.003 a product). Each product is charged once per run, even when two of your searches list it.
- No start fee, and nothing per search.
So 900 products from one keyword cost $2.70. If you set a maximum cost for a run, the Actor stops when it reaches it and keeps every product saved so far.
How long does a run take?
About 50 products in under 20 seconds; 2,000 products from two searches in 2–3 minutes. Each search is read one sample at a time, about 4 seconds a sample, so a higher limit takes longer: in our own test runs outside Apify, one keyword gave 1,332 products in about 2½ minutes, and a limit of 10,000 can take about 40 minutes. Searches of more than about 2,000 products have not yet been timed on Apify. With product details on, add roughly 17 minutes per 1,000 products: each one's own page is read too.
Good to know
- A listing is read as a large sample, not counted to the end. Shopee publishes no total for a search, so no tool can prove it has every product. The Actor keeps reading while the listing keeps showing products it has not seen, up to your limit: one broad keyword gave 6,925 different products in our own test outside Apify. A narrow keyword gives fewer.
- One product, one row. A product found again later, or under another keyword or link, is not saved again, and the row keeps the keyword or category it was first found under.
- The price is the shown variant's. Shopee lists a product under one of
its variants, which can change from visit to visit;
shown_variant_idsays which one the price, discount and image belong to. - A keyword with no products is reported as not read in the run's status; the other keywords and links carry on. The run fails only when none could be read.
- Product details: tested on shopee.vn (every field on 40 of 40 products, the brand where the seller gives one), shopee.sg and shopee.com.br (the gallery and category path on 40 of 40; the other fields on 30 of 40: some shops' pages show only their pictures and category). A product whose own page cannot be opened after several tries is left out, and its keyword or link is reported as not fully read. The same holds for a shop page with shop details on.
- Product links: some products' pages show only their pictures and category (no price, description or shop) or no product at all; such a page is named by its category path, or gives no row and is not charged.
- Running it daily? Remove repeats by
item_id.
More Actors from us
- Airbnb Scraper: Every Stay, Past the 15-Page Limit: Every stay of an Airbnb search, past the 15 pages Airbnb shows, checked against its count.
- Alibaba Products Scraper: Price Tiers & Suppliers: Alibaba.com products by keyword or link, with price tiers in US dollars on every row.
- AliExpress Product Scraper: Search Results & Prices: Every product of an AliExpress search to its last page, with exact sold counts and ratings.
- Amazon Product Scraper: Search Results & Prices: Every product on Amazon's search pages to the last page, sponsored marked, with monthly sales.
- App Store Reviews Scraper: All Reviews, Not 500: Every written App Store review of an app, not just the newest 500.
- Woolworths Coles ALDI Scraper: AU Grocery Prices: Woolworths, Coles and ALDI products for any search in one run, every results page to the end.
Use it from an AI agent or the API
One call starts a run and returns its items (Apify waits up to 300 seconds; for a
longer run, start it with POST /v2/acts/…/runs and read its dataset):
POST https://api.apify.com/v2/acts/luzivanlt~shopee-products-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>
With the sample input as its JSON body:
{"keywords": ["tai nghe bluetooth"],"country": "vn","maxProductsPerSearch": 50}
Its inputs, in the order of the input form:
| Input | What it takes | Default |
|---|---|---|
keywords (Keywords) | Words to search Shopee for, one search per keyword, e.g. "tai nghe bluetooth", on the site chosen under Country. | — |
country (Country) | Which Shopee site to search the keywords on: vn, sg, ph, id, my, th, tw or br, e.g. id for shopee.co.id; Vietnam when left empty. | — |
startUrls (Category or search links) | Links to Shopee category pages (shopee.vn/…-cat.11035567) or searches (shopee.co.id/search?keyword=…) on any of the sites under Country, e.g. https://shopee.sg/Tops-cat.11012819.11027727. | — |
maxProductsPerSearch (Max products per keyword or link) | Stop each keyword or link after this many products, from 1 to 10,000; default 200 (the form starts at 50). | 200 |
includeProductDetails (Include product details) | Also open each product's own page and add the seller's full description, the brand, every picture in the gallery, the product's category path, its number of ratings, and the shop's name and rating. | — |
Apify's MCP server, https://mcp.apify.com, lists it as luzivanlt/shopee-products-scraper. To give an
AI agent this Actor as a tool, add the server to the agent's MCP config:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=luzivanlt/shopee-products-scraper"}}}
The client signs in with OAuth, or add "headers": { "Authorization": "Bearer <APIFY_TOKEN>" }.
A real run's output, unedited: the sample dataset.
Charged per product delivered; the sample input above costs at most $0.15.
FAQ
Do I need a Shopee account or cookies? No. The Actor reads what anyone can see on Shopee.
Which Shopee countries does it work for? Vietnam, Singapore, the Philippines, Indonesia, Malaysia, Thailand, Taiwan and Brazil. Pick the country for your keywords, or paste links from any of them.
Can I run it from my own code, on a schedule, or with other apps? Yes. Like any Apify Actor, you can start it through the Apify API, run it on a schedule, and connect it to other apps with Apify's integrations and webhooks.
Is it legal to scrape Shopee?
This Actor reads only public product listings and saves no personal data about buyers. Check Shopee's terms and the laws that apply to you before you use the data. If you are unsure, ask a lawyer.
Support
Found a problem or missing a feature? Open an issue on the Issues tab and include the run's link.
This Actor is not affiliated with, endorsed by or sponsored by Shopee or Sea Limited.