TikTok Shop Product Scraper avatar

TikTok Shop Product Scraper

Pricing

from $8.00 / 1,000 results

Go to Apify Store
TikTok Shop Product Scraper

TikTok Shop Product Scraper

Get price, sales, rating, reviews, stock, variants, seller and category for TikTok Shop products. Pay only for products delivered.

Pricing

from $8.00 / 1,000 results

Rating

0.0

(0)

Developer

Seth Lake

Seth Lake

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Search TikTok Shop by keyword, or paste product, category or store links, and get each product's price, units sold, rating, reviews, stock, variants, seller and category as one clean row. You pay only for products delivered: never for captchas, search and listing pages, delisted products, retries or failed runs.

Who it's for

  • Sellers tracking competitors' prices, discounts and stock.
  • Affiliates and creators picking products that actually sell (units sold, rating, reviews).
  • Dropshippers and researchers building product lists by category, with variant-level prices and stock.

What you get

One row per product:

FieldExample
titlePotaroma Universal Cat Paw Trimmer…
price / priceMax13.96 / 13.96 (lowest and highest variant price)
originalPrice, discountPercent20, 30
soldCount15652
rating, reviewCount4.4, 1281
inStock, totalStocktrue, 68
categoriesPet Supplies › Dog & Cat Grooming › Claw Care
shopName, sellerRating, sellerFollowerCountPotaroma LLC, 4.4, 13274
variantseach SKU's name, price, list price and stock
images, description, specifications
freeShipping, shippingFee, deliveryMinDays, deliveryMaxDaystrue, 0, 5, 8

Numbers are numbers (not "$13.96" or "15.6K"), so you can sort and filter straight away. Download as JSON, CSV or Excel, or use the API.

How to use it

  1. Add what you want, in either or both fields:
    • Search terms: keywords like cat toys or stanley cup, one per line. Each returns the products TikTok Shop lists for that keyword, in TikTok's order, up to your per-term cap.
    • Product, category or store URLs: product links (www.tiktok.com/shop/pdp/…, shop.tiktok.com/…, or the numeric ID), categories (shop.tiktok.com/us/c/<name>/<id>), stores (shop.tiktok.com/us/store/<name>/<id>) or keyword pages (shop.tiktok.com/us/k/<keyword>).
  2. Set Max products to cap the cost of the whole run, and Max products per search term, category or store (default 50).
  3. Click Start.

A product that shows up twice (say, under two search terms) is scraped and charged once. Every row has the full product data, whether it came from a search, a category, a store or a direct link.

Input example

{
"searchTerms": ["cat toys", "water bottle"],
"productUrls": [
"https://www.tiktok.com/shop/pdp/cat-nail-clipper-by-potaroma-adjustable-sizes-built-in-file-safe-for-kittens-cats/1731578642912612516",
"https://shop.tiktok.com/us/c/pet-supplies/602118",
"https://shop.tiktok.com/us/store/potaroma-llc/7495813075786500260"
],
"maxItems": 100,
"maxProductsPerSource": 30
}

Output example

{
"productId": "1731578642912612516",
"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 (Incl. 3.5mm), Hidden Nail File…",
"price": 13.96,
"priceMax": 13.96,
"originalPrice": 20,
"discountPercent": 30,
"currency": "USD",
"soldCount": 15652,
"rating": 4.4,
"reviewCount": 1281,
"inStock": true,
"totalStock": 68,
"categories": ["Pet Supplies", "Dog & Cat Grooming", "Claw Care"],
"shopName": "Potaroma LLC",
"sellerId": "7495813075786500260",
"sellerRating": 4.4,
"sellerFollowerCount": 13274,
"sellerProductCount": 63,
"description": "Adjustable Trimmer for All Cat Sizes: This cat nail clipper features a single ro…",
"images": [
"https://p16-oec-general-useast5.ttcdn-us.com/…/f8b4429c891246468abacbfb08a610fc~tplv-fhlh96nyum-crop-webp:800:800.webp",
"…"
],
"variants": [
{ "skuId": "1731578664610402468", "name": "Default", "price": 13.96, "originalPrice": 20, "stock": 68 }
],
"specifications": [
{ "name": "Benefit", "value": "Clean" },
{ "name": "Pet type", "value": "Cats" }
],
"freeShipping": true,
"shippingFee": 0,
"deliveryMinDays": 5,
"deliveryMaxDays": 8,
"inputUrl": "https://www.tiktok.com/shop/pdp/cat-nail-clipper-by-potaroma-adjustable-sizes-built-in-file-safe-for-kittens-cats/1731578642912612516",
"scrapedAt": "2026-09-30T10:51:12.000Z"
}

