The Mine Works
TikTok Shop Product Scraper: Price, Rating and Seller Data Without a TikTok API
← All posts
tutorial June 30, 2026 · 6 min read

TikTok Shop Product Scraper: Price, Rating and Seller Data Without a TikTok API

How to scrape TikTok Shop product listings by shop URL or keyword — price, star rating, sold count and seller name — using a browser-based scraper.

Try the scraper

The actor referenced in this article. Pay only for results delivered.

View the scraper →

TikTok Shop crossed $66 billion in gross merchandise value in 2024 and is growing at over 100% year over year. In Southeast Asia it has already displaced Shopee and Lazada in several categories. In the US, the shopping tab reached millions of buyers within months of its launch. The problem for researchers and operators: TikTok offers no official scraping API, and the unofficial developer APIs give you social content, not shop data.

The TikTok Shop Products Scraper pulls product listings from TikTok Shop by shop URL or keyword search: product name, price, star rating, review count, sold count, seller name and product images. Two modes — scrape a specific shop’s full catalogue, or search the marketplace by keyword. Browser-based extraction for reliable bot bypass. Each product costs $0.004, nothing charged on failed pulls.

What You Get Per Product

  • productId — TikTok Shop’s internal product identifier
  • title — product listing name
  • price + currency — current listed price
  • originalPrice — pre-discount price when a sale is active
  • rating — average star rating (1–5)
  • reviewCount — number of customer reviews
  • soldCount — total units sold as displayed on the listing
  • sellerName — name of the shop selling the product
  • imageUrls — array of all product listing images
  • productUrl — direct link to the product page
  • shopUrl — link to the seller’s shop page

Scrape a TikTok Shop by URL in Python

import os
from apify_client import ApifyClient

apify = ApifyClient(os.environ["APIFY_TOKEN"])

# Shop mode: pull all products from a specific shop
run = apify.actor("themineworks/tiktok-shop-products").call(run_input={
    "mode": "shop",
    "shopUrl": "https://www.tiktok.com/@exampleshop/shop",
    "maxProducts": 100,
})

products = [
    p for p in apify.dataset(run["defaultDatasetId"]).iterate_items()
    if p.get("_type") != "summary"
]

print(f"Found {len(products)} products")
for p in products[:5]:
    print(f"{p['title'][:60]}")
    print(f"  Price: {p.get('currency', '$')}{p.get('price', 'N/A')}")
    print(f"  Rating: {p.get('rating')} ({p.get('reviewCount', 0)} reviews)")
    print(f"  Sold: {p.get('soldCount', 0)}")

Search TikTok Shop by Keyword in Python

# Search mode: find products matching a keyword across all shops
run = apify.actor("themineworks/tiktok-shop-products").call(run_input={
    "mode": "search",
    "keywords": ["wireless earbuds", "phone stand"],
    "maxProductsPerKeyword": 50,
    "proxyCountry": "US",          # target the US TikTok Shop
})

products = [
    p for p in apify.dataset(run["defaultDatasetId"]).iterate_items()
    if p.get("_type") != "summary"
]

# Find high-momentum products: high sold count, strong rating
momentum = [
    p for p in products
    if p.get("soldCount", 0) > 1000 and p.get("rating", 0) >= 4.5
]

print(f"High-momentum products ({len(momentum)} found):")
for p in sorted(momentum, key=lambda x: x.get("soldCount", 0), reverse=True)[:10]:
    print(f"  {p['title'][:55]}{p.get('soldCount')} sold @ {p.get('currency','$')}{p.get('price')}")

Shop mode takes a TikTok Shop URL (the storefront of a specific seller) and returns all products listed in that shop. Use this when you want to catalogue a competitor’s full product range — every SKU they sell, at what price, with what ratings.

Search mode takes one or more keywords and queries the TikTok Shop marketplace. Use this for trend discovery: which products are selling well in a category, what price points dominate, which sellers are capturing the most volume across a niche.

Wire It Into a Claude Agent via MCP

{
  "mcpServers": {
    "tiktok-shop-products": {
      "command": "npx",
      "args": ["-y", "@apify/mcp-client"],
      "env": {
        "APIFY_TOKEN": "your-token-here",
        "MCP_ACTOR_URL": "https://mcp.apify.com/?tools=themineworks/tiktok-shop-products"
      }
    }
  }
}

With the MCP server connected to Claude, you can ask Claude to research a product category on TikTok Shop — find what is trending, identify the top sellers by sold count, compare pricing across sellers, or flag which products have high sales but mediocre ratings (a signal that demand exists but the current supply is weak). Claude calls the actor and synthesises the results directly in the conversation.

Use Cases

Competitor price tracking. Pull a competitor’s shop on a schedule and store results in a spreadsheet. Track when they run sales, add new SKUs, discontinue products, or change prices. The originalPrice field tells you when a sale is active and by how much.

Product discovery and trend research. Search a category keyword and sort results by soldCount descending. Products with high sold counts and recent listing dates are trend signals — the market is voting with purchases. This is the same signal that TikTok’s own algorithm optimises for in the shopping feed.

Shop intelligence for brands. If you sell on TikTok Shop, pull the full product catalogues of your top 5 competitors monthly. Compare SKU count, average price point, and rating distribution. Are they expanding aggressively? Raising prices? Concentrating on fewer, better-rated SKUs?

Market research for new product launches. Before launching a new product category, search the relevant keywords on TikTok Shop to understand the competitive density. How many sellers are active? What is the price ceiling the market supports? What are buyers complaining about in review counts that are high but ratings that are mediocre?

Wholesale and supplier validation. If you source products to resell, search the category on TikTok Shop to understand your final-market price competition before committing to a supplier. The sold counts give you demand validation without a formal market study.

Supported Regions

TikTok Shop is live in the US, UK, and Southeast Asia (Malaysia, Thailand, Vietnam, Philippines, Singapore, Indonesia). Set proxyCountry in the input to target the marketplace visible from a specific country. Products, sellers and pricing vary significantly by region — a keyword search in SG returns a completely different competitive landscape from the same search in US.

Pricing

Each product costs $0.004. Pulling 500 products from a keyword search costs $2.00 (500 × $0.004). Products that return a CAPTCHA or network block without any data are not charged.

Frequently Asked Questions

Does it need a TikTok account or API access?

No. The actor uses a browser-based scraper with residential proxies to access publicly visible TikTok Shop listing pages — no TikTok account, API key or developer approval required.

What is the difference between shop mode and search mode?

Shop mode takes a TikTok Shop storefront URL and returns every product that seller lists. Search mode takes one or more keywords and queries the TikTok Shop marketplace — returning matching products from all sellers across the platform.

Which regions are supported?

TikTok Shop is available in the US, UK, and Southeast Asian markets (MY, TH, VN, PH, SG, ID). Set proxyCountry to the two-letter ISO code for the market you want. Products, prices and sellers differ substantially between regions.

Can I scrape individual product detail pages?

The actor returns listing-level data: name, price, rating, review count, sold count, seller and images. These fields are visible on shop and search pages. Full product detail pages — specification tables, all review text — require a separate enrichment step against the individual product URL.

How does the actor handle TikTok’s bot detection?

TikTok Shop uses browser fingerprinting and behavioural analysis. The actor uses Playwright with rotating residential proxies to mimic real browser sessions. It retries on detection events and skips products it cannot resolve without charging for them. For high-volume runs across competitive categories, use the proxyGroup: "RESIDENTIAL" setting for the highest bypass rate.

Related Actor

Explore the scraper referenced in this article — see inputs, outputs, and pricing, then run it on Apify.