Pricing
from $5.00 / 1,000 product detail scrapeds
Shopee Product Detail
Give it Shopee product URLs, get full product detail back: name, description, price, variants/SKUs, full image gallery, seller info, reviews, ratings. Supports Brazil, Indonesia, Thailand, Malaysia, Singapore, Philippines, Vietnam, Mexico.
Pricing
from $5.00 / 1,000 product detail scrapeds
Rating
5.0
(3)
Developer
Actor stats
1
Bookmarked
105
Total users
59
Monthly active users
4.8 hours
Issues response
35 minutes ago
Last modified
Categories
Share
Shopee Product Detail - Scrape Products by URL
Give it Shopee product URLs, get back the full product detail page (PDP) data for each one: name, description, price, variants/SKUs, full image gallery, seller info, ratings, reviews. Supports Brazil, Indonesia, Thailand, Malaysia, Singapore, Philippines, Vietnam and Mexico.
No login, no cookies, no setup. Works out of the box on a paid Apify plan.
Why a dedicated PDP actor?
The companion Shopee Scraper is built for discovery (keyword / category / shop searches that return many products with light card-level fields). This actor is built for detail (you already know which products you want; you need the rich PDP fields: description, variants, full image gallery, seller profile, reviews).
If you paste a product URL into the discovery actor, it falls back to a keyword search and returns related items. This actor does what you actually want with a product URL: one URL in, one product detail record out.
โ ๏ธ Free vs. paid Apify plans
This actor relies on a premium unblocking backend that the actor author pays for. Free Apify accounts cannot pull live Shopee data.
- Free plan: returns a clearly-labelled MOCK sample (every record has
_mock: trueand a_noticefield) so you can inspect the exact output shape before committing. - Paid plan: real, live Shopee data.
Upgrade at https://apify.com/pricing and re-run.
Input
| Field | Type | Description |
|---|---|---|
productUrls | Array (required) | List of Shopee product URLs. Accepts both formats. |
country | String | BR, SG, MY, TH, ID, MX, PH, VN. Auto-detected from URLs. |
includeReviews | Boolean | When ON, fetches reviews sorted newest-first (with timestamps) plus review-velocity fields. Default false. |
reviewsLimit | Integer | Max reviews returned in the array (default 30, max 500). Velocity stats use all reachable reviews regardless. |
debug | Boolean | Verbose logs. |
Supported URL formats
Both of these point at the same product and both work:
https://shopee.com.br/-i.1337417367.23493715512 โ canonicalhttps://shopee.com.br/product/1337417367/23493715512 โ newer / app-share formathttps://shopee.com.br/any-slug-here-i.1337417367.23493715512 โ slug variant
Output
One record per URL:
{"itemId":23493715512,"shopId":1337417367,"name":"Sample Product Name","description":"Full product description as listed on Shopee...","brand":"BrandName","categoryPath":["Clothing","Men","Shoes"],"attributes":[{"name":"Material","value":"Cotton"},{"name":"Color","value":"Black"}],"price":79.90,"priceMin":null,"priceMax":null,"originalPrice":209.90,"discountPercent":62,"isOnSale":true,"currency":"BRL","stock":null,"inStock":true,"rating":4.87,"ratingCounts":[3,5,12,88,412],"reviewCount":520,"historicalSold":null,"historicalSoldEstimated":"10k+","favorites":9120,"shopName":"Official Store BR","shopRating":4.92,"shopFollowerCount":184000,"shopResponseRate":0.98,"shopResponseTime":"within hours","shopLocation":"Sรฃo Paulo","modelsCount":4,"models":[{"name":"Black / M","price":79.90,"stock":null,"inStock":true,"imageUrl":"https://cf.shopee.com.br/file/..."},{"name":"Black / L","price":79.90,"stock":null,"inStock":true,"imageUrl":"https://cf.shopee.com.br/file/..."},{"name":"White / M","price":79.90,"stock":null,"inStock":true,"imageUrl":"https://cf.shopee.com.br/file/..."},{"name":"White / L","price":79.90,"stock":null,"inStock":false,"imageUrl":"https://cf.shopee.com.br/file/..."}],"imagesCount":8,"images":["https://cf.shopee.com.br/file/...","..."],"videoUrl":"https://cvf.shopee.com.br/file/...","reviewsAccessible":130,"reviewsComplete":true,"reviewsLast30Days":45,"newestReviewDate":"2026-06-07","oldestReviewDate":"2024-02-11","recentReviews":[{"rating":5,"author":"a***a","date":"2026-06-07","comment":"Adorei!","images":["https://cf.shopee.com.br/file/..."],"videos":[{"url":"https://down-ws-id.vod.susercontent.com/.../xxxx.mp4","cover":"https://down-bs-id.img.susercontent.com/..._cover","durationMs":11377}]}],"url":"https://shopee.com.br/-i.1337417367.23493715512"}
On a free plan, every record additionally carries _mock: true and an _notice upgrade message.
Field notes
price: current sale price.originalPrice: listed price before discount.nullwhen not on sale.discountPercent: integer percent off as reported by Shopee, with a computed fallback.nullwhen not on sale.isOnSale: boolean.trueonly whenoriginalPrice > price.priceMin/priceMax: only set when the listing has a price range across variants; otherwisenull.stock: exact stock quantity. Almost alwaysnullbecause Shopee redacts the numeric quantity on public PDP responses (the field is stripped server-side for non-logged-in access; every*_stockfield returns null). UseinStockfor availability instead.inStock: boolean availability signal Shopee still exposes (true= at least one variant is buyable,false= sold out,null= unknown). This is the reliable replacement for a stock count.models[]: each variant/SKU with its ownprice,inStock(boolean),stock(usually null, see above) and image when available.images[]: full gallery, not just the thumbnail. Usually 4โ10 images.videoUrl: first promotional video URL when the listing has one.recentReviews: only whenincludeReviews=true. Reviews sorted newest-first, up toreviewsLimit. Each hasdate,rating,author,comment,images[](photo URLs), andvideos[]. Each video is{ url, cover, durationMs }whereurlis the direct .mp4,coverthe thumbnail, anddurationMsthe length in milliseconds.videosis[]when the review has no video attached.reviewsLast30Days,newestReviewDate,oldestReviewDate,reviewsAccessible,reviewsComplete: review-velocity fields (only withincludeReviews=true).reviewsLast30Daysis exact whenreviewsCompleteistrue(Shopee exposed every review of the item). Shopee's review API caps at a few hundred reviews per item, so for very high-volume products it is a lower bound andreviewsCompleteisfalse.reviewCount: real, all-time total number of reviews.historicalSold: the exact all-time sold count. Almost alwaysnull: Shopee withholds the sold figure from automated/non-logged-in requests (both the number and its display string are stripped server-side).historicalSoldEstimated: an estimated sold-volume bracket for the product ("10k+","5k+","1k+", ... down to"<100"for low-volume items). Since Shopee hides the exact figure, use this as a dependable volume band. Always populated.shopRating,shopFollowerCount,shopResponseRate,shopResponseTime: seller profile signals.
Pricing
This actor is billed per dataset item returned. One URL processed successfully = one billed record. URLs that fail to scrape (404, removed listing, captcha) emit an error record and are not billed as a product.
How fast?
Each product takes roughly 8โ15 seconds (one PDP navigation + payload capture). 100 URLs โ 15โ20 minutes. Reviews add ~1 second per product when includeReviews=true.
Companion actor
Need to find products by keyword, category or shop instead of scraping a known URL? Use Shopee Scraper.
Limitations
- Shopee may rate-limit aggressive runs. The actor retries the backend connection up to 3 times before failing.
- Some seller fields (
shopResponseRate,shopResponseTime) arenullwhen Shopee doesn't expose them for that shop. historicalSoldandstockare redacted by Shopee for automated traffic and come backnull. This is inherent to Shopee, not a bug. UsehistoricalSoldEstimated(volume bracket) andinStock(boolean) as the available substitutes.
Support
If you hit an issue, open an issue on the Apify Store. Include the input URL, the run ID and the error message.
If this actor helped you, please leave a review on the Apify Store. ๐
