TikTok Shop Scraper avatar

TikTok Shop Scraper

Pricing

from $4.50 / 1,000 results

Go to Apify Store
TikTok Shop Scraper

TikTok Shop Scraper

Extract TikTok Shop product data at scale: prices, variants, ratings, reviews, sold counts, seller details, shipping and images. Search the catalog by keyword or scrape products by URL across US, UK and other markets. Ideal for dropshipping research, price monitoring and competitor analysis.

Pricing

from $4.50 / 1,000 results

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

1

Monthly active users

8 days ago

Last modified

Share

Every TikTok Shop product, structured and ready for analysis: prices, variants, ratings, reviews, sellers, and shipping. Search the catalog by keyword or scrape by product URL, and get clean JSON in minutes instead of copying tabs for hours.

How it works

How it works

Paste TikTok Shop product URLs or type keywords to search the catalog, pick a market, and run the Actor. You get structured records back with over 40 fields per product: price, variants, ratings, reviews, seller stats, and shipping. No login, no API key, no setup. Export to JSON, CSV, or Excel, or pull straight from the API.

✨ Why teams choose this over other TikTok Shop scrapers

Spending hours copying product data from TikTok Shop tabs? Running scrapers that fail on half the products you feed them? Paying for a product scraper, then a second one for search, then a third for reviews?

  • 🎯 Search and detail in one Actor. Find products by keyword and scrape them in full depth without stitching two tools together. Most competitors sell search and detail as separate Actors. This one does both in a single run.
  • πŸ“¦ Over 40 fields per product. Price, discounted price, discount percentage, price range, currency, rating, rating count, sales count, stock, every variant with its own price and stock, specifications, shipping, delivery windows, seller, shop stats, images, and videos. The fields other scrapers skip are often the ones you need most.
  • ⭐ Reviews and rating distribution included. Pull real reviews with reviewer name, star rating, verified-purchase and incentivized flags, review images, and country, plus the full 1-to-5 star distribution. Most scrapers stop at the average rating.
  • βœ… Reliable on hard products, not just easy ones. Feed it a list and get results back for the whole list, including products that other scrapers silently drop. Consistent output whether you run one product or hundreds.
  • πŸͺ Full seller and shop context. Every record carries the shop name, shop URL, shop rating, follower count, catalog size, and seller location, so you can rank sellers, not just products.
  • πŸ”“ No account, no cookies, no headaches. The Actor reads publicly visible product and search data. Nothing to log in to, nothing to configure, nothing to maintain.
  • 🌍 Built for TikTok Shop's biggest markets. Scrape the United States and United Kingdom catalogs out of the box, with more regions available in a single dropdown.

🎯 What you can do with TikTok Shop data

TeamWhat they build
Ecommerce & DropshippingFind winning products by sold count, rating, and review volume, and spot demand before a category saturates
Brand & RetailTrack your own listings and competitors' prices, variants, discounts, and stock across TikTok Shop
Market ResearchCompare pricing, demand, and assortment across categories and regions with structured product datasets
Data & AnalyticsFeed 40+ fields per product into BI dashboards, pricing models, and trend forecasts
Affiliate & CreatorDiscover high-converting products with strong ratings and reviews that are worth promoting
Sourcing & WholesaleRank shops by catalog size, follower count, and rating to shortlist reliable suppliers
Reputation & CXPull reviews with verified-purchase flags and star distribution to read what buyers actually say

πŸ“₯ Input parameters

Give the Actor product URLs, keywords, or both. Everything else is optional.

FieldTypeDescription
productUrlsarray of stringsTikTok Shop product URLs to scrape in full detail (price, variants, reviews, shipping, seller).
searchKeywordsarray of stringsKeywords to search the TikTok Shop catalog. Returns matching products with title, price, rating, and sold count that you can then scrape in detail.
regionstringTikTok Shop market. Options: United States, United Kingdom, Singapore, Indonesia, Malaysia, Thailand, Vietnam, Philippines. Auto-detected from the URL when present.
debugModebooleanLog extra diagnostics for troubleshooting. Leave off for normal runs.

