TikTok Shop Scraper - Products, Prices, Ratings & Units Sold avatar

TikTok Shop Scraper - Products, Prices, Ratings & Units Sold

Pricing

from $2.00 / 1,000 actor run starteds

Go to Apify Store
TikTok Shop Scraper - Products, Prices, Ratings & Units Sold

TikTok Shop Scraper - Products, Prices, Ratings & Units Sold

Search TikTok Shop by keyword or browse its categories. Returns title, price, discount, brand, shop, rating with review count, units sold and promotion badges, plus the description and seller stats on product pages.

Pricing

from $2.00 / 1,000 actor run starteds

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

21 days ago

Last modified

Share

TikTok Shop Scraper

TikTok Shop Scraper turns TikTok Shop products into structured data for product research, price monitoring and market analysis. Search by keyword, browse categories or read product pages, and collect current prices, discounts, brands, sellers, ratings, review counts, units sold and promotion labels. Direct product pages also provide descriptions, category paths and seller statistics when those fields are available. Results are delivered to the default dataset, with a run summary and any collection errors in the default key-value store.

TikTok Shop Scraper input

Use targets for category URLs, product URLs or their numeric IDs. A six to nine digit ID identifies a category; IDs of ten or more digits identify products. You can mix categories and products in one list. Duplicate target URLs are collected once. A product URL selects the market present in that URL; a bare ID uses region, which defaults to us.

Leave both targets and keyword empty to browse six established categories: beauty and personal care, womenswear and underwear, food and beverages, home supplies, health, and phones and electronics. The default maximum is 100 distinct products. This limit is for the entire run, including subcategories. The allowed range of max_products is 1 to 2000.

Use keyword without targets to discover matching product pages through a public search index and read each product from TikTok Shop. Prices and ratings come from the product pages collected during the run. They are not copied from search snippets. search_pages controls the number of index result pages, from 1 to 10, with a default of 3. An index can omit recent products or ignore unusual query terms, so keyword searches should be interpreted as indexed discovery rather than an exhaustive catalogue search.

Use keyword together with category targets to filter the collected category cards. The complete keyword must occur in the title, ignoring letter case. Products excluded by the filter are counted in the summary. Direct product targets continue to read the requested products.

passes controls how many times each category is requested. TikTok Shop rotates the category selection, so repeated passes can discover additional products. The range is 1 to 10. The default is 3, or 6 when both a keyword and targets are supplied. Repeated cards are removed by product ID. subcategory_depth walks the child categories listed on category pages, from 0 to 3 levels. It defaults to 0, or 1 with a keyword and targets. attempts, from 1 to 25 and defaulting to 10, controls retries when a page does not contain usable product data. Raising it may help with intermittent availability but does not guarantee a result.

This is the existing category input used for the measured example:

{
"targets": ["https://shop.tiktok.com/us/c/beauty-personal-care/601450"],
"max_products": 100,
"attempts": 10,
"region": "us"
}

TikTok Shop product data output

Each dataset row represents a distinct product. Core fields include product_id, title, url, brand, seller, seller_id, price, currency, image_url, rating, review_count and sold_count. Prices and ratings are JSON numbers; product and seller IDs remain strings. position is numbered from one in the order of collection.

Promotion fields include original_price, discount_percent, saving and promotion_labels. An absent original price stays null: the current price is not duplicated to imply a discount. Product pages may redact digits in a price. Such a price remains null and price_masked identifies the redaction, so a partly hidden price is never turned into a misleading numeric amount. A product without reviews has a null rating rather than an invented zero score.

Direct product and search results can also contain description, category_path, seller_followers, seller_sold_count and seller_product_count. Fields unavailable on the served page stay null. Descriptions are limited to 2000 characters. Category cards retain the same fields, with detail-only values left empty. found_on identifies category, product or search, while source preserves the category label or discovery mode. fetched_at records collection time in UTC and country identifies a two-letter market when available.

This is the first row of a real run on the beauty and personal care category shown above. Runs now also add fetched_at and country to every row.

