Shopee Scraper avatar

Shopee Scraper

Pricing

Pay per usage

Go to Apify Store
Shopee Scraper

Shopee Scraper

Extract Shopee product data from all 11 marketplaces without a browser: prices, discounts, ratings, units sold, shipping location, sellers and shops in Indonesia, Vietnam, Thailand, Brazil and more. Export data, run via API, schedule runs, or integrate with AI workflows.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Matvey

Matvey

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

20 hours ago

Last modified

Share

Shopee Scraper extracts public Shopee product data from all 11 Shopee marketplaces โ€” Indonesia, Singapore, Malaysia, Philippines, Thailand, Vietnam, Taiwan, Brazil, Mexico, Colombia and Chile โ€” without the official API and without running a browser. Get product cards from any keyword search, category or shop, plus full product detail: description, brand, price, discount, rating, image gallery, category path and seller reputation. No login, no API key, no Shopee developer account. Export to JSON, CSV or Excel, call it from the API, schedule runs, or plug it into n8n, Make, Zapier, Google Sheets or an AI agent through MCP.

What is Shopee Scraper?

Shopee is the largest e-commerce marketplace in Southeast Asia and one of the fastest growing in Latin America. It has no public product API, and in mid-2026 Shopee moved every product page to a client-rendered app whose internal API is guarded by a JavaScript-signed token. Because of that, most Shopee scrapers today return only what a product card shows and report description, brand and gallery as "browser only".

This Actor takes the other route: it reads the server-rendered version of the page that Shopee returns to crawlers. Listing pages carry the full product card โ€” title, price, original price, discount, rating, units sold, shipping location and badges โ€” over plain HTTP, with no browser and no token, so a run of 40 products costs a fraction of a cent and finishes in under a minute.

ModeWhat you getInput
๐Ÿ” Products from searchProduct cards: title, price, original price, discount %, rating, units sold, shipping location, badges, image, positionkeywords, search URLs, category URLs
๐Ÿ“ฆ Product detailsCategory path, gallery size and, when Shopee serves its structured record, description, brand, price, availability, rating count and the seller with rating and response rateproduct URLs or shopId/itemId
๐Ÿช ShopShop profile (name, username, rating, rating count, product count, logo) and the products on its pageshop URL or username

Every row carries country, marketplace, currency, shopId and itemId, so a single dataset can hold several countries at once.

Supported Shopee marketplaces

CountryCodeDomainCurrency
๐Ÿ‡ฎ๐Ÿ‡ฉ IndonesiaIDshopee.co.idIDR
๐Ÿ‡ธ๐Ÿ‡ฌ SingaporeSGshopee.sgSGD
๐Ÿ‡ฒ๐Ÿ‡พ MalaysiaMYshopee.com.myMYR
๐Ÿ‡ต๐Ÿ‡ญ PhilippinesPHshopee.phPHP
๐Ÿ‡น๐Ÿ‡ญ ThailandTHshopee.co.thTHB
๐Ÿ‡ป๐Ÿ‡ณ VietnamVNshopee.vnVND
๐Ÿ‡น๐Ÿ‡ผ TaiwanTWshopee.twTWD
๐Ÿ‡ง๐Ÿ‡ท BrazilBRshopee.com.brBRL
๐Ÿ‡ฒ๐Ÿ‡ฝ MexicoMXshopee.com.mxMXN
๐Ÿ‡จ๐Ÿ‡ด ColombiaCOshopee.com.coCOP
๐Ÿ‡จ๐Ÿ‡ฑ ChileCLshopee.clCLP

Prices are returned in the marketplace's own currency and are never converted.

What data can Shopee Scraper extract?

๐Ÿ” Product cards

FieldExample
titleApple iPhone 15 128GB, Pink
price / originalPrice / discountPercent12499000 / 14499000 / 14
currencyIDR
rating4.9
soldQuantity10000
locationJakarta Barat
labels["Murah Mantap", "Garansi Harga Terbaik"]
shopId / itemId241308147 / 22982495280
url / imageUrlproduct link, main picture
position / page / searchTerm1 / 0 / iphone 15
country / marketplaceID / Indonesia

๐Ÿ“ฆ Product details

When Shopee serves the structured product record for a page, the row carries description (the full seller description, thousands of characters), brand, price, originalPrice, availability, condition, rating, ratingCount, images, imageCount, breadcrumb, categoryPath and a seller object with name, username, url, logo, rating, ratingCount, productCount, chatResponse and location.

Shopee serves that record only part of the time, and the Actor retries each page from several IP addresses before giving up. When it still does not arrive, the row comes back with partial: true and whatever the page does carry โ€” title, category path and gallery size โ€” plus a note explaining what is missing, so a run never silently drops a product. For prices and ratings at scale, use search, category or shop mode: product cards always carry them.

๐Ÿช Shops

name, username, url, rating, ratingCount, productCount, logo, country, plus the products listed on the shop page as normal product rows.

How much does it cost to scrape Shopee?

The Actor uses Apify's pay-per-event pricing, so you pay for results and nothing per page or per proxy gigabyte.

EventPricePer 1,000
Product (search card, category, shop)$0.002$2
Product detail (product page)$0.004$4