You can run product URLs and search keywords together in a single run. The output is one clean dataset combining both.

πŸ“Š Output data

Product detail record (scraped from a product URL):

{
"product_name": "Hydrating Vitamin C Face Serum 30ml",
"product_id": "1729382355331745106",
"product_url": "https://shop.tiktok.com/view/product/1729382355331745106",
"price": 12.99,
"discounted_price": 9.74,
"discount_percentage": 25,
"price_min": 9.74,
"price_max": 18.50,
"currency": "USD",
"rating": 4.82,
"rating_count": 2431,
"sales_count": 15600,
"in_stock": true,
"total_stock": 842,
"variant_count": 3,
"variants": [
{ "sku_id": "17293...", "name": "30ml Single", "price": 9.74, "stock": 300, "in_stock": true },
{ "sku_id": "17294...", "name": "30ml Twin Pack", "price": 17.50, "stock": 220, "in_stock": true }
],
"specifications": { "Volume": "30ml", "Skin Type": "All" },
"category": "Beauty & Personal Care",
"shipping_fee": 0,
"free_shipping": true,
"delivery_min_days": 3,
"delivery_max_days": 7,
"reviews_total": 2431,
"rating_distribution": { "5": 2010, "4": 300, "3": 80, "2": 25, "1": 16 },
"reviews": [
{
"review_id": "74920...",
"rating": 5,
"text": "Skin feels amazing after two weeks.",
"reviewer_name": "a***a",
"verified_purchase": true,
"incentivized": false,
"images": ["https://..."],
"country": "US"
}
],
"shop_name": "GlowLab Official",
"shop_url": "https://shop.tiktok.com/...",
"shop_id": "7495...",
"average_rating": 4.79,
"shop_rating_count": 51230,
"follower_count": 128400,
"total_products": 96,
"seller_location": "US",
"images": ["https://...", "https://..."],
"videos": [{ "id": "73...", "cover_url": "https://...", "duration": 18.4 }],
"region": "us",
"timestamp": "2026-07-01T09:14:22Z"
}

Search result record (returned from a keyword):

{
"product_id": "1729382355331745106",
"title": "Hydrating Vitamin C Face Serum 30ml",
"product_url": "https://shop.tiktok.com/view/product/1729382355331745106",
"price": 9.74,
"original_price": 12.99,
"discount": "25% off",
"currency": "USD",
"rating": 4.82,
"review_count": 2431,
"sold_count": 15600,
"image": "https://...",
"seller_id": "7495...",
"seller_name": "GlowLab Official",
"keyword": "face serum",
"region": "us",
"timestamp": "2026-07-01T09:14:22Z"
}

πŸ—‚οΈ Data fields

Product identity

FieldTypeDescription
product_namestringProduct title
product_idstringTikTok Shop product ID
product_urlstringCanonical product URL
categorystringPrimary category
categoriesarrayFull category path
descriptionstringProduct description

Pricing

FieldTypeDescription
pricenumberList price
discounted_pricenumberCurrent price after discount
discount_percentagenumberDiscount as a percentage
price_min / price_maxnumberPrice range across variants
currencystringCurrency code

Ratings & reviews

FieldTypeDescription
ratingnumberAverage star rating
rating_countnumberNumber of ratings
reviews_totalnumberTotal reviews
rating_distributionobjectCount of 1 to 5 star ratings
reviewsarrayReview objects: rating, text, reviewer, verified-purchase flag, incentivized flag, images, country, time

Variants & stock

FieldTypeDescription
in_stockbooleanWhether the product is buyable
total_stocknumberTotal units across variants
variant_countnumberNumber of variants
variantsarrayEach SKU: name, price, stock, in-stock flag
specificationsobjectAttribute name and value pairs

Shipping

FieldTypeDescription
shipping_feenumberShipping cost
free_shippingbooleanFree shipping flag
delivery_min_days / delivery_max_daysnumberDelivery window

