TikTok Shop Scraper: Products, Best Sellers, Reviews, US & Asia
Pricing
from $12.00 / 1,000 products
TikTok Shop Scraper: Products, Best Sellers, Reviews, US & Asia
Scrape TikTok Shop in the US, UK and South-East Asia: search by keyword, or read products, stores, creator showcases, categories and best sellers. Every SKU with stock and price for US products; price, sold count, rating and verified-purchase reviews in 10 markets. No login, no cookies.
Pricing
from $12.00 / 1,000 products
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
45
Total users
32
Monthly active users
6 days ago
Last modified
Categories
Share
TikTok Shop Scraper — Products, SKUs, Reviews, Shops & Creators
Everything on a TikTok Shop product page, as data. Search by keyword, paste product URLs, read a whole store or category, or see what a creator is selling — and get back one row per product with every SKU and its stock, price and discount, lifetime units sold, rating, images, categories, the shop's stats, the videos that are selling it, and optionally the customer reviews with verified-purchase flags.
No login. No cookies. No proxy to configure. Product data for the US shop, UK keyword search, and store catalogues from other markets. Press Start.
| You give | You get back |
|---|---|
protein powder | The search results, about 30 a page, each fully detailed |
https://www.tiktok.com/view/product/1732282041767727408 | Exactly one row for that product |
https://www.tiktok.com/shop/store/equip/7494352588342396208 | The store's whole catalogue |
@creator | Every product in that creator's showcase |
https://www.tiktok.com/shop/c/health/700645 | The category's top products, then its subcategories' |
Why use it
- Every SKU, with stock. A protein powder with 17 flavours comes back as 17 SKUs, each with its own price, stock level and attributes — not one averaged row.
- The videos selling the product. Up to 20 related videos per product with author, plays, likes and upload date. See which creators move it.
- Reviews that mean something. Rating, text, date, country, photos, the SKU bought, and whether it was a verified purchase or an incentivised review.
- Shop stats in every row. Seller rating, review count, units sold, product count, followers and video count.
- A single URL returns a single row. No padding, no surprise charges — one product, one result, one charge.
- Never silent. A product that can't be read is listed in the run's
ERRORSrecord with the reason, and is not billed. A run that finds nothing says why in its status message.
Coming from another TikTok Shop scraper?
| If your current scraper… | Here |
|---|---|
| bills for padding rows or error rows | One product URL returns one row. Products that can't be read go to the ERRORS record and are never billed. |
| comes back empty with no explanation | A run that finds nothing ends with a status message saying why and what to change. A run with gaps says what it left out. |
| stops at 10 search results | Up to 2,000 products per keyword (maxProductsPerKeyword). |
| returns 5 reviews per product | Up to 200 per product (maxReviewsPerProduct), with verified-purchase and incentivised flags. |
| sells weekly sales as a separate tool | includeSalesTrend adds weekly units sold, units per day and growth to the same rows, from a daily history of every product. |
| can't read share links | vt.tiktok.com and vm.tiktok.com links are followed to the product, store or creator they open. |
Not here yet: product details outside the US, and keyword search outside the US and UK (Brazil, France and the rest). UK search results and store catalogues from other markets come back as listing rows: price, units sold, rating and seller, without SKUs or stock.
How it works
- Your keywords, product URLs, store URLs and creator handles are turned into a list of products, de-duplicated across all four.
- With Full product details on (default), every product is read from its own page: SKUs, stock, price interval, sold count, rating, images, categories, seller, shop, related videos.
- With Include reviews on, reviews are paged in 10 at a time up to your cap, with verified-purchase and incentivised flags.
- One row per product is written to the dataset. Anything unreadable goes to
ERRORSinstead — you see it, you don't pay for it.
Data is read through a stable commerce data provider rather than TikTok's web pages, so there is no captcha wall, no login and nothing to configure.
⬇️ Input
| Field | Type | Notes |
|---|---|---|
keywords | array | Search like a shopper, about 30 products per page. Reads the US shop, or the UK shop when region is GB. |
productUrls | array | Product URLs, /shop/pdp/… links, bare ids, or share links (vt.tiktok.com/…). |
shopUrls | array | Store URLs in either www.tiktok.com/shop/store/… or shop.tiktok.com/…/store/… form. |
creatorHandles | array | @handle or a profile link: the creator's product showcase (US shop). |
categoryUrls | array | Category links, e.g. https://www.tiktok.com/shop/c/health/700645. 15 products per category page, then down through its subcategories. US shop. |
region | string | Default US. GB switches keyword search to the UK shop. MY, PH, SG, TH and VN search the local shop; those five plus ID, JP and MX also read category links, best sellers and reviews from the local shop. Set a store's market here to read a non-US store's catalogue. Full product details and creator showcases are US only, so non-US products come back as listing rows (detailed: false). |
includeBestSellers / maxBestSellers | boolean / integer | The current best sellers of the region, ranked (bestSellerRank). Indonesia, Malaysia, the Philippines, Singapore, Thailand, Vietnam, Japan and Mexico. Default 40. |
includeDetails | boolean | Default true. Off = lighter listing rows only. |
includeReviews | boolean | Default false. |
maxReviewsPerProduct | integer | Default 30. |
includeSalesTrend | boolean | Default false. Adds weekly units sold, units per day and growth from our daily history. Charged per product only when it has history. |
trendLookbackDays | integer | Default 7 (weekly sales). How far back the trend compares. |
maxProductsPerKeyword / maxProductsPerShop / maxProductsPerCreator / maxProductsPerCategory | integer | Depth per input. |
maxItems | integer | Cap for the whole run. Default 200. |
{"keywords": ["protein powder", "led strip lights"],"productUrls": ["https://www.tiktok.com/view/product/1732282041767727408"],"shopUrls": ["https://shop.tiktok.com/us/store/equip/7494352588342396208"],"includeReviews": true,"maxReviewsPerProduct": 30,"maxItems": 200}
Output
One row per product. Real result, abridged:
{"productId": "1732282041767727408","productUrl": "https://www.tiktok.com/view/product/1732282041767727408","title": "Equip Prime Clean Protein Powder - 21g Bioavailable Complete Protein","price": 51.99, "priceMax": 88.39, "priceDisplay": "$51.99", "currency": "USD","soldCount": 4682, "estimatedLifetimeRevenue": 243417.18,"rating": 4.4, "reviewCount": 279,"images": ["https://p16-oec-va.ibyteimg.com/…", "…"],"categories": ["Health", "Nutrition & Wellness", "Fitness Supplements"],"variantOptions": [{ "name": "Flavor", "values": ["Chocolate", "Vanilla", "Mocha", "…"] }],"skuCount": 17, "totalStock": 22481,"skus": [{ "skuId": "1732282042194039088", "price": 51.99, "currency": "USD", "stock": 9775, "attributes": { "Flavor": "Chocolate" } },{ "skuId": "1732296268139172144", "price": 51.99, "currency": "USD", "stock": 99, "attributes": { "Flavor": "Mocha" } }],"shop": { "name": "Equip", "rating": 4.5, "reviewCount": 10197, "soldCount": 7982, "productCount": 7, "followers": 2328, "videoCount": 311, "url": "https://shop.tiktok.com/us/store/equip/7494352588342396208" },"relatedVideos": [{ "url": "https://www.tiktok.com/@7105528771213886507/video/7626825545413676319", "authorName": "SOPH", "playCount": 206618, "likeCount": 21144, "uploadedAt": "2026-04-09T18:18:32.000Z", "adLabel": "Creator earns commission" }],"reviews": [{ "rating": 5, "text": "Absolutely incredible protein!…", "time": "2026-03-12T20:09:34.826Z", "country": "US", "isVerifiedPurchase": true, "isIncentivized": false, "skuSpecification": "Item: Variety Pack - 10 Servings" }],"source": { "kind": "keyword", "ref": "protein powder" },"scrapedAt": "2026-09-21T10:12:41.000Z"}
Key fields
| Field | Description |
|---|---|
price / priceMax | Lowest and highest current SKU price. priceDisplay is TikTok's own string. |
soldCount | Lifetime units sold. estimatedLifetimeRevenue is sold × current price — an estimate, named so nobody mistakes it for reported revenue. |
skus[] | Every variant with stock, price and human-readable attributes. |
available | On sale with stock left across its SKUs. |
specifications[] | The seller's specifications as { name, value } pairs: brand, material, origin and so on. |
shippingFee / freeShipping | Shipping cost of the default delivery option, and whether it is free. deliveryMinDays / deliveryMaxDays give the delivery estimate. |
categoryUrl | Link to the product's category: the category page it was found on, else its top-level category. |
relatedVideos[] | The videos selling the product, with plays and likes. |
reviews[] | Only when includeReviews is on. isVerifiedPurchase is TikTok's own flag. |
shop | The seller's storefront stats. |
searchRank | Keyword rows: the product's place in TikTok Shop's search results for that keyword (1 = first). |
unitsSoldInWindow | With includeSalesTrend: units sold over the trend window, so weekly sales at the default 7 days. unitsSoldPerDay and salesGrowthPercent come with it. |
trendWindowDays | Days the history actually covers. Shorter than the window for a product first seen recently, so a 3-day reading is never passed off as a week. |
source | Which input produced the row. |
Pricing
Pay per product. One row, one charge, however many SKUs, videos or reviews it carries. Unreadable products are not charged. With includeSalesTrend on, the trend is a separate charge per product, made only for products that come back with trend figures.
Notes & limitations
- Product details are US only. The data source refuses product details and creator showcases for every other market, and its keyword search reads correct prices only for the US and UK. A non-US product URL is listed in
ERRORS(reasonregion_not_supportedornot_found), is not billed, and the run's status message says why. A non-US store's catalogue still comes back, as listing rows. - South-East Asia, Japan and Mexico return listing rows. Keyword search works in Malaysia, the Philippines, Singapore, Thailand and Vietnam, one page of 10 to 30 products per keyword. Category links, best sellers and reviews also work in Indonesia, Japan and Mexico. Each row has title, price and original price in the local currency, discount, units sold, rating, review count and shop; SKUs, stock, description and shipping are US only.
estimatedLifetimeRevenuevalues past sales at today's price. TikTok publishes no price history.- Creator showcases are empty for creators who don't sell anything — that is a true empty, not an error.
- Reviews are paged 10 at a time;
maxReviewsPerProductbounds the extra requests per product. - A category page lists its top 15 products; TikTok loads the rest through requests its own page script signs, which this scraper does not imitate. So a category is read 15 products per page and goes deeper through its subcategories, up to 40 pages per category link.
FAQ
Do I need a TikTok account or cookies? No.
Can I read one product only? Yes — one URL in productUrls returns exactly one row.
Why does a product have several prices? Because its SKUs differ. price is the lowest, priceMax the highest, and every SKU carries its own.
What's in ERRORS? Any product that could not be read, with a reason (region_not_supported, not_found, bad_link or failed) and the source's own message. It's a key-value record on the run, so nothing fails silently and nothing unreadable is billed.
Why did my run return 0 products? The run's status message (on the run page, and statusMessage in the API) says why: no input, a maximum cost too small for one product, nothing matched, or products outside the US. Those runs finish as succeeded. A failed run means the data source could not be reached or answered in an unexpected shape; it is safe to retry.
Can I get units sold per day and growth? Yes: turn on includeSalesTrend. TikTok only publishes the lifetime soldCount, so every run records each product's count once a day, and the trend is the difference between today's count and the oldest one inside trendLookbackDays. A product seen for the first time has no history yet: its trend fields stay empty, it is not charged for them, and a run on a later day has them. The history is shared with the TikTok Shop Sales Scraper.
Related
- TikTok Shop Sales Scraper — keyword search ranked by units sold, with sales trend (units/day, growth %) from a daily product history.
🤖 For AI Agents & LLM Apps
- Purpose: turn TikTok Shop keywords, product URLs, store URLs or creator handles into structured product records with SKUs, stock, sales, reviews and selling videos.
- Minimal input:
{ "keywords": ["protein powder"] }— no auth. - Output fields:
productId, productUrl, title, description, price, priceMax, priceDisplay, originalPrice, discount, currency, soldCount, estimatedLifetimeRevenue, rating, reviewCount, images[], categories[], variantOptions[], skus[], skuCount, totalStock, seller, shop, relatedVideos[], reviews[], shipsFrom, labels[], available, specifications[], shippingFee, freeShipping, deliveryMinDays, deliveryMaxDays, categoryUrl, saleRegion, searchRank, bestSellerRank, source, scrapedAt; withincludeSalesTrendalsounitsSoldInWindow, unitsSoldPerDay, salesGrowthPercent, trendWindowDays, firstSeenAt. - Billing: per product row;
maxItemsbounds cost. Reviews add requests but not charges. The sales trend is charged per row that carries trend figures. - Errors: read the run's
ERRORSkey-value record for products that could not be fetched. - Empty runs: finish SUCCEEDED with the reason in
statusMessage. FAILED means the data source was unreachable or changed; retry later.
⚠️ Disclaimer
This Actor collects only publicly visible TikTok Shop product information, without logging in or bypassing any access control. Use it in compliance with TikTok's Terms of Service and applicable law, including data-protection rules. You are responsible for how you use the data. This tool is not affiliated with or endorsed by TikTok or ByteDance Ltd.
SEO Keywords
TikTok Shop scraper, scrape TikTok Shop products, TikTok Shop product data, TikTok Shop API, TikTok Shop reviews scraper, TikTok Shop SKU stock, TikTok Shop sold count, TikTok Shop store scraper, TikTok Shop creator showcase, TikTok affiliate products, TikTok Shop search, TikTok ecommerce data, TikTok product research, TikTok Shop price tracking, TikTok Shop analytics.