
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Scrape Lazada products from Singapore, Malaysia, Philippines, Thailand, Vietnam and Indonesia: prices, discounts, ratings, reviews, sold counts, sellers, images, descriptions and variants, by keyword, category, shop or product URL.
Scrape Lazada products from Singapore, Malaysia, the Philippines, Thailand, Vietnam and Indonesia. Search by keyword or paste category, shop or product URLs, and get clean rows with price, discount, rating, review count, sold count, seller, location, images and more. Turn on details and reviews for descriptions, image galleries, variants, review tags and the newest customer reviews. No login needed.
| Field | What it does |
|---|---|
keywords | Product searches on the site picked in country. |
startUrls | Lazada search, category, shop or product URLs from any of the six sites. |
country | sg, my, ph, th, vn or id (keyword searches only). |
maxResults | Max products per keyword or URL (default 20). |
sort | best, priceasc or pricedesc. |
minPrice / maxPrice | Price range in the site's currency. |
minRating | 1 to 5: only products rated at least that many stars. |
includeDetails | Open each product page for description, gallery, videos, categories and variants. |
includeReviews / maxReviews | Add review tags and up to maxReviews reviews per product. |
{
"keywords": ["wireless earbuds"],
"country": "my",
"maxResults": 100,
"sort": "best",
"minRating": "4",
"includeReviews": true,
"maxReviews": 10
}
| Field | Description |
|---|---|
itemId, skuId | Lazada product and SKU ids |
title, url, image, images | Product name, link and pictures |
price, priceText, originalPrice, discount, discountPercent, currency | Current price, list price and discount |
rating, reviewCount, soldCount, soldText | Stars, number of ratings and units sold |
sellerName, sellerId, location, brand, brandId | Who sells it and from where |
isLazMall, freeShipping, isSponsored, inStock, badges | Listing flags |
categoryIds, country, domain, searchQuery, sourceUrl, page, position, scrapedAt | Context |
description, descriptionHtml, descriptionImages, galleryImages, videos, category, categoryPath, brandUrl, variants, variantProperties | With product details on |
reviewTotal, reviewTags, reviews | With reviews on: total reviews, Lazada's review tags ("Nice sound", "Arrived early"...) and the newest reviews |
Example row (shortened, sample values):
{
"itemId": "4694175726",
"skuId": "26309876611",
"title": "HUAWEI FreeBuds SE 4 ANC Earbuds",
"url": "https://www.lazada.com.my/products/pdp-i4694175726.html",
"price": 149.0,
"priceText": "RM149.00",
"originalPrice": 249.0,
"discount": "40% Off",
"discountPercent": 40,
"currency": "MYR",
"rating": 4.97,
"reviewCount": 1409,
"soldCount": 3600,
"soldText": "3.6K sold",
"sellerName": "HUAWEI",
"location": "Selangor",
"brand": "HUAWEI",
"isLazMall": true,
"inStock": true,
"country": "MY",
"searchQuery": "wireless earbuds",
"page": 1,
"position": 1,
"reviews": [
{
"reviewId": "470000000000001",
"rating": 5,
"content": "Battery Life: lasts the whole day. Sound Quality: clear calls.",
"reviewTime": "3 weeks ago",
"buyerName": "A***n",
"variant": "Color Family:Black",
"likeCount": 2,
"images": [],
"sellerReply": null
}
]
}
You pay $1.25 per 1,000 products ($0.00125 per product), plus the platform usage of the run (compute and proxy traffic), which is shown on every run.
Is it legal to scrape Lazada? The actor reads public product pages that anyone can open without an account. Check Lazada's terms and your local laws for your use case, and don't collect personal data you have no reason to keep.
Do I need a Lazada account or a proxy? No. The actor uses its own browser in the right country for each site.
How many products can I get? Lazada shows about 4,000 products (102 pages) per search or category. Use several keywords, price ranges or category URLs to go beyond that.
Why is a field empty? Lazada doesn't show every field for every product: new products have no rating, some have no list price or sold count. Product URLs give fewer listing fields (no sold count or location) than search results.
Can I schedule it or call it from code? Yes. Save your input as a task, schedule it, and read the dataset through the API in JSON, CSV or Excel.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
keywordsarrayOptionalSearch keywords
Product keywords to search on the Lazada site picked in Country. Each keyword is its own search.
startUrlsarrayOptionalLazada URLs
Lazada search, category, shop or product page URLs from any of the six sites (lazada.sg, .com.my, .com.ph, .co.th, .vn, .co.id). Each URL uses its own site.
countryenumOptionaldefault "sg"Country
Lazada site used for keyword searches. URLs always use the site they point to.
maxResultsintegerOptionaldefault 20Max products per keyword or URL
Stop after this many products for each keyword or listing URL. Lazada shows up to about 4,000 products per search.
sortenumOptionaldefault "best"Sort by
Order of search and listing results.
minPricenumberOptionalMinimum price
Only products at or above this price, in the site's currency.
maxPricenumberOptionalMaximum price
Only products at or below this price, in the site's currency.
minRatingenumOptionalMinimum rating
Only products rated at least this many stars.
includeDetailsbooleanOptionaldefault falseInclude product details
Open each product page for the description, full image gallery, videos, category names and variants. Slower: about 1 to 2 seconds per product.
includeReviewsbooleanOptionaldefault falseInclude reviews
Add the newest customer reviews, the total review count and Lazada's review tags to each product. Reviews load 5 at a time, so large numbers make runs slower.
maxReviewsintegerOptionaldefault 10Max reviews per product
How many reviews to add to each product when reviews are on. Reviews are stored inside the product row, so a product keeps at most about 8 MB of reviews.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy configuration
Lazada only answers visitors from the same country, so platform proxy exits always use the country of the Lazada site. Residential works best.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| image | any | Image |
| title | any | Product |
| url | any | Link |
| price | any | Price |
| currency | any | Currency |
| originalPrice | any | Original price |
| discount | any | Discount |
| rating | any | Rating |
| reviewCount | any | Reviews |
| soldCount | any | Sold |
| sellerName | any | Seller |
| location | any | Location |
| brand | any | Brand |
| isLazMall | any | LazMall |
| inStock | any | In stock |
| country | any | Country |
| searchQuery | any | Keyword |
| itemId | any | Item ID |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Product | One Lazada product saved to the dataset (details and reviews included). | $0.0013 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/lazada-scraper').call({
"keywords": [
"wireless earbuds"
],
"country": "sg",
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/lazada-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=shelfbright/lazada-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Keyword search on Lazada Singapore.
Product details and reviews from Lazada Malaysia.
Results from a pasted Lazada catalog link.
Keyword search limited to a 400 to 420 SGD price range.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.