Seller & shop

FieldTypeDescription
shop_namestringShop name
shop_urlstringShop page URL
shop_idstringShop ID
average_ratingnumberShop average rating
shop_rating_countnumberNumber of shop ratings
follower_countnumberShop followers
total_productsnumberProducts in the shop
seller_locationstringSeller country

Media & meta

FieldTypeDescription
imagesarrayProduct image URLs
videosarrayProduct videos: cover, duration
image_urlstringPrimary image
sales_countnumberUnits sold
regionstringMarket code
timestampstringWhen the record was scraped

Search results carry product_id, title, product_url, price, original_price, discount, currency, rating, review_count, sold_count, image, seller_id, seller_name, keyword, and region.

πŸš€ Examples

Scrape a single product in full detail

{
"productUrls": ["https://shop.tiktok.com/view/product/1729382355331745106"]
}

Find products by keyword

{
"searchKeywords": ["face serum"],
"region": "us"
}

Scrape a batch of products at once

{
"productUrls": [
"https://shop.tiktok.com/view/product/1729382355331745106",
"https://shop.tiktok.com/view/product/1729382355331745107",
"https://shop.tiktok.com/view/product/1729382355331745108"
]
}

Search the UK catalog

{
"searchKeywords": ["wireless earbuds", "phone case"],
"region": "gb"
}

Combine search and detail in one run

{
"searchKeywords": ["led strip lights"],
"productUrls": ["https://shop.tiktok.com/view/product/1729382355331745106"],
"region": "us"
}

Compare a product across two markets

{
"productUrls": [
"https://shop.tiktok.com/us/pdp/1729382355331745106",
"https://shop.tiktok.com/gb/pdp/1729382355331745106"
]
}

πŸ€– Copy to your AI assistant

Paste this block into Claude, ChatGPT, or Cursor to give it full context about this scraper:

You have access to the TikTok Shop Scraper on Apify: SilentFlow/tiktok-shop-scraper
Input schema:
- productUrls (array of strings): TikTok Shop product URLs to scrape in full detail.
- searchKeywords (array of strings): keywords to search the TikTok Shop catalog.
- region (string, default "us"): one of us, gb, sg, id, my, th, vn, ph.
- debugMode (boolean, default false): extra diagnostics.
Provide productUrls, searchKeywords, or both.
Output per product (40+ fields): product_name, product_id, product_url, price,
discounted_price, discount_percentage, price_min, price_max, currency, rating,
rating_count, sales_count, in_stock, total_stock, variant_count, variants[],
specifications{}, category, categories[], shipping_fee, free_shipping,
delivery_min_days, delivery_max_days, reviews_total, rating_distribution{},
reviews[] (rating, text, reviewer_name, verified_purchase, incentivized, images, country),
shop_name, shop_url, shop_id, average_rating, shop_rating_count, follower_count,
total_products, seller_location, images[], videos[], region, timestamp.
Output per search result (17 fields): product_id, title, product_url, price,
original_price, discount, currency, rating, review_count, sold_count, image,
seller_id, seller_name, keyword, region, timestamp.
Pay per result. Proxies included. Use apify-client for Python or JavaScript.

πŸ’» Integrations

Find winning products with Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("SilentFlow/tiktok-shop-scraper").call(run_input={
"searchKeywords": ["face serum", "led strip lights", "phone case"],
"region": "us",
})
winners = []
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if item.get("sold_count", 0) > 5000 and item.get("rating", 0) >= 4.5:
winners.append(item)
winners.sort(key=lambda p: p["sold_count"], reverse=True)
for p in winners[:20]:
print(p["sold_count"], p["rating"], p["title"], p["product_url"])

