(NEW) TikTok Shop Scraper – Products, Sales, Prices & Stores
Pricing
from $2.00 / 1,000 products
(NEW) TikTok Shop Scraper – Products, Sales, Prices & Stores
Scrape TikTok Shop products, stores, categories and search in the US, UK, Singapore, Malaysia, Philippines, Thailand and Vietnam. Get price, sold count, rating, variants, stock, seller stats and reviews. No login. Pay only for products returned.
Pricing
from $2.00 / 1,000 products
Rating
0.0
(0)
Developer
Harsh Maur
Maintained by CommunityActor stats
0
Bookmarked
21
Total users
12
Monthly active users
9 hours ago
Last modified
Categories
Share
TikTok Shop Scraper: Products, Prices, Sold Counts, Stock & Sellers (No Login)
Export TikTok Shop products to JSON, CSV or Excel: price, discount, sold count, rating, variants with stock levels, shipping, seller stats and the first customer reviews. Start from a keyword, a store, a category, a product link or a bare product ID.
The scraper browses TikTok Shop the way a logged-out shopper does. You don't need a TikTok account, cookies or a Shop API key, and you don't have to set up proxies.
It works in 7 markets: the United States, United Kingdom, Singapore, Malaysia, Philippines, Thailand and Vietnam.
What can this TikTok Shop scraper do?
- Search TikTok Shop by keyword. Type "phone case" or "cat grooming" and get the matching products in the US and the Southeast Asian markets. TikTok Shop UK has no keyword search on its website, so use UK category or store links.
- Export a whole store. Paste a seller's store link and get every product in its catalogue.
- Scrape a category. Paste a category link. The scraper also walks that category's subcategories.
- Look up single products. Paste product links or 19-digit product IDs to get the full detail page for each one.
- Choose detail level. Full detail opens every product page. Card mode returns only the listing cards, which is faster and cheaper.
- Track change over time. Schedule runs and compare price, stock and
soldCountbetween them.
How to scrape TikTok Shop products
- Add TikTok Shop links to Start URLs, or keywords to Search queries. You can use both in one run.
- Pick a Market for keywords and for links that don't name a country.
- Set Max products per source to cap each keyword, store or category.
- Leave Scrape product details on for full product data, or turn it off for listing cards only.
- Click Start. Products appear in the dataset as they are scraped, and you can download them in any format Apify supports.
TikTok Shop scraper input
| Field | Type | Default | What it does |
|---|---|---|---|
startUrls | list | — | Any TikTok Shop link: product, store, category or search page, or a bare product ID |
searchQueries | list | — | Keywords to search on TikTok Shop |
market | select | us | us, gb, sg, my, ph, th or vn. Used for keywords, bare IDs and links without a country code |
maxProductsPerSource | integer | 50 | Most products to return for each keyword, store or category |
scrapeProductDetails | boolean | true | true opens each product page; false returns listing cards only |
searchSort | select | relevance | relevance, best_selling, price_low_to_high, price_high_to_low or newest |
mcpConnector | connector | — | Optional. Sends results to Slack, Notion or Google Sheets when the run ends |
Which TikTok Shop links work?
- Product pages:
https://www.tiktok.com/shop/pdp/<slug>/<id>,https://shop.tiktok.com/us/pdp/<id>and/view/product/<id>links - Store pages:
https://www.tiktok.com/shop/store/<name>/<id> - Category pages:
https://www.tiktok.com/shop/c/<name>/<id> - Search pages:
https://shop.tiktok.com/us/s?q=... - A bare 19-digit product ID, such as
1731578642912612516
When a link contains a country, such as /sg/, that market is used for it. Everything else falls back to the market setting.
Example input
{"searchQueries": ["cat nail clipper", "pet grooming glove"],"startUrls": ["https://www.tiktok.com/shop/store/potaroma-llc/7495813075786500260","1731578642912612516"],"market": "us","maxProductsPerSource": 100,"scrapeProductDetails": true,"searchSort": "best_selling"}
TikTok Shop data output
You get one dataset row per product, with dataType: "product". The detailLevel field tells you how much of the row is filled:
"full"(fromscrapeProductDetails: true): every field below, read from the product page."card"(fromscrapeProductDetails: false): the fields TikTok shows on a search, store or category card. Fields that only exist on the product page, such asvariants,specifications,shippingandtopReviews, are empty ornull.
Fields in each product row
- Product:
productId,market,url,title,brand,description,categories(names from top level down to leaf),images,specifications(name/valuepairs) - Price:
price,originalPrice,discountPercent,currency,priceText - Sales and ratings:
soldCount,rating,reviewCount,ratingBreakdown(number of 1 to 5 star ratings) - Variants and stock:
variants(each withskuId,name,properties,price,originalPrice,stock,available) andtotalStock - Shipping:
shippingwithisFree,fee,currency,deliveryMinDays,deliveryMaxDays,deliveryEstimate,method - Seller:
sellerwithid,name,url,rating,followerCount,productCount,soldCount,reviewCount,positiveFeedbackPercent - Reviews:
topReviews(each withreviewId,rating,text,reviewerName,createdAt,variant,isVerifiedPurchase,isIncentivized,images,country) - Run info:
source(typeisproduct,store,categoryorsearch, plus theinputthat found the product) andscrapedAt
Example product row
Arrays are trimmed to one entry here.
{"dataType": "product","detailLevel": "full","productId": "1731578642912612516","market": "us","url": "https://shop.tiktok.com/us/pdp/cat-nail-clipper-by-potaroma-adjustable-sizes-built-in-file-safe-for-kittens-cats/1731578642912612516","title": "Potaroma Universal Cat Paw Trimmer - 4-Size Adjustable Holes…","brand": null,"price": 12.69,"originalPrice": 20.0,"discountPercent": 37,"currency": "USD","priceText": "$12.69","soldCount": 15742,"rating": 4.5,"reviewCount": 1294,"ratingBreakdown": { "1": 82, "2": 44, "3": 74, "4": 153, "5": 941 },"categories": ["Pet Supplies", "Dog & Cat Grooming", "Claw Care"],"variants": [{"skuId": "1731578664610402468","name": "Default","properties": { "Specifications": "Default" },"price": 12.69,"originalPrice": 20,"stock": 44,"available": true}],"totalStock": 44,"shipping": {"isFree": true,"fee": 0,"currency": "USD","deliveryMinDays": 3,"deliveryMaxDays": 6,"deliveryEstimate": "Oct 6 - Oct 9","method": "Standard"},"seller": {"id": "7495813075786500260","name": "Potaroma LLC","url": "https://shop.tiktok.com/us/store/potaroma-llc/7495813075786500260","rating": 4.4,"followerCount": 13294,"productCount": 63,"soldCount": 203881,"reviewCount": 16771,"positiveFeedbackPercent": 87},"source": { "type": "store", "input": "https://www.tiktok.com/shop/store/potaroma-llc/7495813075786500260" },"scrapedAt": "2026-10-03T09:12:44.000Z"}
Failed products
If a product can't be fetched, you still get a row so nothing goes missing silently. It has dataType: "failed" and an errorCode, for example product_not_found (delisted), product_unavailable (TikTok refused the ID, which usually means it does not exist in that market), region_not_available (not sold in that market), no_products (a keyword, store or category with no results) or blocked. Failed rows are free.
How many products can you scrape from TikTok Shop?
The limits come from TikTok, not from the scraper:
- Keyword search: about 50 to 300 products per keyword, depending on the keyword. TikTok stops paging after that, so the scraper runs the same keyword under several sort orders and merges the results to get past a single list.
- Category pages: up to about 100 products per category. TikTok shows a rotating sample of each category, so the scraper also visits the subcategories to cover more of it.
- Store pages: the full catalogue of the store.
To get more products for a broad topic, split it into narrower keywords or add the relevant subcategory links.
TikTok Shop scraper use cases
- Find winning products. Search a niche, sort by
best_selling, and rank the results bysoldCountandratingto see what is moving. - Monitor competitor prices and stock. Schedule a daily run on a rival's store and watch
price,discountPercentand per-variantstock. - Export a seller's catalogue. Download every listing from a store, with seller follower count, total sales and feedback score.
- Track sold counts over time.
soldCountis a running total, so the difference between two scheduled runs shows how many units sold in between. - Source products as an affiliate or creator. Shortlist well-reviewed, well-stocked products with free shipping before you promote them.
- Research Southeast Asian markets. Run the same keywords in Singapore, Malaysia, the Philippines, Thailand and Vietnam and compare prices, sellers and demand by country.
How much does it cost to scrape TikTok Shop?
Pricing is pay per event. You pay only for products you receive:
| Mode | Price |
|---|---|
Listing cards (scrapeProductDetails: false) | $2.00 per 1,000 products |
Full product details (scrapeProductDetails: true) | $3.50 per 1,000 products |
Product links and product IDs always return full details, so they are billed at the full-detail price. There is no start fee, and failed rows are never charged. For comparison, many TikTok Shop actors charge $5 to $30 per 1,000 products.
Card mode is the cheaper option when you only need price, sold count and rating for many products. Use full details when you need variants, stock, shipping, seller data or reviews.
Send TikTok Shop data to Slack, Notion or Google Sheets
Choose an authorized MCP connector in mcpConnector and the scraped products are posted to that app when the run finishes. Combined with a schedule, this gives you a daily price or sold-count feed in a channel, page or sheet. Delivery is optional. If you leave the field empty, the run behaves exactly the same and nothing is sent anywhere.
Use the TikTok Shop scraper from AI agents
Claude, ChatGPT, Cursor and other MCP-capable agents can call this actor through Apify's MCP server:
https://mcp.apify.com/?tools=harshmaur/tiktok-shop-scraper
The agent can then ask questions like "find the best-selling pet grooming products on TikTok Shop US" and get structured rows back.
API, schedules and integrations
- Apify API: start runs and read the dataset from any language, or use the Python and JavaScript clients.
- Schedules: run hourly, daily or weekly to keep a price and stock history.
- Webhooks: get notified when a run ends and pull the new rows.
- Make, Zapier and n8n: connect through Apify's integrations or a plain HTTP request to the API.
FAQ
Is it legal to scrape TikTok Shop?
The scraper reads only public product pages that anyone can open without logging in. Reviewer names are the display names TikTok already shows publicly, and they arrive masked (for example L**G). You are still responsible for following the laws in your country and TikTok's terms, especially if you store or republish the data. If in doubt, ask a lawyer.
Which countries does it support?
The United States (us), United Kingdom (gb), Singapore (sg), Malaysia (my), Philippines (ph), Thailand (th) and Vietnam (vn). Indonesia is not supported because TikTok Shop there moved to Tokopedia. Brazil, Mexico, Japan and EU countries are not supported in this version. In the UK, product, store and category links work, but keyword search does not, because TikTok Shop UK does not offer it on its website.
Do I need a TikTok account, cookies or proxies?
No. There is nothing to log in to and no cookies to paste. The scraper handles the connection to TikTok itself, so you don't need to configure a proxy.
Why did some products fail?
Usually the product has been delisted (product_not_found), the ID does not exist in that market (product_unavailable), or it is not sold in the market you asked for (region_not_available). Occasionally TikTok refuses a request (blocked). Each case returns a free failed row with the errorCode, so you can see what happened.
How many results do I get per keyword?
Roughly 50 to 300, depending on the keyword. TikTok caps search results, and the scraper combines sort orders to reach as many as it allows. Stores return their full catalogue.
How fresh is the data?
Every run reads TikTok Shop live, so prices, stock and sold counts are what TikTok showed at scrapedAt.
Can I track a product's sold count every day?
Yes. Save your input as a task, schedule it daily, and compare soldCount for the same productId between runs. The difference is the units sold that day.
Can I export all reviews for a product?
Not in this version. Each full product row includes the first reviews TikTok shows on the page (usually 3) in topReviews, plus the complete 1 to 5 star counts in ratingBreakdown.
What is the difference between card and full detail mode?
Card mode reads search, store and category listings only, so it is faster and costs $2.00 per 1,000. Full detail mode opens each product page and adds variants, stock, description, specifications, shipping, seller stats, the rating breakdown and top reviews, for $3.50 per 1,000.
More scrapers by the same developer
- Reddit Scraper: collect posts, comments and user activity from any subreddit or search.
- Facebook Ads Library Scraper: see which ads a brand runs on Meta and how long each one has been live.
- YouTube Transcript Scraper: turn video, channel or playlist captions into text, SRT or VTT.
- LinkedIn Jobs Scraper: pull public job postings by keyword, location and filters.
- Indeed Scraper: export Indeed job listings with salaries and company details.