TikTok Shop Data API & Scraper – Product Prices, Sales, Stock avatar

TikTok Shop Data API & Scraper – Product Prices, Sales, Stock

Pricing

from $3.00 / 1,000 product with details

Go to Apify Store
TikTok Shop Data API & Scraper – Product Prices, Sales, Stock

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

TubeText Labs

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

19 hours ago

Last modified

Share

TubeText · E-commerce & travel · Pay per result. No login. Ready for AI agents. All tools

Quick start (no coding)

TikTok Shop Scraper quick start: click Try for free, paste your input, click Start, export to Excel

  1. Click Try for free at the top of this page. A free Apify account is enough – it includes monthly credit.
  2. 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.
  3. Click Start. Usually about a minute.
  4. 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:

ProductPriceSoldRatingStockShop
3 Bottles of Goli Ashwagandha & Vitamin…$58.47865,5234.7241,499Goli Nutrition
Goli Ashwagandha & Vitamin D Gummy - Mi…$19.471,304,4464.5335,447Goli Nutrition
3 Bottles of Goli Best Seller Bundle: A…$49.37556,2274.6463,628Goli 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, soldCount and totalStock between 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 soldCount and totalStock per 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

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

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.