Because no browser is involved, a run of 40 products finishes in well under a minute and costs a fraction of a cent in platform usage. The Apify Free plan ($5 monthly credit) is enough for roughly 2,500 product cards or 1,250 full product records every month.

How to scrape Shopee

  1. Open Shopee Scraper on Apify and click Try for free.
  2. Choose What to scrape โ€” for example Products from search.
  3. Pick the Country (Indonesia by default).
  4. Enter Search keywords, or paste Shopee URLs: product links, search results, category pages or shops. Links from different countries can be mixed in one run.
  5. Set Max products, optionally turn on Fetch full product details, and click Start.
  6. Open the Output tab and download the dataset as JSON, CSV, Excel or XML, or read it through the API.

โฌ‡๏ธ Input

Shopee Scraper input form: mode, country, search keywords, Shopee URLs, max products, sorting

Search Indonesia for two keywords, best selling first:

{
"mode": "search",
"country": "ID",
"searchTerms": ["iphone 15", "samsung s24"],
"sortBy": "sales",
"maxItems": 200
}

Full detail for specific products (any country, product URL or /product/shopId/itemId):

{
"mode": "product",
"startUrls": [
"https://shopee.co.id/Apple-iPhone-15-256GB-Pink-i.241308147.23982497018",
"https://shopee.com.br/product/1163374404/24096063243"
]
}

A category page in Vietnam and a shop in Singapore in one run:

{
"startUrls": [
"https://shopee.vn/ฤiแป‡n-Thoแบกi-cat.84",
"https://shopee.sg/shopeeofficial"
],
"maxItems": 100
}

Search plus enrichment, where every card is opened for its full record:

{
"country": "MY",
"searchTerms": ["air fryer"],
"maxItems": 50,
"enrichProducts": true
}

Search filters

sortBy (relevancy, sales, latest, price_asc, price_desc), minPrice and maxPrice in the marketplace currency. They apply to keyword searches and to listing URLs you paste.

โฌ†๏ธ Output

Shopee Scraper output table: product, price, previous price, discount, rating, shipping location, country, item ID

One product card:

{
"type": "product",
"title": "Apple iPhone 15 128GB, Pink",
"url": "https://shopee.co.id/Apple-iPhone-15-128GB-Pink-i.241308147.22982495280",
"shopId": "241308147",
"itemId": "22982495280",
"country": "ID",
"marketplace": "Indonesia",
"currency": "IDR",
"price": 12499000,
"originalPrice": 14499000,
"discountPercent": 14,
"rating": 4.9,
"soldQuantity": 10000,
"location": "Jakarta Barat",
"labels": ["Garansi Harga Terbaik"],
"imageUrl": "https://down-id.img.susercontent.com/file/id-11134207-7ra0n-mdr868y1rkmn6a",
"position": 1,
"searchTerm": "iphone 15",
"scrapedAt": "2026-09-03T06:28:11.026Z"
}

One product detail (description shortened here):

{
"type": "product_detail",
"itemId": "23982497018",
"shopId": "241308147",
"title": "Apple iPhone 15 256GB, Pink",
"brand": "Apple",
"description": "iPhone 15 menghadirkan Dynamic Island, kamera Utama 48 MP, dan USB-C โ€ฆ",
"currency": "IDR",
"price": 14749000,
"originalPrice": 17499000,
"discountPercent": 16,
"availability": "InStock",
"condition": "NewCondition",
"rating": 4.95,
"ratingCount": 701,
"imageCount": 11,
"breadcrumb": ["Shopee", "Handphone & Aksesoris", "Handphone", "Apple", "Apple iPhone 15 256GB, Pink"],
"seller": {
"name": "iBox Official Shop",
"username": "iboxofficial",
"rating": 4.94,
"ratingCount": 442537,
"chatResponse": 100,
"location": "KOTA JAKARTA BARAT"
}
}

Rows carry a type (product, product_detail, shop, error), so one dataset can be filtered in a spreadsheet or in code. Pages that fail are written as error rows with the URL and the reason instead of disappearing silently.

Use cases for Shopee data

Price monitoring and repricing

Track price, originalPrice and discountPercent for your own listings and your competitors' on a daily schedule, and feed the dataset into Sheets or your repricing tool.

Market research in Southeast Asia

Search a category across Indonesia, Vietnam, Thailand and the Philippines in one run and compare price levels, discount depth, ratings and units sold per market.

Product research and sourcing

Units sold on category pages plus rating counts show what actually moves. Full product detail adds the description and brand, so you can shortlist suppliers before contacting them.

Seller and shop intelligence

Shop mode returns the shop rating, the number of ratings and the product count, so you can size up a competitor or qualify a supplier.

Catalog enrichment

Description, brand, breadcrumb and the image gallery are enough to build product pages or enrich an existing catalog.

AI agents and RAG

Flat rows, literal field names and only optional inputs make this Actor easy to call from an agent through the Apify MCP server.

