September 2, 2026 · 8 min read

Shopee Scraper Playbook: Extracting Southeast Asian E-Commerce Data

By Crawlerbros Engineering Team

E-Commerce Extraction across Southeast Asia

Shopee Scraper is a specialized web harvesting tool designed to extract public e-commerce data from Southeast Asia's leading marketplace across Malaysia, Singapore, Thailand, the Philippines, Vietnam, and Indonesia. Operating on top of the Playwright library, this browser-based scraper retrieves public shop profiles, follower metrics, product feeds, and item-level details like pricing, discounts, variations, and historical sales. It runs entirely without logins or cookies, bypassing complex access restrictions. Businesses deploy this tool to drive regional competitor analysis, monitor brand positioning, and gather structured product catalog data across different markets using localized currencies.

The application queries public endpoints to access a rich array of data points. For shop profiles, it extracts official badges, total followers, ratings, and account age. For individual listings, it compiles detailed records of historical sales, 30-day sales volume, stock availability, rating stars, and variation lists. By aligning the scraper configuration with specific business targets, organizations can transform unstructured e-commerce channels into clean, actionable data assets.

Practical use cases

These use cases come from Shopee Scraper's published documentation. Each is expanded into an operating pattern so the Shopee Scraper output has a purpose beyond collection.

Use case 1: Marketplace monitoring

Outcome: track shops, products, prices and discounts across SEA markets.

Question to answer: Looking only at confirmed differences, which ones are worth a response and which are just formatting noise?

