TikTok Shop Scraper: Products, Prices, Sales
Pricing
from $1.80 / 1,000 result records
TikTok Shop Scraper: Products, Prices, Sales
TikTok Shop scraper using a real browser: collects public seller stores, product prices and sold counts from store, product and keyword pages. No login. License: personal use only; resale and redistribution prohibited. Created with the help of artificial intelligence.
Pricing
from $1.80 / 1,000 result records
Rating
0.0
(0)
Developer
Bon Plein Capital
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
TikTok Shop Scraper: Products, Prices & Sales Counts (Playwright)
TikTok Shop scraper that opens public TikTok Shop pages in a real Chromium browser (Playwright) and returns clean, structured records: product titles, prices, units sold, ratings and seller details. Because pages are rendered the way a visitor sees them, it handles dynamic content and lazy-loaded product lists that simple HTTP scrapers miss. Paste a seller store URL, a product URL or a keyword, and download the results as JSON, CSV or Excel, or call the Actor from the Apify API. It needs no login and no TikTok account.
What can this Actor do?
- Scrape a TikTok Shop seller store: shop name, seller ID, the public units sold counter and the number of product links found on the rendered page.
- Scrape product listings of a store or keyword page: the browser scrolls and clicks "load more" (pagination), then reads each product card for title, price, units sold and rating, with several selector strategies so that a small markup change does not break the run.
- Scrape a TikTok Shop product page: title, price, currency, rating, review count, image and description, from the page markup, the embedded JSON and the JSON the page loads.
- Search by keyword in a market (US, UK, Indonesia, Malaysia, Philippines, Singapore, Thailand, Vietnam).
- Track sales counters and prices over time: each record has a
scrapedAttimestamp, so you can schedule runs and compare them. - Fields that TikTok does not show publicly are returned as
null, never invented.
How to use it
- Click Try for free and open the Input tab.
- Add one or more TikTok Shop URLs, or keywords (or keep the prefilled store URL to see an example).
- Set the pagination depth (
scrollRounds) and the maximum number of results, then click Start. - Download the results from the Output tab, or call the Actor from the API, Make, Zapier or n8n.
If TikTok answers 403 or 429, or serves an empty page, the Actor retries once through Apify Proxy, then falls back to a plain read of the page, then skips it: you are not charged for pages that give no record. It does not log in, does not open private accounts and does not try to bypass captchas: a page that asks for a captcha is skipped.
Technical improvements (v0.2)
- Playwright and Chromium render each page like a visitor, instead of fragile raw HTTP reads.
- Pagination: infinite scroll plus "load more" clicks, stopping when no new products appear.
- Several selector strategies for product cards, combined with embedded JSON, JSON-LD and the JSON the page loads.
- Proxy handling: a direct read first, then one retry through Apify Proxy on 403/429, empty shells or timeouts.
- Reliable fields: price, currency, units sold and rating are parsed from cards, product pages and JSON, and set to
nullwhen absent. Records are deduplicated by URL. - Time budget so that runs end well inside the daily 5-minute test; captcha pages are skipped, never bypassed.
Input
{"startUrls": [{ "url": "https://shop.tiktok.com/us/store/kiki-jewelrry/8652028833300779170" }],"keywords": ["neck massager"],"country": "us","followLinks": true,"scrollRounds": 6,"maxItems": 20}
startUrls: seller store, product (/pdp/) or keyword (/k/) pages of TikTok Shop.keywords: optional list; each keyword is turned into the public keyword page of the chosencountry.followLinks: also open product pages when price or sales count is missing from the listing card.scrollRounds: how many times the browser scrolls / clicks "load more" to paginate (0 to 30).maxItems: hard limit on the number of results (and on your bill).
Output
Each result is one dataset item. Example:
{"type": "seller","url": "https://shop.tiktok.com/us/store/kiki-jewelrry/8652028833300779170","productId": null,"title": "KiKi Jewelrry","price": null,"currency": null,"soldCount": 3853,"rating": null,"reviewCount": null,"sellerName": "KiKi Jewelrry","sellerId": "8652028833300779170","imageUrl": null,"description": "Shop KiKi Jewelrry on TikTok Shop! 3853 sold, Join the trend!","productLinksFound": 0,"country": "US","scrapedAt": "2026-10-15T10:26:35+00:00"}
How much does it cost?
This Actor uses pay per event pricing: you pay a small amount for each result record, and nothing for pages that
could not be read. So 1,000 results cost the price of 1,000 result events shown in the Pricing tab, plus the
usual Apify compute units for the browser. Apify's free plan gives you monthly credits to try the Actor before you pay.
Use maxItems to cap spending.
FAQ
Is it legal to scrape TikTok Shop?
The Actor only reads public pages, like a browser would, and collects no private data. You are responsible for using the results lawfully and respecting TikTok's terms. Seller names are business names, but if your data contains personal data of individuals, the GDPR applies to you: have a lawful basis and keep only what you need.
Why a browser instead of plain requests?
TikTok Shop builds many pages with JavaScript and loads product lists while you scroll. A browser sees what a visitor sees, so listings, prices and sales counters are far more reliable than with raw HTTP requests.
Why are some fields empty?
TikTok shows different information to anonymous visitors depending on the market and the page. Missing fields are
returned as null.
Can I get reviews, followers or private analytics?
No. Only what is visible on public pages without logging in is collected.
What if something does not work?
Open an issue in the Issues tab with your input and the run link. Issues are answered as fast as possible.
Can I use it through the API?
Yes. Every run can be started and read through the Apify API and its Python and JavaScript clients.
Created with the help of artificial intelligence.