TikTok Shop Data API & Scraper – Product Prices, Sales, Stock
Pricing
from $3.00 / 1,000 product with details
TikTok Shop Data API & Scraper – Product Prices, Sales, Stock
Get TikTok Shop product data from product, store or category links (US). Returns price, discount, items sold, rating, reviews, SKUs with stock, shipping and shop stats. No login. $0.004 per product; failed products are free. · by TubeText
Pricing
from $3.00 / 1,000 product with details
Rating
0.0
(0)
Developer
TubeText Labs
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
19 hours ago
Last modified
Categories
Share
TubeText · E-commerce & travel · Pay per result. No login. Ready for AI agents. All tools
Quick start (no coding)

- Click Try for free at the top of this page. A free Apify account is enough – it includes monthly credit.
- In Product, store or category URLs, paste TikTok Shop links, one per line – a product page, a store page (its first 20 products) or a category page.
- Click Start. Usually about a minute.
- When it says Succeeded, open the Output tab and click Export → Excel (or CSV). One row per product: price, items sold, rating and stock.
Cost: $0.004 per product with full details – 100 products ≈ $0.40. Removed products and errors are free.
Common mistakes
- Typing a keyword like "yoga mat" → this tool needs links. Search on TikTok Shop first, then paste the product or store links.
- Using a non-US shop link → only the US shop works for now.
Questions or problems? Open an issue (we read every one). Need a custom version? Ask in an issue or email us – we build it as a private Actor on Apify.
Use from Claude, Cursor or any MCP client
Add https://mcp.apify.com?tools=tubetext/tiktok-shop-product-scraper as a remote MCP server and sign in to Apify (Claude: Settings → Connectors → Add custom connector). Claude Code:
$claude mcp add --transport http tubetext "https://mcp.apify.com?tools=tubetext/tiktok-shop-product-scraper"
Then ask, for example: "Get price, items sold and stock per SKU for these TikTok Shop products." or "Which of these 10 products has sold the most, and at what discount?"
🆓 Free to try: Apify's free plan includes $5 of usage every month, no credit card needed – enough for about 1,200 TikTok Shop products with this tool.
What you get – real output from a test run, shortened. One row per product:
| Product | Price | Sold | Rating | Stock | Shop |
|---|---|---|---|---|---|
| 3 Bottles of Goli Ashwagandha & Vitamin… | $58.47 | 865,523 | 4.7 | 241,499 | Goli Nutrition |
| Goli Ashwagandha & Vitamin D Gummy - Mi… | $19.47 | 1,304,446 | 4.5 | 335,447 | Goli Nutrition |
| 3 Bottles of Goli Best Seller Bundle: A… | $49.37 | 556,227 | 4.6 | 463,628 | Goli Nutrition |
TikTok Shop API for product, price and sales data
Call it from your back end with the Apify API. One request runs the Actor and returns the rows as JSON:
curl -X POST "https://api.apify.com/v2/acts/tubetext~tiktok-shop-product-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' -d '{"urls":["https://www.tiktok.com/shop/pdp/1729527313880355335"]}'
- Monitoring: Daily tracking: schedule the run with your product, store or category links and diff
price,soldCountandtotalStockbetween runs. Add an Apify webhook to get notified when each run finishes. - Cost at volume: 1,000 products a day ≈ $4/day at the free-plan price ($0.004 per product).
- Stable output: field names don't change between runs. Failed or empty items come back as status rows that aren't billed, and every row has
charged: true/false. - Why not the official API: TikTok Shop's official APIs are for sellers managing their own shop. This returns public data for any US product or shop, without login.
Get TikTok Shop product data from product, store or category URLs: price and discount, items sold, rating and review count, every variant (SKU) with its price and stock, specifications, shipping, and the shop's stats (followers, total sold, videos). Built for TikTok Shop sellers, affiliates and UGC creators, agencies, dropshippers and e-commerce analysts – no login, pay per product, failures free.
Why this one
- 💸 $4 per 1,000 products with full details – about 6× cheaper than the most popular TikTok Shop scraper.
- ✅ Only pay for delivered products – removed products, empty results and errors are free.
- 📦 Stock per variant – see which SKUs sell and how much inventory is left (great for tracking competitors over time).
- 🏪 Shop stats in every row – shop rating, followers, products on sale, total items sold, number of videos.
- 🇺🇸 US TikTok Shop (tested). Other markets have separate catalogs and are not supported yet.
- 🔒 Privacy: review samples without reviewer names or IDs; seller business name but no addresses (address fields in specifications are skipped too).
Input
- Product pages:
https://www.tiktok.com/shop/pdp/<id>,https://shop.tiktok.com/view/product/<id>or just the product ID - Store pages:
https://www.tiktok.com/shop/store/<name>/<id>→ the store's first 20 products (its own order) - Category pages:
https://www.tiktok.com/shop/c/<name>/<id>→ products sampled from the category page (up to 100)
{"urls": ["https://www.tiktok.com/shop/pdp/1729527313880355335","https://www.tiktok.com/shop/store/goli-nutrition/7495794203056835079"],"includeDetails": true,"includeReviews": false}
Turn includeDetails off to get only the listing card for store/category products (title, price, sold count, rating) at $1.50 per 1,000.
Output example
Real output (shortened):
{"status": "ok","productId": "1729527313880355335","url": "https://shop.tiktok.com/us/pdp/ashwagandha-gummies-by-goli-ksm-66-mixed-berry-vegan-non-gmo/1729527313880355335","title": "Goli Ashwagandha & Vitamin D Gummy - Mixed Berry, KSM-66, Vegan, Plant Based, Non-GMO…","price": 19.47,"originalPrice": 24.7,"discount": "-21%","currency": "USD","soldCount": 1304190,"rating": 4.5,"reviewCount": 94525,"categories": ["Health", "Nutrition & Wellness", "Vitamins, Minerals & Wellness Supplements", "Vitamins Supplements"],"skus": [{"skuId": "1729527298861535751", "options": "Size: 1 Bottle", "price": 19.47, "originalPrice": 24.7, "stock": 336485, "available": true}],"totalStock": 336485,"specifications": "Brand: Goli\nContainer type: Bottle\nFlavor: Berry\nProduct form: Gummy","freeShipping": true,"deliveryDays": "5-8","shopName": "Goli Nutrition","shopUrl": "https://shop.tiktok.com/us/store/goli-nutrition/7495794203056835079","shopRating": 4.6,"shopFollowers": 601031,"shopProductCount": 52,"shopSoldCount": 5777630,"shopVideoCount": 5123,"aiKeywords": ["Goli Ashwagandha Gummies", "Vegan vitamin supplement", "…"],"images": ["https://p16-oec-general-useast5.ttcdn-us.com/…"]}
specifications is one text field with a "Name: value" line per spec, and skus[].options is text like "Color: Black / Size: M", so CSV and Excel exports stay readable.
Pricing
Pay per event:
- $4.00 per 1,000 products with full details (cheaper on higher Apify plans: down to $3.00).
- $1.50 per 1,000 listing cards when Full product details is off.
- Removed or unavailable products and errors are free.
Example: 20 products from each of 10 competitor stores = 200 products ≈ $0.80.
Tips
- Track competitors: schedule a daily run on competitor stores and compare
soldCountandtotalStockper product – the difference is a sales estimate. - Find winning products: run category pages and sort by
soldCount. - Pair with video research: open the products' videos with Video Breakdown AI or get scripts with TikTok Transcript Scraper.
Ready-made examples
- TikTok Shop Product Data
- TikTok Shop Store Products
- TikTok Shop Sales & Stock Tracker
- TikTok Shop Price Tracker
TubeText Labs tools
TubeText Labs builds 35 pay-per-result Apify Actors for video, social and e-commerce data – no login, JSON/CSV/Excel output, and ready for ChatGPT and Claude (Apify MCP), n8n, Make and Zapier. All tools: apify.com/tubetext
Transcripts
- YouTube Transcript Scraper – videos, Shorts, playlists and whole channels to text; Whisper AI when there are no captions
- TikTok Transcript Scraper – TikTok captions plus Whisper AI, SRT and timestamps
- Instagram Reels Transcript – reel links or @usernames to text with Whisper AI
- Podcast & Video Transcript – podcast RSS / Apple Podcasts, X, Facebook, Loom, Twitch and audio files to text
- Facebook Video Transcript – public Facebook videos and Reels to text with Whisper AI
- X (Twitter) Video Transcript – X/Twitter video posts to text with Whisper AI
- Reddit Video Transcript – videos in public Reddit posts (v.redd.it) to text with Whisper AI, with SRT and timestamps
- Bilibili Video Transcript – Bilibili (B站) videos to text with Whisper AI, plus optional English summaries
- Podcast Transcript – podcast RSS feeds and Apple Podcasts episodes to text with Whisper AI
Video & ad analysis
- Video Breakdown AI – hook analysis, shot list, cut pacing, products shown and script of any TikTok, Reel or YouTube video
- Shot-by-Shot Video Analysis Pro – director-level storyboard of any video: framing, camera move, emotion and why each shot works, plus replay peaks, danmaku and comments tied to shots
- YouTube & TikTok Comments API – comments with like-weighted sentiment and themes, plus the moments viewers react to on long YouTube and Bilibili videos
- Video Ad Analyzer – competitors' YouTube video ads by brand or domain (Google Ads Transparency), torn down by AI
- Google Ads Transparency API – any advertiser's YouTube video ads from Google Ads Transparency, with first/last shown dates, days running, views and transcripts
- Meta Ad Library Scraper – Facebook and Instagram ads by brand or keyword: video URLs, images, ad copy, CTA and landing page
Social, apps & trends
- YouTube Channel Analytics – subscribers, recent video performance, Social Blade grade, ranks and estimated earnings
- YouTube Shorts Scraper – every Short of a channel with exact views, likes, comments and publish time, plus transcripts and the opening line
- Bilibili Scraper – Bilibili (B站) keyword search, popular board, top-100 ranking, video stats, danmaku text and creator (UP主) followers – no login
- China Trending Topics – Douyin, Weibo, Baidu, Toutiao and Bilibili hot-search boards in one run, in English – plus an optional AI briefing on why topics trend
- WeChat Article Scraper – WeChat 公众号 articles by keyword or link: full text, English titles and optional English summaries
- Google Play Reviews + AI Insights – Android app reviews by star rating, country and language, plus an AI report of complaints and praise
- Steam Reviews Scraper + AI Insights – Steam game reviews with hours played and votes, review score and current players, plus an AI report of top complaints, praise and feature requests
- Social Blade Scraper – Social Blade stats for YouTube, TikTok, Instagram and Twitch creators – grade, ranks, 2-week growth, daily history, earnings estimates and top-100 lists
- Spotify Play Count Scraper – play counts for every track of an album, artist or playlist (incl. Top 50 charts), plus monthly listeners, followers, world rank and top cities
E-commerce & travel
- TikTok Shop Product Scraper (this tool) – US TikTok Shop prices, items sold, stock per SKU and shop stats
- AliExpress Search Scraper – AliExpress search results by keyword: price, items sold, rating, shipping, badges
- Google Hotels Scraper – hotel prices for any destination and dates, per booking site and as a 90-day price calendar
- Taobao & Tmall Product Scraper – Taobao/Tmall products by Chinese or English keyword, category or URL: CNY prices, shops and seller scores
- Alibaba & Yiwu Supplier Finder by Image – product photo in, similar Alibaba.com and Yiwu wholesale listings out: price, MOQ, supplier, country and rating
- Amazon Product Search Scraper – Amazon search results, Best Sellers lists and product pages: price, rating, reviews, monthly sales signal, badges and specs
- Google Flights Scraper – flight prices for any route or multi-city trip, a cheapest-day calendar, price insights and booking options per site
- Agoda & Booking.com Hotel Reviews + AI – Agoda hotel reviews plus verified Booking.com reviews shown on Agoda, hotel scores and sub-scores, and an AI report of complaints, praise and action items
- Gas Prices Scraper (US & Canada) – live gas station prices by ZIP, city or coordinates – regular, premium, diesel, E85 – with an area summary of the cheapest stations
- Idealo Price Scraper – every shop offer for a product on idealo – price, shipping, delivery, shop rating – in Germany, Austria, France, Italy, Spain and the UK, with a summary per market
Esports & sports data
- Esports Match Timeline – Valorant and CS2 round-by-round scores, winners and VOD timestamps read from broadcast VODs
Questions or problems? Open an issue (we read every one). Need a custom version? Ask in an issue or email us – we build it as a private Actor on Apify.
Found it useful? A short review on this page helps others find it.
Built by TubeText Labs · Pay per result. No login. Ready for AI agents.
FAQ
Why only 20 products per store? TikTok shows a store's first 20 products in the page itself; loading more requires a token from TikTok's bot protection, which this Actor does not bypass. Paste product URLs for anything beyond that.
Can I search by keyword? Not yet – TikTok Shop search results are loaded in the browser only. Use category or store pages, or product URLs.
Is soldCount total or recent? It is TikTok's "items sold globally since this item was listed, excluding returns".
Why is originalPrice sometimes empty? Some strikethrough "was" prices come from promotions TikTok applies in the browser and aren't in the page data, so originalPrice (and the discount) can be null even when the page shows one.
Why does the rating differ slightly from the page? rating is TikTok's own unrounded value (e.g. 4.7); the page may show it rounded, so the two can differ by 0.1.
What if a product ID doesn't exist? It returns skipped: product_not_found immediately, free.
Is this legal? The Actor only reads public product pages without logging in and does not collect reviewer identities or seller addresses. You are responsible for how you use the data and for complying with TikTok's terms.
How do I get a clean spreadsheet? In the run's Storage tab choose Export → View: Overview for a short set of readable columns in Excel, CSV or Google Sheets. Use JSON to get every field (for example every SKU and spec).
Can I cap what a run costs? Yes – set Maximum cost per run in the run options. The run stops cleanly when the next item would go over it: you are never charged more, and you get a clear "stopped at your limit" status message.
What happens if a big run approaches the time limit? Time checks cover store/category discovery and product requests. The Actor saves partial progress and stops upstream work before the platform limit; completed results remain in the dataset. The status reports both discovered products and input sources still pending. Restarting the same run resumes its saved progress; starting a fresh run starts over. A platform termination during final delivery can still interrupt a result, so complete delivery is not guaranteed. The run's DIAGNOSTICS record provides stage and request counts for troubleshooting.
Am I charged for empty results? No. One product link returns one row; removed products, empty pages and errors come back with a status and are not charged.
Interrupted runs and delivery verification
Completed items are verified against the actual Dataset and a saved charge response.
Rows include an additive deliveryId and chargeStatusAtWrite. Existing charged
remains the compatibility flag for whether the row is intended to be billable; it
is not a payment receipt. Because a row is written before charging, the immutable
row has chargeStatusAtWrite: "pending" for billable results. The run's diagnostics
and charge records provide the final outcome.
After an interruption, the Actor checks saved results before continuing. If a
write or payment response cannot be confirmed, it stops with an incomplete status
instead of automatically repeating that operation. Check DIAGNOSTICS for
completionVerified, recoveryIssue and deliveryPending. Existing delivered
rows remain available. An older progress record without delivery and charge
evidence also requires review; it is not automatically billed again. Starting a
new run is a separate paid operation, so inspect unresolved charges first.
This recovery protocol does not promise atomic or lossless operation at every possible interruption point. Real pricing must be available before paid work begins; test copies without verified event pricing stop with an explanatory status.
Recovery issues also produce at most one free diagnostic row per run, identified
by recordType: "recovery_notice", errorCode: "recovery_pending" and
status: "skipped". This row represents unresolved work, not a product, and is
never charged. It records an issue observed during the run; consult DIAGNOSTICS
for the latest resolution. A later successful recovery retains this warning for
review. An unconfirmed warning write is not blindly appended again. If the
warning cannot be confirmed, the run fails with RECOVERY_REVIEW_REQUIRED.
Automated callers must treat this marker as requiring review before another run.