TikTok Shop Scraper - Products, Prices & Sales (Cheap) avatar

TikTok Shop Scraper - Products, Prices & Sales (Cheap)

Pricing

from $0.80 / 1,000 results

Go to Apify Store
TikTok Shop Scraper - Products, Prices & Sales (Cheap)

TikTok Shop Scraper - Products, Prices & Sales (Cheap)

Scrape TikTok Shop US products by keyword: prices, discounts, units sold, ratings, reviews, shops and creator videos. Optional product pages add stock levels, variants, specs and reviews.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

Yusuf Barış

Yusuf Barış

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

11 days ago

Last modified

Categories

Share

TikTok Shop Scraper - Products, Prices, Sales & Stock

Scrape TikTok Shop US product data by keyword: prices, discounts, units sold, ratings, reviews, shops and the creator videos driving sales. Turn on product details to also get stock levels per variant, specifications, categories, shipping and top reviews.

No login, no cookies, no browser. Fast, low cost, and built to finish every run successfully.

What can you do with it?

  • Find winning products: sort any keyword by best selling and see what actually moves on TikTok Shop right now.
  • Track prices and discounts: schedule runs and compare price, discount and flash-sale labels over time.
  • Estimate demand: units sold, review counts and creator video views show which products are taking off.
  • Research competitors: see every shop selling in a niche with its followers, rating and total sales.
  • Check stock levels: per-variant stock helps you spot supply gaps and sell-out risks.
  • Feed your own tools: push clean JSON into a database, spreadsheet, BI dashboard, or an AI agent.

Popular with dropshippers, Amazon and Shopify sellers, cross-border e-commerce teams, agencies, brand-monitoring tools and analysts in the US, Europe and Asia.

Features

FeatureDetails
Keyword searchAny common product term, one per line. Close matches are found automatically when an exact phrase has no TikTok page.
DepthTypically 100-250 products per keyword. Add related keywords to go much wider.
Best sellers firstSort by units sold, price, rating or review count across everything reachable for the keyword.
FiltersMinimum/maximum price, minimum units sold, minimum rating.
Product details (optional)Description, category path, all images, specifications, variants, per-variant price and stock, shipping, shop statistics, top reviews.
Single productsPaste a product page URL to get full details for that product.
DeduplicationEach product is returned once, even when several keywords find it.
ReliableAutomatic retries with fresh IPs. The run always ends successfully and saves everything it collected.

Input

