TikTok Shop Scraper - Products, Sales & Sellers avatar

TikTok Shop Scraper - Products, Sales & Sellers

Pricing

from $7.00 / 1,000 product scrapeds

Go to Apify Store
TikTok Shop Scraper - Products, Sales & Sellers

TikTok Shop Scraper - Products, Sales & Sellers

Scrape TikTok Shop by category, product URL or shop (US) and get prices, cumulative units sold, revenue estimates, ratings and images. Product and Shop modes add full seller data; Product mode also returns SKU variants and recent review texts. For dropshippers, sellers and agencies.

Pricing

from $7.00 / 1,000 product scrapeds

Rating

1.1

(2)

Developer

WebDataLabs

WebDataLabs

Maintained by Community

Actor stats

9

Bookmarked

289

Total users

30

Monthly active users

2 days ago

Last modified

Share

Scrape TikTok Shop by category, product URL, or shop and get pricing, units sold, ratings, review counts, images, and full seller data (shop rating, product count, followers). In Product mode you additionally get every SKU with its price, stock level and attributes plus the recent review bodies. The all-in-one TikTok Shop scraper and product-research tool for dropshippers, sellers, and agencies. Export to CSV, JSON, Excel, or Google Sheets.

Apify Actor Maintained License: MIT

What can you do with this TikTok Shop scraper?

  • Product research & winning-product discovery — browse any category and surface best-selling products by units sold
  • Competitor & shop monitoring — pull a seller's full catalog, ratings, and follower count
  • Price & inventory tracking — prices, discounts, and (Product mode) SKU-level variants with real stock levels for dropshipping or reselling
  • Sales sizing — cumulative units sold + lifetime revenue estimate on every product
  • Market & category analysis — map pricing and demand across any TikTok Shop category
  • Automation — feed TikTok Shop data into n8n, Make, Zapier, or Google Sheets

Three ways to scrape

ModeYou provideBest for
CategoryCategory slug/id or URLWinning-product discovery & market research
ProductProduct URLsDeep data on specific products — the only mode with SKU variants, stock and review bodies
ShopStore URLsCompetitor catalog & shop-level stats

What data do you get?

Every product record includes:

  • productId, productTitle, productUrl — identity
  • currentPrice, originalPrice, discount, currency — pricing
  • soldCount — cumulative units sold since launch
  • estimatedRevenue — lifetime revenue estimate (soldCount × price)
  • rating, reviewCount — ratings
  • images — product image URLs
  • shopName, shop — seller name + full shop object (rating, total products, follower count, store URL)
  • scrapedAt — ISO timestamp

Product mode only — three extra keys, because TikTok publishes this data on the product page and nowhere else:

  • variants — every SKU with its name ("White / US5.5"), price, stock and attributes
  • stock — total units available across all SKUs (a real 0 means sold out)
  • reviews — the recent reviews TikTok renders on the page (~3), each with rating, text, author (masked by TikTok), ISO date and photo URLs

In Category and Shop mode these three keys are not present in the record at all — TikTok's listing pages carry no SKU, inventory or review-body data, and shipping an empty array would falsely claim the product has none. reviewCount and rating are available in every mode.

