Shopee Scraper · Search, Product & Shop · 11 Markets
Pricing
from $2.80 / 1,000 product cards
Shopee Scraper · Search, Product & Shop · 11 Markets
Shopee Scraper extracts products from keyword search, category pages, shops, or product URLs across Indonesia, Singapore, Malaysia, Philippines, Thailand, Vietnam, Taiwan, Brazil, Mexico, Colombia and Chile. Price, rating, seller, gallery. No login. Optional full product pages.
Pricing
from $2.80 / 1,000 product cards
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
Turn Shopee search terms or URLs into product rows — title, price, currency, seller ids, and image — across Indonesia, Singapore, Malaysia, Philippines, Thailand, Vietnam, Taiwan, Brazil, Mexico, Colombia and Chile. No login, no cookies.
Optional full product pages add description, brand, gallery, variants and seller fields.
| Input | Row(s) emitted |
|---|---|
Keyword (searchTerms) | Product cards from /list/{term} |
| Search / list / category URL | Product cards from that page |
| Shop URL | Products listed on the shop |
Product URL (-i.shop.item or /product/shop/item) | One product; price often missing until you also ran search |
Why Use This Scraper?
- Eleven Shopee marketplaces in one actor
- Keyword search, category, shop, or a mixed list of URLs
- Price and title on search cards without an account
- Optional product-detail pass for gallery, brand and variants
- One flat row per product for JSON, CSV or Excel
- No browser, no cookies, no Shopee account
Overview
Built for price monitors, marketplace researchers, and sourcing teams who need public Shopee listings as a table.
Every successful row is a product. A shop URL does not emit a shop-profile row — it emits that shop's products. Colombia and Chile do not serve search HTML; keyword-only runs there return an unavailable error row. Paste a product or shop URL instead.
This is crawler HTML, not Shopee's logged-in JSON API. The /api/v4 routes 403 without their anti-crawler token. Search cards still carry price. A product-URL-only run often has price: null because the product page no longer ships it in the HTML we read.
Supported Inputs
| Kind | Example |
|---|---|
| Keyword | iphone in searchTerms, country: "ID" |
| List / search URL | https://shopee.sg/list/iphone or https://shopee.sg/search?keyword=iphone |
| Category | https://shopee.co.id/Komputer-Aksesoris-cat.11044261 |
| Shop | https://shopee.co.id/shop/196846900 or https://shopee.co.id/rasyidjaya_computer |
| Product | https://shopee.sg/Name-i.855002939.28095542543 or https://shopee.co.id/product/196846900/11083699432 |
Unsupported
- Cart, checkout, buyer messages, or anything behind login
- Lazada
- Colombia / Chile keyword search (product and shop URLs still work)
- Server-side
sales/latestsort (those values stay in page order)
Use Cases
| Audience | What they use it for |
|---|---|
| Price monitors | Track a SKU or keyword across SEA and LATAM Shopee hosts |
| Sourcing | Shortlist sellers by price, title and shop id |
| Catalog teams | Enrich a list of Shopee URLs with title and image |
| Researchers | Compare listing density for a term across countries |
How It Works
- Keywords become
https://{host}/list/{term}. A Shopee URL is classified as search, category, shop or product. - List / shop / category pages are fetched as crawler HTML (Facebook crawler UA). Product pages use a Chrome UA on
/product/{shop}/{item}. - Cards come from schema.org
ItemListplus-i.{shop}.{item}links. Prices in the title (Rp3.460.000) are parsed when the card has no schema price. - Filters (
minPrice,maxPrice) drop cards before billing.price_asc/price_descreorder in memory. - If
enrichProductsis on, each kept card opens its product page and merges description, brand, images, attributes and models.
Input Configuration
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | auto | auto, search, product, shop |
country | string | ID | Marketplace for keywords. A URL keeps its own country. |
searchTerms | array | — | One keyword per line |
startUrls | array | — | Product, search, category or shop URLs |
maxItems | integer | 40 | Cap for the whole run |
enrichProducts | boolean | false | Full product page. Extra product-detail charge. |
sortBy | string | relevancy | relevancy, sales, latest, price_asc, price_desc |
minPrice / maxPrice | integer | — | Marketplace currency. Cards without a price are dropped. |
minRating | number | — | Applied only when a card has a rating |
proxyConfiguration | object | residential | Optional. Direct HTTP works on most hosts. |
maxConcurrency | integer | 3 | Parallel requests, 1–8 |
Example — keyword search
{"country": "ID","searchTerms": ["iphone"],"maxItems": 40}
Example — product URLs plus detail
{"mode": "product","startUrls": ["https://shopee.co.id/product/1732890112/26795239857"],"enrichProducts": true}
Example — one shop
{"mode": "shop","startUrls": ["https://shopee.co.id/shop/196846900"],"maxItems": 20}
Output Overview
One dataset row per product. Search cards include title, price, currency, url, itemId, shopId, imageUrl when the page has them. Error rows carry error, errorKind (unavailable for a dead marketplace or bad URL) and message — those are not charged.
With enrichProducts, the same row also gets description, brand, images, categoryPath, attributes, models, shopName, shopRating, isOfficialShop.
Output Samples
Real row from country: "ID", searchTerms: ["iphone"], maxItems: 5 (run C32Pp8Odx8aWBJSzz):
{"type": "product","country": "ID","currency": "IDR","title": "iPhone 17 Pro 256 & 512GB, Chip A19 Pro, Super Retina XDR - Garansi Resmi","price": 23290000,"itemId": "26795239857","shopId": "1732890112","url": "https://shopee.co.id/iPhone-17-Pro-256-512GB-Chip-A19-Pro-Super-Retina-XDR-Garansi-Resmi-i.1732890112.26795239857"}
Key Output Fields
| Group | Fields |
|---|---|
| Identity | country, itemId, shopId, url |
| Offer | title, price, currency, originalPrice, imageUrl |
| Provenance | searchTerm, sourceUrl, position, page, scrapedAt |
| Detail (opt-in) | description, brand, images, categoryPath, attributes, models, shopName, shopRating, isOfficialShop |
FAQ
Does it need Shopee cookies?
No. The JSON API does (/api/v4 returns 403 without their token). This actor reads the public crawler HTML instead.
Why is price null on a product URL?
The product page often strips price from the HTML. Run a keyword or category search to get card prices, then turn on enrichProducts if you want the gallery.
Which countries work for search? ID, SG, MY, PH, TH, VN, BR, TW, MX. CO and CL need a product or shop URL.
Is there a start fee? Yes — Apify's per-GB actor-start ($0.005). Then $0.0036 per product card (Bronze) and $0.0063 per successful product-detail. Error rows are free.
Support
Found a bug or need a field that is not there? Open an issue on the actor's Issues tab.
Email: muhamed.didovic@gmail.com
Additional Services
Need a custom scraper, a tailored export, or an integration into your own pipeline? Custom builds are available — muhamed.didovic@gmail.com.
Explore More Scrapers
- Coupang Scraper — Korean marketplace search
- Etsy Scraper — listings, shops, seller leads
- Instagram Search Scraper — accounts, hashtags, audio
- Instagram Hashtag Scraper — top, recent and reels
Browse the full collection at apify.com/memo23.
🤖 For AI Agents & LLM Apps
Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/shopee-scraper).
Purpose: Public Shopee product cards from keywords or URLs across 11 country hosts. No login.
Minimal input:
{ "country": "ID", "searchTerms": ["iphone"], "maxItems": 5 }
Output: one dataset row per product — type, country, currency, title, price, url, itemId, shopId, imageUrl, searchTerm, sourceUrl. Failed targets return {error, errorKind, message}.
Behaviors an agent should know:
- Always set
maxItems. - A URL's host wins over
country. mode: "product"/"shop"ignoressearchTerms.- CO/CL keyword search returns
errorKind: "unavailable"— pass a product or shop URL. - Billing:
productper delivered card,product-detailonly when enrichment succeeds. Error rows are free. - Product-URL runs often have null
price. Prefer keyword search when price is required. - No cookies and no
/api/v4— do not send session tokens.
⚠️ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Shopee Pte. Ltd., Sea Limited, or any of their subsidiaries. All trademarks mentioned are the property of their respective owners.
The scraper accesses only publicly available Shopee listing and product pages — no authenticated endpoints, paid features, or content behind the Shopee login wall. Users are responsible for ensuring their use complies with Shopee's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.
SEO Keywords
Shopee scraper, scrape Shopee, Shopee API, Shopee product scraper, Shopee search scraper, Shopee shop scraper, Apify Shopee, Indonesia Shopee scraper, Shopee price monitoring, Shopee marketplace data, SEA ecommerce scraper, Shopee catalog export, Shopee seller intelligence, shopee.co.id scraper, Shopee no login