Missing values are null, never left out, so every row has the same columns.

Pricing

$10 per 1,000 products delivered ($0.01 per product), less on higher Apify plans: $9 on Silver, $8 on Gold and above. Proxies and compute are included.

  • You're charged only when a product row lands in your dataset.
  • Captchas, retries, delisted products and blocked requests are free.
  • A run that delivers nothing costs nothing.
  • Max products and Apify's Maximum cost per run both cap your spend. If a run reaches your spending limit, it stops cleanly, keeps every product delivered so far, and tells you how many were left.

What's not charged, and where it's listed

Every input that didn't produce a row is listed in the run's RUN_SUMMARY record (Storage → Key-value store), with the reason. RUN_SUMMARY also lists each search term, category and store with its title, pages read and products found. inputUrl in each row tells you which search term or link the product came from.

ReasonMeaning
unavailableTikTok says the product doesn't exist anymore (delisted, checked twice), or a search term, category or store page doesn't exist or lists nothing.
blockedTikTok kept showing a captcha after every retry. Try again later.
failedNetwork or page error after every retry.
invalid_inputNot a TikTok Shop product, category, store or keyword link, or a product ID.
not_attemptedThe run stopped first (Max products or your spending limit).

Known limits

  • US store only for now.
  • Search terms and stores page through TikTok's own "View more" list (30 products per keyword page, 20 per store page) up to Max products per search term, category or store, in TikTok's order. Categories give 10–15 products per page and stop when pages stop bringing new products (TikTok's category list tops out at roughly 85 products).
  • Search terms become TikTok's keyword pages (cat toys → /us/k/cat-toys). A term TikTok has no page for is reported as unavailable and costs nothing.
  • No creator/affiliate data. Which creators promote a product isn't on the product page.
  • soldCount is TikTok's own number: global units sold since listing, as TikTok shows it.
  • TikTok changes its site often. If something looks wrong, open an issue and we'll fix it fast.

Advanced settings

  • Proxy: Apify US residential by default, included in the price. TikTok blocks datacenter IPs, so leave this unless you know you need something else.
  • Max parallel requests (default 5) and Retries per product (default 5).

This Actor collects only public product information that anyone can see without logging in: no personal data, no accounts. TikTok's terms restrict automated access, so check that your use case is allowed where you are, and consult a lawyer if unsure.

Changelog

  • 0.3 (2026-09-30): Search terms and stores go past the first page (TikTok's "View more"), up to the per-source cap.
  • 0.2 (2026-09-30): Search terms, and category, store and keyword page links, with Max products per search term, category or store. Listing pages are free; you still pay only for products delivered.
  • 0.1 (2026-09-30): First version. Product URLs and IDs, full product fields with variants, pay only for delivered products.

Development

npm install
npm test # parser tests on saved pages + crawl test against a local fake server
npx apify run # local run; residential proxy only works on the platform, so locally set
# "proxyConfiguration": { "useApifyProxy": false } in the input

Code: src/parse.ts (page → product, pure), src/scraper.ts (crawl, retries, charging), src/main.ts (input, summary, status message). Tests and saved pages are in test/.