TikTok Shop Scraper: Products, Best Sellers, Reviews, US & Asia avatar

TikTok Shop Scraper: Products, Best Sellers, Reviews, US & Asia

Pricing

from $12.00 / 1,000 products

Go to Apify Store
TikTok Shop Scraper: Products, Best Sellers, Reviews, US & Asia

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

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

45

Total users

32

Monthly active users

6 days ago

Last modified

Share

TikTok Shop Scraper — Products, SKUs, Reviews, Shops & Creators

TikTok Shop Scraper

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 giveYou get back
protein powderThe search results, about 30 a page, each fully detailed
https://www.tiktok.com/view/product/1732282041767727408Exactly one row for that product
https://www.tiktok.com/shop/store/equip/7494352588342396208The store's whole catalogue
@creatorEvery product in that creator's showcase
https://www.tiktok.com/shop/c/health/700645The 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 ERRORS record 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 rowsOne 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 explanationA 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 resultsUp to 2,000 products per keyword (maxProductsPerKeyword).
returns 5 reviews per productUp to 200 per product (maxReviewsPerProduct), with verified-purchase and incentivised flags.
sells weekly sales as a separate toolincludeSalesTrend adds weekly units sold, units per day and growth to the same rows, from a daily history of every product.
can't read share linksvt.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

How it works

  1. Your keywords, product URLs, store URLs and creator handles are turned into a list of products, de-duplicated across all four.
  2. 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.
  3. With Include reviews on, reviews are paged in 10 at a time up to your cap, with verified-purchase and incentivised flags.
  4. One row per product is written to the dataset. Anything unreadable goes to ERRORS instead — 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

FieldTypeNotes
keywordsarraySearch like a shopper, about 30 products per page. Reads the US shop, or the UK shop when region is GB.
productUrlsarrayProduct URLs, /shop/pdp/… links, bare ids, or share links (vt.tiktok.com/…).
shopUrlsarrayStore URLs in either www.tiktok.com/shop/store/… or shop.tiktok.com/…/store/… form.
creatorHandlesarray@handle or a profile link: the creator's product showcase (US shop).
categoryUrlsarrayCategory links, e.g. https://www.tiktok.com/shop/c/health/700645. 15 products per category page, then down through its subcategories. US shop.
regionstringDefault 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 / maxBestSellersboolean / integerThe current best sellers of the region, ranked (bestSellerRank). Indonesia, Malaysia, the Philippines, Singapore, Thailand, Vietnam, Japan and Mexico. Default 40.
includeDetailsbooleanDefault true. Off = lighter listing rows only.
includeReviewsbooleanDefault false.
maxReviewsPerProductintegerDefault 30.
includeSalesTrendbooleanDefault false. Adds weekly units sold, units per day and growth from our daily history. Charged per product only when it has history.
trendLookbackDaysintegerDefault 7 (weekly sales). How far back the trend compares.
maxProductsPerKeyword / maxProductsPerShop / maxProductsPerCreator / maxProductsPerCategoryintegerDepth per input.
maxItemsintegerCap 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

FieldDescription
price / priceMaxLowest and highest current SKU price. priceDisplay is TikTok's own string.
soldCountLifetime 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.
availableOn sale with stock left across its SKUs.
specifications[]The seller's specifications as { name, value } pairs: brand, material, origin and so on.
shippingFee / freeShippingShipping cost of the default delivery option, and whether it is free. deliveryMinDays / deliveryMaxDays give the delivery estimate.
categoryUrlLink 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.
shopThe seller's storefront stats.
searchRankKeyword rows: the product's place in TikTok Shop's search results for that keyword (1 = first).
unitsSoldInWindowWith includeSalesTrend: units sold over the trend window, so weekly sales at the default 7 days. unitsSoldPerDay and salesGrowthPercent come with it.
trendWindowDaysDays 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.
sourceWhich 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 (reason region_not_supported or not_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.
  • estimatedLifetimeRevenue values 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; maxReviewsPerProduct bounds 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.

  • 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; with includeSalesTrend also unitsSoldInWindow, unitsSoldPerDay, salesGrowthPercent, trendWindowDays, firstSeenAt.
  • Billing: per product row; maxItems bounds cost. Reviews add requests but not charges. The sales trend is charged per row that carries trend figures.
  • Errors: read the run's ERRORS key-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.