Integrations

  • API โ€” start a run and read the dataset with any HTTP client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("lergassy/shopee-scraper").call(run_input={
"country": "ID", "searchTerms": ["air fryer"], "maxItems": 100
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], item["price"], item["currency"])
  • JavaScript โ€” npm i apify-client, then client.actor('lergassy/shopee-scraper').call(input).
  • n8n, Make, Zapier, Google Sheets, Airtable, Slack, webhooks โ€” through the standard Apify integrations.
  • MCP โ€” add the Apify MCP server to Claude, ChatGPT or Cursor and let the agent call lergassy/shopee-scraper with a keyword and a country.

Errors and troubleshooting

What you seeWhat it meansFix
partial: true on a product rowShopee did not serve its structured record for that pageRe-run the URL later, or take price and rating from search mode
error rows for some URLsThe page stayed unavailable after retriesRe-run those URLs; the Actor rotates proxies and usually succeeds on a second attempt
soldQuantity is null in search modeShopee shows units sold on category and shop pages, not on every search cardUse a category URL for units sold
rating is null on a category pageCategory cards omit the star ratingEnable enrichment, or scrape the same product by URL
Fewer results than Max productsShopee returns about 40 cards per search page and repeats items across pagesUse several narrower keywords, or a category URL
Empty result for a shopThe shop page shows only its featured productsPaste the shop's listing URL, or search with the shop name

๐Ÿค– For AI Agents & LLM Apps

Compact reference for agents calling this Actor through the Apify MCP server or the Apify API (lergassy/shopee-scraper).

Purpose: returns Shopee listings across nine South-East Asian and Latin American marketplaces โ€” by search term, by shop or by product URL โ€” with price, discount, rating, units sold and seller location. Use it to answer "what does this product cost in Indonesia right now", "who are the top sellers for this query" and "how did this listing's price move".

Minimal input:

{ "searchTerms": ["iphone 15"], "country": "ID", "maxItems": 40 }

Output: one row per listing โ€” type, partial, itemId, shopId, title, url, country, marketplace, currency, price, originalPrice, discountPercent, rating, soldQuantity, location, imageUrl, categoryPath, scrapedAt. With enrichProducts on, rows also carry brand, description, availability, ratingCount, imageCount and a seller object. Pages that could not be read arrive as type: "error" rows with error and kind rather than being dropped silently.

Behaviors an agent should know:

  • mode defaults to auto: search terms trigger search mode, URLs trigger product or shop mode. Set it explicitly only to override that.
  • country selects the marketplace and therefore the currency. Prices are always in the marketplace's own currency โ€” never compare price across countries without converting.
  • maxItems (default 40) caps rows per search term. enrichProducts costs one extra page fetch per product, so leave it off when the listing fields are enough.
  • Rows with partial: true carry only what search results expose. That is not an error; it is the cheap path.
  • soldQuantity is Shopee's own lifetime counter, not sales in a period.
  • Anti-bot pressure is real on Shopee: a run may return error rows for some pages while succeeding on the rest. Check type before treating the dataset as complete.

โ“ FAQ

The Actor reads only pages that Shopee publishes to anyone, including the version it serves to search-engine and social-media crawlers. It does not log in, does not touch buyer accounts and collects no personal data. You remain responsible for using the data in line with local law and Shopee's terms; consult a lawyer for your specific case.

Do I need a Shopee API key or an account?

No. Shopee has no public product API, and this Actor never authenticates.

Does it use a browser?

No. That is why it is fast and cheap. Everything is plain HTTP against the server-rendered pages.

Why is product detail sometimes partial?

Since mid-2026 Shopee renders product pages in the browser and guards the internal API with a JavaScript-signed token. The crawler version of the page carries the structured product record only part of the time. This Actor retries from several IP addresses and, if the record still does not arrive, returns what the page does carry with partial: true instead of failing. Product cards from search, category and shop pages are unaffected and always carry price, rating and discount.

Can I scrape several countries in one run?

Yes. Keyword searches use the selected country, and every URL keeps its own marketplace. Each row records country, marketplace and currency.

How many products can one search return?

Shopee serves about 40 cards per search page and reshuffles results between pages, so a single keyword realistically yields a few hundred unique products. Category URLs and several narrower keywords go deeper.

Does it return customer reviews?

Not today. Reviews load from the token-signed internal API and are out of scope for a browserless scraper. Ratings and rating counts are included for both products and shops.

Can I get per-variant prices and stock?

Shopee does not expose per-variant data on the crawler page. You get the product price, the original price, the discount and availability.

Can I use it with the Apify API, MCP or n8n?

Yes, see Integrations. The input is plain JSON and startUrls accepts product, search, category and shop links.

Your feedback

Missing a field, a country or a page type? Open an issue in the Issues tab or leave a review โ€” user requests decide what ships next.

You might also like

ActorWhat it does
Tokopedia Reviews ScraperShop reviews from Indonesia's Tokopedia
Mercado Libre ScraperProducts, prices, reviews and deals across 18 Latin American marketplaces
Agoda Reviews ScraperHotel reviews from Agoda and Booking.com
Google Flights ScraperFlight prices, airlines and price insights
Email & Phone VerifierChecks e-mails and phone numbers in bulk: deliverability, throwaway and role flags, numbering plan, US state and time zone