Monitor competitor prices with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('SilentFlow/tiktok-shop-scraper').call({
productUrls: [
'https://shop.tiktok.com/view/product/1729382355331745106',
'https://shop.tiktok.com/view/product/1729382355331745107',
],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const p of items) {
console.log(`${p.product_name}: ${p.discounted_price} ${p.currency} (${p.discount_percentage}% off, stock ${p.total_stock})`);
}

Export straight to CSV

import csv
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("SilentFlow/tiktok-shop-scraper").call(run_input={
"searchKeywords": ["wireless earbuds"], "region": "gb",
})
rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())
with open("tiktok_shop.csv", "w", newline="") as f:
writer = csv.DictWriter(f, fieldnames=["title", "price", "rating", "sold_count", "product_url"])
writer.writeheader()
for r in rows:
writer.writerow({k: r.get(k) for k in writer.fieldnames})

πŸ“ˆ Performance

MetricDetail
SetupNone. Paste URLs or keywords and run.
Products per runNo fixed limit. Scrape one product or hundreds in a single run.
Fields per productOver 40, plus every variant, review, and video as its own object.
Search resultsDozens of products per keyword with price, rating, and sold count.
ReliabilityConsistent output across the full input list, including hard products.
FreshnessLive data, read at the moment of the run.

πŸ’Ύ Data export

Every run writes to a dataset you can export in one click as JSON, CSV, Excel, XML, HTML table, or RSS. You can also pull results programmatically from the dataset API:

https://api.apify.com/v2/datasets/{DATASET_ID}/items?format=csv&token=YOUR_TOKEN

Swap format=csv for json, xlsx, or xml to fit your pipeline. Results are ready for Google Sheets, Airtable, a database, or a BI tool.

πŸ’‘ Tips for best results

  • Start with search, then scrape in detail. Run a keyword search to surface product IDs and sold counts, then feed the URLs of the best performers back in for full detail with reviews.
  • Rank by sold count, not just rating. A 5-star product with 20 sales tells you less than a 4.6-star product with 15,000 sales. sold_count is the strongest demand signal.
  • Match the region to the URL. A United States product URL returns United States pricing and reviews. Set region to the market you actually care about.
  • Use rating distribution to read sentiment fast. A product with 90 percent 5-star reviews behaves very differently from one averaging 4.5 with a long 1-star tail. The rating_distribution field shows this at a glance.
  • Batch your URLs. Send many product URLs in one run instead of one run per product. It is faster and keeps your data in a single dataset.

❓ FAQ

What exactly does this scraper extract? Full product detail (price, discount, variants, stock, specifications, shipping, delivery, seller, and shop stats), product reviews with star distribution, and keyword search results with price, rating, and sold count.

How do I choose between search and product URLs? Use searchKeywords to discover products when you do not have URLs yet. Use productUrls when you already know the products and want full detail with reviews. You can use both in one run.

Do I need a TikTok or TikTok Shop account? No. The scraper reads publicly visible product and search data. No login, no API key, no cookies to manage.

How fresh is the data? It is read live at the moment of the run. Each record includes a timestamp so you know exactly when it was captured.

Can I scrape more than one keyword or product at a time? Yes. Both searchKeywords and productUrls accept lists, and you can combine them. There is no fixed limit on how many you pass.

Which markets are supported? United States and United Kingdom out of the box, plus Singapore, Indonesia, Malaysia, Thailand, Vietnam, and the Philippines from the region dropdown.

Do reviews come with every product? Product detail runs include reviews and the full rating distribution when the product page exposes them. Search results carry the review count and rating, not the individual reviews.

Why are some optional fields missing on a given product? TikTok Shop does not fill every field for every listing. Fields like videos, specifications, or seller_location appear only when the product page provides them, so they are omitted rather than returned empty.

What format is the output? Structured JSON, exportable to CSV, Excel, XML, HTML, or RSS, and available through the dataset API.

This Actor extracts publicly available data from TikTok Shop. It does not bypass any login, paywall, or CAPTCHA. Users are responsible for complying with TikTok Shop's terms of service and applicable laws in their jurisdiction. The data returned is informational; verify accuracy for regulated use cases.

πŸ“¬ Support

Need something this scraper doesn't do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations and high-volume plans
  • Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

Check out our other scrapers: silentflow on Apify