{
"product_id": "1732023707344540098",
"title": "[SKIN1004 Official Shop] Hyalu-Cica Water-Fit Sun Serum UV 50ml (OTC) - Lightweight Sunscreen for Daily Use, Korean Sunscreen, Watery and Creamy Texture, Sunscreen for Sensitive Skin",
"url": "https://shop.tiktok.com/us/pdp/hyalu-cica-water-fit-sun-serum-uv-50ml-otc-lightweight/1732023707344540098",
"slug": "hyalu-cica-water-fit-sun-serum-uv-50ml-otc-lightweight",
"brand": "SKIN1004",
"seller": "SKIN1004 US",
"seller_id": "7495275617887947202",
"price": 18.5,
"currency": "USD",
"currency_symbol": "$",
"original_price": null,
"discount_percent": null,
"saving": null,
"rating": 4.7,
"review_count": 17341,
"sold_count": 152220,
"promotion_labels": [
"Free shipping"
],
"image_url": "https://p19-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/7b95b208eb1643de86931b3e623b2dd4~tplv-fhlh96nyum-crop-webp:1000:1000.webp?dr=12190&t=555f072d&ps=933b5bde&shp=8dbd94bf&shcp=d741f1be&idc=useast5&from=2378011839",
"sku_id": "1732023707856507330",
"price_masked": null,
"description": null,
"category_path": null,
"seller_followers": null,
"seller_sold_count": null,
"seller_product_count": null,
"found_on": "category",
"source": "beauty-personal-care/601450",
"position": 1
}

The summary record includes pages read, distinct products seen before filtering, products returned, filtered products, discovered subcategories, products with ratings, promotion counts, currencies and total units sold. The errors record is written when pages or targets could not be collected. A partial result still delivers the products that were available. An unknown product or unavailable source can produce a successful empty run; it does not produce an empty product row.

Use cases for TikTok Shop data

  • TikTok Shop product research. Find products that sell in a category, compare their prices and units sold, and spot what is trending before you source or list a similar product.
  • Price and promotion monitoring. Track current prices, original prices, discounts and promotion labels for your own products or for competitors, and see when a promotion starts or ends.
  • Brand and seller tracking. Follow which shops sell a brand, how many products they list and how much they have sold, for brand protection or partner selection.
  • TikTok Shop analytics in your own tools. Load the dataset into a spreadsheet, BI dashboard or database and build the reports you need, instead of reading numbers off a subscription dashboard.
  • Catalogue enrichment. Read a known list of product IDs on a schedule and keep titles, images, category paths and ratings current.

TikTok Shop Scraper vs. the TikTok Shop API and analytics tools

The official TikTok Shop API is built for sellers and partner apps that manage a shop. It requires an approved app and authorization from that shop, and it centres on that shop's own products and orders rather than the wider marketplace. TikTok Shop analytics subscriptions show ready-made dashboards, but they charge a monthly fee and you cannot always export the raw rows. Writing your own scraper means handling changing page layouts, retries and pagination yourself.

This actor sits between those options. It reads the public product information anyone can see on TikTok Shop, delivers it as JSON, CSV or Excel through the Apify dataset, and charges a small start fee plus each product you receive. You can schedule it, call it from the Apify API, or connect it to integrations such as Google Sheets, webhooks and Make.

TikTok Shop Scraper pricing

Pricing remains $0.002 per run start and $0.002 per delivered product. The product charge follows the number of rows delivered to the dataset. A run returning no products has no product charge and retains only the start charge. Repeated products within the run are deduplicated and are charged once. Users without a paid Apify plan receive at most ten products per run. max_products lets paying users set their desired result ceiling.

FAQ

Can I collect a product using only its ID?

Yes. Put its numeric ID in targets. A full product URL also works and selects the market from that URL. Product IDs remain strings in the output, which preserves their precision when used in spreadsheets or other systems.

Why did a category return fewer products than my maximum?

The maximum is a ceiling. Category selections can overlap between passes, and a keyword filter can remove products that do not match. Availability, the selected categories and the depth of the category walk also affect the final count. The summary separates products seen from products delivered.

Why are some prices or ratings empty?

The source may hide a product price or supply no reviews. Missing values remain null. Check price_masked for a redacted price and review_count for rating context. Category cards and product pages can expose different fields.

Is keyword discovery a complete inventory?

No. A public index determines which product pages can be discovered by the query. Browse category targets and their subcategories when you need broader coverage of a category, and use direct IDs for a known product list.

Do I need a TikTok account or the TikTok Shop API?

No. The actor reads public TikTok Shop pages. You do not need a seller account, an approved partner app or any login. Run it from the Apify Console or through the Apify API with your Apify token.