Configure: Start with category (Curated Shopee top-level category. CatIDs are shared across the SEA domains.), shopUrl (Shop username or full shop page URL, e.g. appleflagship.store or https://shopee.com.my/appleflagship.store.), itemUrl (Full Shopee item page URL, e.g. https://shopee.com.my/{slug}-i.{shopid}.{itemid}.). Use the narrowest Shopee Scraper values that represent the real task, keep the first result set small, and record why each selected input matters to the Shopee Scraper outcome.

Working method: Keep a snapshot from every run and diff it against the previous one using a stable identifier. Bucket the differences into new, removed, and changed, then attach a plain-language reason to any change that crosses your action threshold.

Deliverable: Create a monitoring log that pairs every flagged change with the two runs it was confirmed across. Include the Shopee Scraper source identifier and the collected fields behind every Shopee Scraper decision.

Stop condition: Pause when a change is flagged from a single run with no second confirmation, or the matching key itself proves unstable. Fix the Shopee Scraper question, comparison rule, or configuration before expanding the Shopee Scraper run.

Use case 2: Competitor pricing

Outcome: price ranges, original prices and discount patterns per category.

Question to answer: Which side-by-side comparisons hold up once outliers are set aside, and which depend entirely on them?

Configure: Start with category (Curated Shopee top-level category. CatIDs are shared across the SEA domains.), maxPrice (Drop items priced above this (in local currency units).), minPrice (Drop items priced below this (in local currency units).). Use the narrowest Shopee Scraper values that represent the real task, keep the first result set small, and record why each selected input matters to the Shopee Scraper outcome.

Working method: Decide the comparison axis first, then place every record into a cohort before looking at outcomes. Keep raw and normalized values side by side, and review the records that do not fit any cohort instead of dropping them.

Deliverable: Create a comparison worksheet showing cohort membership, the compared fields side by side, and any record that did not fit. Include the Shopee Scraper source identifier and the collected fields behind every Shopee Scraper decision.

Stop condition: Pause when cohorts overlap on the defining field, or the gap being reported depends on a field with heavy missing data. Fix the Shopee Scraper question, comparison rule, or configuration before expanding the Shopee Scraper run.

Use case 3: Localized data pipelines

Outcome: currency-aware (MYR/SGD/THB/PHP/VND/IDR) e-commerce datasets.

Question to answer: Once the acceptance rule is fixed, which records satisfy it outright, and which sit in a gray zone?

Configure: Start with shopUrl (Shop username or full shop page URL, e.g. appleflagship.store or https://shopee.com.my/appleflagship.store.), itemUrl (Full Shopee item page URL, e.g. https://shopee.com.my/{slug}-i.{shopid}.{itemid}.), maxPrice (Drop items priced above this (in local currency units).). Use the narrowest Shopee Scraper values that represent the real task, keep the first result set small, and record why each selected input matters to the Shopee Scraper outcome.

Working method: Define what accepted, uncertain, and excluded mean before touching the first batch, write the rule down, and change only one rule or input at a time so you can see what actually moved the result.

Deliverable: Create a review-ready queue split by status, with the deciding field cited next to every record. Include the Shopee Scraper source identifier and the collected fields behind every Shopee Scraper decision.

Stop condition: Pause when the acceptance rule had to be reinterpreted mid-batch, or reviewers disagree on how to apply it to the same record. Fix the Shopee Scraper question, comparison rule, or configuration before expanding the Shopee Scraper run.

Step-by-Step Data Integration Workflow

Follow this structured workflow to safely configure, test, and run your Shopee data pipelines:

  1. Domain and Target Selection: Select the targeted Shopee domain (MY, SG, TH, PH, VN, or ID) corresponding to your regional focus. Choose the correct mode based on your required data resolution, such as itemByUrl for deep individual item details or shopProducts for an entire seller inventory.

  2. Parameter and Filter Configuration: Set boundaries to isolate relevant records. Define the minPrice and maxPrice filters in local currency units (such as MYR or SGD) to eliminate extreme outliers. Use the containsKeyword filter to restrict product listings to specific brands or product terms.

  3. Initial Sample Verification: Execute a small test run with maxItems set to a low number (e.g., 10 or 20). Check the resulting JSON output to ensure that key fields like price, stock, variation lists, and ratingStar are populated correctly for your chosen category.

  4. Handle Blocks and Scale Output: Inspect the extraction logs for error code 90309999, which indicates an anti-bot block on the item-feed endpoints. If this error appears, activate the proxyConfiguration option. Once the small test run returns verified, clean data, adjust the maxItems parameter up to the hard cap of 500 records to gather the full dataset.

Technical Limitations and Proxy Strategies

While this extractor provides access to public store data, users must navigate several platform limitations and architectural boundaries. First, keyword search is not supported by this scraper. Shopee restricts search queries behind a login wall for automated clients. To work around this, users must rely on public storefront channels, such as shop profiles, shop product feeds, and category browsing.

Second, Shopee employs an anti-bot layer that intermittently blocks item-feed endpoints (like search_items or item/get), resulting in error 90309999. When this occurs, the scraper continues to run, emitting the verified public record (such as the shop profile or category taxonomy) rather than failing. Activating the optional Apify proxy significantly improves feed success, as the scraper engages it automatically upon detecting an IP block.

Third, regional gating can restrict visibility. A datacenter IP located in Malaysia will successfully query the Malaysian domain but will receive a service error (code 1000000) when targeting Singapore, Thailand, or other regional domains. To harvest data from non-MY markets, you must use a proxy located within the target country.

Finally, currency calculations require careful handling. Prices are always returned in the local currency of the scraped market (such as VND for Vietnam or PHP for the Philippines). Furthermore, empty fields are omitted from the output. If a product does not have an active discount, the original price and discount percentage fields are excluded rather than returned as zero.

Frequently asked questions

Do I need to input Shopee account details or cookies?

No, this tool operates entirely on the public-facing areas of the platform. It does not require a Shopee account, active logins, or browser cookies to retrieve profiles, product feeds, or category listings.

Why are some prices returned as separate minimum and maximum values?

Sellers often list multiple variations of a single product (such as different sizes or colors) under a single listing. The scraper provides priceMin and priceMax to capture this price range, while the main price field represents the minimum price shown on the product card.

How do I resolve a 90309999 error in my extraction logs?

This error indicates that Shopee's anti-bot system is blocking direct requests to the item-feed endpoints. You should enable the Apify proxy in your input settings; the scraper will automatically engage it when a block is detected to maintain access.

Why does a specific shop return a service error?

A service error (code 1000000) typically represents a regional IP block. Shopee gates store details by country. If you target a non-Malaysian domain using a standard Malaysian IP, the request will be blocked. You can resolve this by routing your requests through a proxy located in the target market.

Why are some fields completely missing from my dataset?

The scraper is designed to omit empty fields instead of outputting blank values. For instance, if an item is unrated, the ratingStar field will be excluded. Similarly, if there is no ongoing discount, original price and discount percent fields will not appear.

Resources

● Featured actors

Shopee Scraper

Scrape Shopee - Southeast Asia's leading marketplace (MY, SG, TH, PH, VN, ID). Shop profiles with ratings and followers, public shop product feeds, full item detail pages (price, discounts, ratings, sold, stock, variations, images) and category browsing.

Run on Apify ↗