FieldTypeDescription
searchQueriesarrayProduct keywords, e.g. lip gloss, phone case, air fryer.
startUrlsarrayOptional TikTok Shop keyword pages (https://shop.tiktok.com/us/k/phone-case) or product pages (.../pdp/.../1729407202568147235).
maxResultsPerQueryintegerProducts per keyword. Default 100.
maxItemsintegerTotal products across all keywords. Default 1000.
expandRelatedKeywordsbooleanAlso scrape TikTok's related searches to reach more products.
maxRelatedKeywordsintegerRelated keywords to add for each of your keywords. Default 5.
scrapeProductDetailsbooleanOpen each product page for stock, variants, specs, shipping, shop stats and reviews.
sortBystringrelevance, soldDesc, priceAsc, priceDesc, ratingDesc, reviewsDesc.
minPrice, maxPricenumberPrice range in USD.
minSoldCountintegerMinimum units sold.
minRatingnumberMinimum rating (0-5).
deduplicatebooleanReturn each product once. Default true.

Example input

{
"searchQueries": ["lip gloss", "wireless earbuds"],
"maxResultsPerQuery": 100,
"sortBy": "soldDesc",
"minRating": 4,
"scrapeProductDetails": false
}

Output

Each product is one dataset item. Download it as JSON, CSV, Excel, XML or HTML, or read it through the API.

{
"productId": "1732388535932916327",
"title": "6-Count Cosmetic Moisturizing Lip Oil & Lipgloss Set - Daily Glossy Lip Treatment",
"url": "https://shop.tiktok.com/us/pdp/moisturizing-clear-lip-gloss-set-6-count-student-friendly/1732388535932916327",
"imageUrl": "https://p16-oec-general-useast5.ttcdn-us.com/...webp",
"price": 12.99,
"originalPrice": 20.99,
"discountPercent": 38,
"currency": "USD",
"soldCount": 82,
"rating": 4.8,
"reviewCount": 25,
"brand": null,
"shopId": "7494591973747295847",
"shopName": "Kore Mart US",
"promotionLabels": ["Limited time deal", "Free shipping"],
"skus": [{ "skuId": "1732388538776523367", "price": 12.99 }],
"video": null,
"position": 1,
"searchQuery": "lip gloss",
"market": "US",
"scrapedAt": "2026-10-13T09:26:17Z"
}

Core fields (always included)

FieldDescription
productId, title, url, imageUrlIdentity and links.
price, originalPrice, discountPercent, currencyCurrent price, price before discount, discount in percent.
soldCount, rating, reviewCountSales and review signals.
brand, shopId, shopName, shopLogoUrlBrand and seller.
promotionLabelsBadges such as Flash sale, Free shipping, Limited time deal.
skusVariants with price.
videoLinked creator video: id, views, likes, duration, publish date, cover (when available).
position, searchQuery, matchedKeyword, market, scrapedAtWhere and when the product was found.

Extra fields with scrapeProductDetails

FieldDescription
description, categoryPath, categoriesFull description and category hierarchy.
images, headerVideoUrlAll product images and the main product video.
specifications, variantsAttributes (material, ingredients, size...) and options such as color.
skus[].stock, totalStock, inStockStock per variant and totals.
shippingShipping fee, free-shipping threshold, delivery estimate, ships-from.
shopUrl, shopFollowers, shopRating, shopSoldCount, shopProductCountShop statistics.
topReviews, totalReviewCountMost relevant reviews with rating, text, variant, photos and date (reviewer identities are not collected).
detailsScrapedtrue when the product page was read successfully.

The run also stores a RUN_SUMMARY record with results per keyword, request counts and download size.

How to use

  1. Open the Actor and enter one or more search keywords (with no input at all, the Actor runs a 30-product demo search).
  2. Choose how many products you want, and optionally sort and filter.
  3. Click Start. A 100-product keyword usually finishes in well under a minute.
  4. Open the Products overview tab or export the dataset.

Run it from code

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('codetr/tiktok-shop-product-scraper-cheap').call({
searchQueries: ['air fryer'],
maxResultsPerQuery: 100,
sortBy: 'soldDesc',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.slice(0, 5));

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('codetr/tiktok-shop-product-scraper-cheap').call(run_input={
'searchQueries': ['air fryer'],
'maxResultsPerQuery': 100,
'sortBy': 'soldDesc',
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item['title'], item['price'], item['soldCount'])

cURL

curl -X POST "https://api.apify.com/v2/acts/codetr~tiktok-shop-product-scraper-cheap/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchQueries":["air fryer"],"maxResultsPerQuery":50}'

You can also schedule runs, send results to Google Sheets, Make, Zapier or n8n, call the Actor from an AI agent through the Apify MCP server, and connect webhooks.

Pricing

The Actor uses pay per event: you pay for each product returned. Product detail pages are billed as a separate small event, and only when scrapeProductDetails is enabled. Current rates are shown on the Actor's pricing tab. Set maximum cost per run in the run options to cap your spend; the Actor stops cleanly when the limit is reached.

Tips and limits

  • Marketplace: data comes from the TikTok Shop United States marketplace; prices are in USD.
  • Depth per keyword: TikTok exposes roughly 100-250 products for a keyword. To cover a whole niche, use several keywords or enable related keywords.
  • Best keywords: use common product terms. Very specific or unusual phrases may have no TikTok Shop page. The Actor then tries TikTok's own suggestions and logs a clear message if nothing is found.
  • Sorting is applied to everything reachable for each keyword (up to about 300 products), so Best selling first returns real top sellers.
  • Units sold is the figure TikTok Shop displays for the product at scraping time.
  • Image links are signed by TikTok and can expire after some time; download images you need to keep.

FAQ

Do I need a TikTok account or cookies? No. The Actor reads publicly visible TikTok Shop pages.

Can it scrape other countries (UK, EU, Southeast Asia)? Not currently. The public keyword pages this Actor relies on are available for the US marketplace only.

What happens if TikTok blocks a request? Requests are retried automatically from fresh IPs. If a keyword still cannot be fetched, the Actor logs it, continues with the others, and finishes successfully with everything collected so far.

Why did I get fewer products than I asked for? Either the keyword has fewer products on TikTok Shop, your filters removed some, or duplicates were removed. The RUN_SUMMARY record shows the details per keyword.

Does it collect personal data? No. Reviews are returned without reviewer names or IDs. Shop and product information is business data that TikTok Shop shows publicly.

Is scraping legal? The Actor collects publicly available information. You are responsible for using the data in line with applicable laws and TikTok's terms. This Actor is not affiliated with or endorsed by TikTok or ByteDance.

Feedback and support

Found a bug or need an extra field? Open an issue on the Actor's Issues tab. Fast replies, and field requests are welcome.