Anything TikTok does not publish comes back as null, never a filler value. In Category mode the shop object only carries shopId and shopName (TikTok's category feed does not include seller stats); the remaining seller fields are null there and populated in Product and Shop modes.

Quick start

  1. Choose a mode (start with Category).
  2. Enter your input — e.g. category beauty-personal-care/601450 — and set Max results.
  3. Set the run timeout to at least 600 seconds (see below — short timeouts cannot succeed).
  4. Run it, then download CSV/JSON/Excel or push to Google Sheets / n8n / Zapier.

Finding a category id

A category is a slug plus a number, e.g. beauty-personal-care/601450. The number is what TikTok actually resolves — a made-up number returns an empty page, not an error, so don't guess it. Open https://shop.tiktok.com/us/c, click into any category, and copy the last two parts of the address bar. Known-working examples: beauty-personal-care/601450, women-s-shoes/900488, shoes/601352.

If a category you enter returns nothing, the run fails with a message naming that exact input rather than reporting a green run with an empty dataset.

Run timeout

Getting past TikTok's verification challenge takes 30–240 seconds before the first product page even loads. A 120-second run timeout can therefore never succeed. Use 600 s or more. The actor prints a warning at startup if the timeout is under 300 s.

Input

FieldDescription
modecategory | product | shop
categoryUrlsCategory URL or slug/id shorthand, e.g. beauty-personal-care/601450 (Category mode)
productUrlsProduct URLs (Product mode)
shopUrlsStore URLs (Shop mode)
maxResultsTotal products for the whole run (1–2000), shared evenly between the inputs you entered. Two categories with maxResults: 40 gives you ~20 from each, 40 in total. maxItems is accepted as an alias and wins if you set both.
proxyConfigurationUS residential proxies (required; default is correct)

Output example

{
"productId": "1730986220018765913",
"productTitle": "Advanced Hair Density Roll-On Serum",
"productUrl": "https://shop.tiktok.com/us/pdp/.../1730986220018765913",
"region": "US",
"currentPrice": 30,
"originalPrice": 45,
"discount": 33,
"currency": "USD",
"soldCount": 477547,
"estimatedRevenue": 14326410,
"rating": 4.2,
"reviewCount": 19254,
"images": ["https://..."],
"shopName": "RootLabs",
"shop": { "shopId": "...", "shopName": "RootLabs", "shopUrl": "https://shop.tiktok.com/us/store/rootlabs/...", "rating": 4.4, "totalProducts": 18, "followerCount": 65074 },
"scrapedAt": "2026-06-30T10:00:00.000Z"
}

In Product mode the same record additionally carries:

{
"stock": 195,
"variants": [
{ "skuId": "1732416676642460223", "name": "White / US5.5", "price": 14.67, "stock": 7, "attributes": { "Color": "White", "Size": "US5.5" } },
{ "skuId": "1732416676642525759", "name": "White / US6", "price": 14.67, "stock": 5, "attributes": { "Color": "White", "Size": "US6" } }
],
"reviews": [
{ "reviewId": "7660230607552677645", "rating": 5, "text": "Works exactly as described.", "author": "m**i", "date": "2026-07-08T12:07:06.700Z", "images": [] }
]
}

TikTok shows cumulative units sold, not a monthly figure — so monthly sales can't be derived from a single run. This actor can compute estimatedMonthlySales + trendingScore from the change in units sold across scheduled repeat runs (it stores snapshots and diffs them). These fields are omitted until enough history exists, so your normal one-off output stays clean.

This is an advanced feature: it requires running the actor with full permissions (so it can persist its cross-run snapshot store) and on a schedule (daily/weekly). Without that, you still get everything above — products, prices, units sold, lifetime revenue, ratings, review counts, and full seller data.

Pricing

Pay-per-event: a small per-run start fee plus a charge per product scraped — that's it. Transparent and predictable; no subscription.

Reliability & proxies

TikTok Shop has strong anti-bot protection. This actor handles it for you: it warms up a verified session, solves the verification challenge, and rotates residential IPs automatically. US residential proxies are required and are the default. Warmup takes 30–240 s depending on the IP it lands on, so give runs at least a 600 s timeout.

A run never lies about what it delivered

  • Blocked end-to-end, or our parser broke → the run fails and the error says which of the two it was.
  • Every input you gave returned a real page with no products → the run fails and names each dead input.
  • Some inputs worked and some didn't → the run succeeds, and every input that returned nothing is listed in the log and in the OUTPUT record in the key-value store.
  • Fields TikTok did not publish are null — never 0, "", or "Unknown". A rating of null means "no rating yet", which is a different fact from a rating of 0.

Every run writes an OUTPUT record to the key-value store with a per-input breakdown (input, outcome, products, detail), the total actually stored, and whether the cap was hit.

FAQ

Which region? United States.

Do I need proxies? Yes — US residential. The default proxy configuration handles it.

Can I get monthly sales / trending? Yes, as an advanced feature — run with full permissions on a schedule (see "Advanced" above). A normal one-off run returns cumulative units sold + lifetime revenue instead.

Is this legal? It collects public, commercial product and shop data (not personal creator data). You are responsible for complying with TikTok's Terms of Service and applicable laws in your jurisdiction.

Can I use it with Google Sheets / n8n / Zapier / Make? Yes — export CSV/JSON/Excel or connect via Apify integrations and webhooks.

How do I get a product or shop URL? Open the product or store on shop.tiktok.com and copy the URL from your browser.

  • Etsy Scraper Pro — Etsy product & shop data
  • Reddit Scraper Pro — posts, comments & sentiment

Leave a review

Is this actor saving you time? A quick review on the Store helps other people find it — and tells us which fields to add next. Rate this actor →