TikTok Shop Scraper | $10 per 1,000 products
Pricing
from $7.80 / 1,000 product scrapeds
TikTok Shop Scraper | $10 per 1,000 products
[$10 / 1K] TikTok Shop products with the real published units-sold count, rating, review count, discount, variants, seller stats and the creator video bound to the card. Scrape by keyword, category or shop. No proxy setup, no captcha, no start fee.
Pricing
from $7.80 / 1,000 product scrapeds
Rating
0.0
(0)
Developer
WebData Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
TikTok Shop Scraper
Scrape TikTok Shop products into typed rows: the units-sold count TikTok publishes itself, rating, review count, real discount, variant price range, seller stats, and the creator video the product card is bound to.
TikTok Shop answers a "Security Check" page to almost everything, which is why so many TikTok Shop scrapers either fail a quarter of their runs or hand back a thin card: a title, a price string, and nothing you can rank a niche with. This Actor returns the fields that make a product decision: soldCount as TikTok publishes it, price / originalPrice / discountPercent as separate numbers, the shop's rating, follower count and total units sold, and - on the products that have one - the TikTok video driving the sales, with its creator, play count and like count.
✅ What you get / ❌ what this isn't
| ✅ What you get | ❌ What this isn't |
|---|---|
soldCount straight off TikTok's own card | Not a "GMV estimate" from a model nobody can check |
price, originalPrice, discountPercent as separate numbers | Not one string with a currency symbol glued to it |
| The bound TikTok video: creator, plays, likes, video URL | Not a product row that hides which creator is actually selling it |
| Shop rating, followers, total units sold, product count | Not a shopName string and nothing else about the seller |
| Keywords, categories and shop pages in one run, deduplicated | Not one keyword per run, billing you twice for shared products |
| Rows streamed and charged as each page is parsed | Not a run that buffers everything and delivers nothing if it times out |
| An honest 25-30 products per keyword page, documented | Not a promise of thousands of rows from a source that serves one screen |
🔎 Why use this Actor
- Sold count is measured, not modelled. TikTok prints the units-sold number on the product card and this Actor passes it through untouched. Nothing here is inferred, smoothed or estimated, and where TikTok has no number the field is null rather than guessed.
- The creator link is a field, not a footnote. About a quarter of product cards are bound to a TikTok video. Those rows carry
creatorName,creatorId,videoUrl,videoPlayCountandvideoLikeCount, which is how you find the creator whose video is moving a product. - Three sources, one row shape. Scrape by keyword, by category page, or by shop page, in any mix, in one run. Every source produces the same columns, deduplicated on product id across all of them.
- Keyword resolution that survives real phrasing. TikTok Shop keyword pages are pre-generated, so
/k/electric-toothbrushis a 404 while/k/electric-toothbrushesis a full page. The Actor walks plural, singular and trimmed spellings until one resolves, and tells you in the run summary which spelling it used. - Related-search crawling for volume. A keyword page serves one screen and does not paginate, so Follow related searches ships on at level 1: one starting keyword becomes the nine keyword pages TikTok itself links from it. The walk stops the moment a level adds no product you do not already have, so you never pay for a lap that returns nothing new.
- Shop economics on every shop-page row. A shop target attaches the seller's rating, follower count, review count, listed-product count and lifetime units sold to each of its products.
- Streamed delivery. Every row is pushed and charged the moment its page is parsed, so an aborted or timed-out run still leaves you with everything collected up to that point.
👥 Who it's for
TikTok Shop sellers, dropshippers, affiliate and creator-marketing teams, and marketplace analysts who need a niche's real demand and competition picture rather than a screenshot of one screen.
- Find which products in a niche are actually selling, using published unit counts rather than review-count proxies.
- Build a shortlist of creators to approach, from the videos already selling products like yours.
- Price a new listing against the products TikTok ranks for its keyword.
- Track discount depth and flash-sale labels across a category before timing a promotion.
- Audit a competitor's shop: their full front-page catalog, their rating, and how many units they have moved.
- Feed a product-research model with a clean typed table instead of scraped strings.
Example tasks
- Scrape TikTok Shop products for any keyword
- Find the best selling products on TikTok Shop
- Find the TikTok creators selling a product
- Track TikTok Shop prices and discounts
- Scrape a TikTok Shop seller's products and stats
- Scrape TikTok Shop products by category
- Research TikTok Shop products to dropship
⚙️ How to scrape TikTok Shop products
- Open the Actor and click Try for free.
- Put one or more product terms in Keywords, for example
wireless earbuds. Each keyword returns the 25-30 products TikTok Shop ranks for it. - Optionally add Category pages (paste a
shop.tiktok.com/us/c/...URL) and Shop pages (paste ashop.tiktok.com/us/store/...URL or a bare seller id). - Set Max products (default 100,
0for no cap) so your first run stays cheap. - Optionally set a price band, a minimum units-sold or rating floor, discounted-only, or bound-video-only.
- Click Start, then read results in the run's Output tab or export CSV, JSON or Excel from the Dataset tab.
Get hundreds of products from one keyword
Follow related searches is already on at level 1, because a single keyword page serves 25-30 products and cannot be paged. At level 1 the Actor collects your keyword's page and then the roughly nine related keyword pages TikTok links from it; level 2 adds theirs. Each level is deduplicated against everything already collected, and the walk ends early as soon as a level contributes nothing new. Combine it with Max products to put a hard ceiling on the job.
📥 Input
{"searchQueries": ["wireless earbuds", "phone case"],"categoryUrls": ["https://shop.tiktok.com/us/c/headphones-earphones-accessories/601990"],"shopUrls": ["https://shop.tiktok.com/us/store/cmf-by-nothing/7495669706651568260"],"expandRelatedKeywords": 1,"maxItems": 300,"minPrice": 10,"maxPrice": 50,"minSoldCount": 100,"minRating": 4,"onSaleOnly": false,"withVideoOnly": false}
searchQueries- product keywords, or fullshop.tiktok.com/us/k/...URLs. Each resolves to one TikTok Shop keyword page.categoryUrls- category page URLs, or bare category ids. 15 products per category page.shopUrls- shop page URLs (eithershop.tiktok.comorwww.tiktok.com/shop/store/...), or bare seller ids. Up to 30 products plus the shop profile.expandRelatedKeywords- how many levels of TikTok's related-search graph to follow. Default1, maximum3. Set0for exactly the keywords you listed.maxItems- stop after this many unique products across every source. Default100,0means no cap.minPrice/maxPrice- price band in USD. Optional.minSoldCount- minimum published units sold. Default0.minRating- minimum score out of 5. Products with no rating yet are excluded when this is set. Default0.onSaleOnly- keep only products TikTok marks with a real original price and discount. Defaultfalse.withVideoOnly- keep only products with a bound TikTok video. Keyword sources only; category and shop pages carry no video block. Defaultfalse.
At least one of searchQueries, categoryUrls or shopUrls is required.
📤 Output
| title | price | originalPrice | discountPercent | soldCount | rating | shopName | creatorName |
|---|---|---|---|---|---|---|---|
| Orange Neckband Wireless Earbuds, IPX4 Sweatproof | 17.99 | 25.00 | 28.0 | 1589 | 4.7 | AuraWear | AuraWear |
| CMF Buds 2a Wireless Bluetooth Earbuds, 42 dB ANC | 49.00 | null | null | 12043 | 4.8 | CMF by Nothing | null |
| Hidden Message Coffee Mug, 11 Oz | 16.99 | null | null | 855 | 4.9 | COOOOOS | Ninja Fam Bam |
Each row also carries productId, url (the canonical product page), imageUrl, currency, onSale, priceIsFrom (true when TikTok shows a "From" price because variants differ), dealLabel (Flash sale, Limited time deal and similar), reviewCount, brandName, variantCount, variantPriceMin, variantPriceMax, sellerId and shopUrl. Rows with a bound video add videoId, videoUrl, videoTitle, videoCoverUrl, videoPlayCount, videoLikeCount, videoDurationSeconds, creatorId, creatorName and creatorUrl. Rows from a shop target add shopRating, shopSoldCount, shopReviewCount, shopFollowerCount, shopVideoCount, shopProductCount, shopLabel, shopIsOfficial and shopPageUrl. Provenance is on every row as sourceType, source, sourceUrl, position and scrapedAt.
The run summary in the key-value store's OUTPUT record lists the keyword spellings that resolved, how many rows the filters removed, how many pages were fetched, and any keyword TikTok has no page for.
💵 How much does it cost?
You pay per unique product row delivered, not per page scanned. A product that appears under three of your keywords is returned once and charged once, and rows removed by your filters are never charged. The default 100-product run takes about 23 seconds and ten page fetches. A keyword page returns 25-30 products, a category page 15, and a shop page up to 30, so budget by counting your targets - or leave Follow related searches on and let Max products be the ceiling. Max products is the one setting that bounds the bill, so set it before a big job.
🔁 Run it on the Apify platform
Schedule this Actor to re-scrape a niche daily or weekly and diff the results to watch prices, discounts and sold counts move. Every run is available through the Apify API and can export to CSV, JSON, Excel or XML, or push straight into Make, Zapier, Google Sheets, Airtable or your own webhook. Saved Tasks let you keep one configured job per niche and run them all on one schedule.
⚠️ Limits and caveats
- US storefront only. TikTok Shop's web storefront serves the US market from a US exit and challenges every other exit country we tested (GB, DE, SG, BR). Indonesia redirects to Tokopedia, a different site with a different contract. The Actor pins a US exit and returns US listings in USD.
- One screen per page, by design of the source. A keyword page serves 25-30 products, a category page 15, a shop page up to 30, and TikTok Shop has no working pagination on any of them: every load-more call its own page makes returns an empty success unless it carries a signature computed inside the page, and every URL page parameter is ignored. Volume comes from more targets or from Follow related searches, not from deeper paging. Nobody can hand you page 2 of a TikTok Shop keyword; be sceptical of an Actor that claims otherwise.
- Keyword pages are pre-generated, so some phrases have none. The Actor tries the plural, singular and trimmed spellings of your phrase before giving up, which resolved 25 of 25 natural buyer keywords in testing. Very long or very rare phrases can still have no page at all; those are reported in the run summary rather than silently returning zero.
- No per-product detail page. TikTok Shop's product detail pages stay behind the captcha for every client, so full descriptions, per-product review text, shipping detail and live stock are not available and are not offered here. Everything this Actor returns comes from listing surfaces.
- The bound video only exists on keyword pages. Roughly a quarter of keyword-page products carry one. Category and shop pages never carry the video block at all, so Products with a bound TikTok video only empties those two sources; the run warns you when you combine them. Where TikTok exposes no video, the creator fields are null rather than invented.
- Sold count is a published lifetime figure, not a rate. TikTok shows total units sold for the listing, not units in the last 30 days. To get a rate, schedule the Actor and diff two runs.
- No live stock. TikTok Shop's listing surfaces do not carry a stock number, so this Actor does not report one.
🧩 Related Actors
- TikTok Ads Library Scraper - see which TikTok ads a brand is running, alongside the products they sell here.
- TikTok Hashtag Trends Scraper - find the hashtags rising around a niche before scraping its products.
- TikTok Comments Scraper - pull the comment thread under a product's bound video to read real buyer objections.
- TikTok Creative Center Ad Intelligence - the paid-creative side of the same market.
- Shopee Scraper - the same product-research job on Southeast Asia's largest marketplace.
❓ FAQ
Am I charged for products that my filters remove? No. Filters are applied before anything is pushed, and you are charged per delivered row only. The run summary reports how many rows the filters removed.
Can I get more than 30 products for a keyword? Not from that one keyword page - TikTok serves one screen and offers no working pagination. Use Follow related searches to collect the neighbouring keyword pages, or list more keywords.
Which countries does it cover? The US storefront only. That is TikTok Shop's own limit on the web surface, not ours.
Is soldCount an estimate? No. It is the number TikTok publishes on the product card. Where TikTok publishes none, the field is null.
Do I get product reviews? No. Review text lives on the product detail page, which TikTok keeps behind its captcha for every client. You get rating and reviewCount on every row.
Do I need to configure a proxy? No. The Actor selects the exit it needs and rotates it if TikTok challenges a request.
🛠️ Support
Something wrong? Open an issue on the Actor's Issues tab with the run URL, the input you used, and what you expected instead. That is the fastest path to a fix.
⭐ Rate this Actor
If this saved you an afternoon, please leave a review on the Reviews tab. Review count is the main trust signal buyers use on the Apify Store, and it decides what gets built and improved next. If something is broken or missing, please open an issue first so it can be fixed - that helps far more than a low rating with no detail.