TikTok Shop Scraper | Products, Sellers and Creator Videos avatar

TikTok Shop Scraper | Products, Sellers and Creator Videos

Pricing

from $4.50 / 1,000 results

Go to Apify Store
TikTok Shop Scraper | Products, Sellers and Creator Videos

TikTok Shop Scraper | Products, Sellers and Creator Videos

Scrape TikTok Shop without an account: products with variants, stock and up to 1,000 reviews, the creator videos that sell them, every product of a store or a creator, keyword search in 6 markets, categories in 10, and price and sales changes between runs.

Pricing

from $4.50 / 1,000 results

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

1

Bookmarked

79

Total users

17

Monthly active users

5 days ago

Last modified

Share

TikTok Shop Scraper | Products, Prices, Sellers and Creator Videos (2026)

1 URL. 45 TikTok Shop results. 13 fields per result.

From SilentFlow. Creators of Pinterest Scraper (#1 for โ€œpinterest pins scraperโ€ in Apify Store search) and Leboncoin Scraper, with 260,000+ combined lifetime runs.

Every TikTok Shop product as a clean record: variants with stock, prices, shipping and delivery, shop scores, up to 1,000 reviews and the creator videos that sell it. Ten products in under a minute, a whole keyword search (190 products for "face cream") in 20 seconds, every product of a 672-product store in under a minute.

Why choose this actor?

Copying TikTok Shop listings into a spreadsheet one tab at a time? Paying for a product scraper, then a second one for search, then a third for categories? Losing a quarter of your runs to scrapers that come back empty?

  • See which creators sell each product, and what each creator sells. Every US product comes with the creator videos promoting it on TikTok: views, likes, creator name, posting date and link, up to 20 videos per product. The other way round, paste a creator's @username and get every TikTok Shop product their videos promote, with how many videos show it and their views: 76 products for a UK creator, 158 and 171 for two Malaysian creators, in about 20 seconds each, in the US, the UK, Thailand and Malaysia.
  • Up to 1,000 reviews per product, at no extra cost. Newest first, each with its rating, text, photos, variant, country and verified-purchase flag, and filtered by star rating, photos or verified purchases when you want. A product with 48,333 reviews gave 1,000 distinct ones in 86 seconds, and UK, Thai and Vietnamese products returned theirs too. The reviews are part of the product row: no extra charge, whatever their number.
  • 61 fields per product, not 15. On a 10-product US run, each record filled 60.7 fields on average: every variant with its own price, stock and purchase limit, the variant options and which ones are sold out, the promotion tags, the saving and the revenue its sales imply, the shipping fee and the fee before discount, the delivery window and estimated dates, whether TikTok ships it, the shop's rating, followers, badge and service scores, the seller's registered business name and address, specifications, the category path and the reviews shown on the page.
  • Every product of a store, with its revenue. Paste a store link and get one row for the store (rating, followers, units sold, service scores and an estimated revenue) then every product it sells. Planet Beauty's 672 products came back in under a minute, and stores in the UK, Mexico, Malaysia, Thailand, Vietnam and Japan work too.
  • Search, categories, stores and product pages in one run, across 10 markets. Keyword search works in the US and five Southeast Asian markets: 185 products for "face cream" in Singapore, 165 in Thailand, 155 in the Philippines, 150 in Vietnam, each in under 10 seconds. A US category returned 105 products in 12 seconds. Product pages read 10 of 10 in the US, and 35 of 35 across Malaysia, Thailand, Vietnam, the Philippines, Mexico, Japan and Singapore.
  • See what changed since your last run. Turn on change tracking and every product gets its previous price and price change, the units sold since the last run and per day, its stock change and the date it first appeared. It works for product links, searches, categories and stores, in every market: schedule the run daily and follow a niche or a competitor's store.
  • No account, no cookies. Paste links, type keywords, hit Start. Nothing to log in to, nothing to refresh.

Try TikTok Shop Scraper

Try your first products

Paste this input in the Input tab and press Start. It scrapes one product in full with 50 of its reviews, a keyword search and a category, 41 rows in about a minute:

{
"productUrls": [
"https://shop.tiktok.com/us/pdp/johnny-b-mode-styling-gel-medium-hold-thick-finish/1731647788492165274"
],
"searchKeywords": [
"face cream"
],
"categoryUrls": [
"https://shop.tiktok.com/us/c/moisturizers-mists/601615"
],
"region": "us",
"maxItems": 20,
"maxReviewsPerProduct": 50
}

Works on the Apify free plan: the monthly free credit covers hundreds of products, enough to test the Actor on your own catalog before you commit.

How it works

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 (every filled field is scraped in the same run):
- productUrls (array of strings): product links in any form (shop.tiktok.com/us/pdp/<slug>/<id>,
shop.tiktok.com/view/product/<id>, tiktok.com/shop/pdp/..., Tokopedia links) or bare product IDs
- searchKeywords (array of strings): keyword searches in the us, sg, my, ph, th or vn market
- categoryUrls (array of strings): category pages, any of the 10 markets
- storeUrls (array of strings): store links (shop.tiktok.com/<cc>/store/<name>/<id>,
tiktok.com/shop/store/<name>/<id>) or bare seller IDs (us, gb, mx, my, th, vn, jp), and creators
as @username or tiktok.com/@username (read in the region market)
- region (string, default "us"): us, gb, mx, my, ph, sg, th, vn, jp, id. Used for keywords and bare IDs
- maxItems (integer, default 0 = no cap): products per keyword, per category and per store
- includeDetails (boolean, default false): open every product found by search, category or store in full
- maxReviewsPerProduct (integer 0 to 1000, default 0): reviews collected per product opened in full,
newest first; 0 keeps the reviews shown on the product page (usually 3)
- reviewFilter (string, default "all"): all, 5, 4, 3, 2, 1 (one star rating), media (with photos or
videos), verified (verified purchases)
- trackChanges (boolean, default false): compare every product with the previous run that had this
option on, and add the change fields below
Output, one row per product.
Full product rows (product links, or search/category with includeDetails):
- identity: product_id, product_url, product_name, brand, region, keyword, position
- price: price, discounted_price, discount_percentage, savings, price_min, price_max, currency, tags
- sales and reputation: sales_count, estimated_revenue, rating, rating_count, reviews_total,
rating_distribution
- content: description, specifications, ai_title, ai_description, ai_keywords, category, categories,
category_id, category_url, image_url, images
- stock: in_stock, total_stock, variant_count, variants[] (sku_id, name, price, original_price, stock,
in_stock, purchase_limit, warehouse_id, image), variant_options, in_stock_variants,
sold_out_variants, inventory_value
- shipping: shipping_fee, original_shipping_fee, free_shipping, delivery_min_days, delivery_max_days,
delivery_estimate, delivery_option, ship_from, fulfilled_by_tiktok
- shop: shop_id, shop_name, shop_url, shop_logo, shop_badge, average_rating, shop_rating_count,
follower_count, total_products, shop_sold_count, shop_video_count, shop_scores, seller_location,
seller_business_name, seller_business_address
- reviews[] (review_id, rating, text, reviewer_name, reviewer_id, verified_purchase, incentivized,
variant, sku_id, country, images, date, reviewer_avatar), up to maxReviewsPerProduct
- US only: affiliate_videos[] (video_id, url, title, views, likes, author_id, author_name, posted_at,
duration_seconds, cover_url), affiliate_video_count, seller_other_products[],
shop_top_reviewed_products[] (with review_text)
- timestamp (RFC 3339)
Listing rows (search, category and store without includeDetails):
- product_id, title, product_url, position, price, original_price, price_min, price_max, currency,
discount, discount_percent, savings, tags, free_shipping, deal_ends_at, variant_count, rating,
review_count, sold_count, estimated_revenue, image, seller_id, seller_name, brand, video_views,
video_author, keyword, region, timestamp
Change fields (product and listing rows, with trackChanges, from the second run on):
- previous_price, price_change, price_change_percent, previous_sold_count, sold_since_last_run,
sold_per_day, stock_change (full rows), first_seen_at, previous_run_at
Store rows (one per store link, before its products):
- shop_id, shop_name, shop_url, shop_logo, region, products_found, products_sold_count,
estimated_revenue (price x units sold over the products found), currency, timestamp
- US stores also: shop_badge, verified, tiktok_account_name, tiktok_account_id, average_rating,
shop_rating_count, follower_count, total_products, shop_sold_count, shop_video_count, shop_scores
Creator rows (one per creator, before their products):
- creator_username, creator_name, creator_url, creator_avatar, bio, verified, follower_count,
following_count, likes_count, video_count, videos_scanned, shop_videos, products_found, region
Creator product rows (products the creator's videos tag; no price: use includeDetails for it):
- product_id, title, product_url, image, category, seller_id, currency, sponsored, creator_videos,
creator_video_views, last_promoted_at, keyword (@username), position, region, timestamp
Use apify-client for Python or JavaScript to run it and read the default dataset.

How to scrape TikTok Shop products

Get one product in full, with its creator videos

{
"productUrls": ["https://shop.tiktok.com/us/pdp/johnny-b-mode-styling-gel-medium-hold-thick-finish/1731647788492165274"]
}

One row with variants, stock, shipping, shop details, reviews and the creator videos that promote it.

Map a keyword niche in the US

{
"searchKeywords": ["face cream", "led face mask"],
"region": "us",
"maxItems": 200
}

Each keyword returns its listing: price, rating, sold count, shop, brand and the views of the product's promotion video. "face cream" gave 190 products, "led face mask" 40, which is everything TikTok lists for it.

Collect 1,000 reviews of a product

{
"productUrls": ["https://shop.tiktok.com/us/pdp/1729602706345005815"],
"maxReviewsPerProduct": 1000
}

One row with the full product and its 1,000 most recent reviews, in 86 seconds on our latest run. Add "reviewFilter": "1" to get only the 1-star reviews, the fastest way to see what buyers complain about.

Search a keyword in Southeast Asia

{
"searchKeywords": ["sunscreen", "tudung"],
"region": "my",
"maxItems": 100
}

Keywords work in English or the local language. This Malaysia run returned 100 products per keyword in 6 seconds, priced in ringgit.

List every product of a store

{
"storeUrls": [
"https://shop.tiktok.com/us/store/planet-beauty/7495863828072663194",
"https://shop.tiktok.com/gb/store/perfume-home/7494222496103564379"
]
}

Each store gives one store row, then all its products, best sellers first. Planet Beauty returned its 672 products, and its store row carries the rating, 36,000 followers, 76,651 units sold, its service scores and an estimated revenue.

See what a creator sells

{
"storeUrls": ["@abi.stanfordx"],
"region": "gb"
}

One row for the creator, then every TikTok Shop product their recent videos promote, with how many of their videos show it, the views of those videos and the date of the latest one. This UK creator promoted 76 products across 302 videos. Set region to the creator's market: TikTok shows a video's products only to viewers of that market. Turn on includeDetails to get each product's price, stock and reviews.

Read a whole category in another market

{
"categoryUrls": ["https://shop.tiktok.com/my/c/beauty-personal-care/601450"],
"maxItems": 100
}

The market comes from the link. This Malaysia beauty category returned 100 products in 12 seconds.

Input parameters

ParameterTypeDefaultDescription
productUrlsarrayemptyProduct links or bare product IDs, scraped in full
searchKeywordsarrayemptyKeyword searches in the US, Singapore, Malaysia, Philippines, Thailand or Vietnam
categoryUrlsarrayemptyCategory pages in any of the 10 markets
storeUrlsarrayemptyStore links or bare seller IDs (US, UK, Mexico, Malaysia, Thailand, Vietnam, Japan), and creators as @username or a profile link
regionstringusMarket for keywords, bare product IDs and bare seller IDs: us, gb, mx, my, ph, sg, th, vn, jp, id
maxItemsinteger0Products per keyword, per category and per store. 0 means no cap
includeDetailsbooleanfalseOpen every product found by search, category or store in full
maxReviewsPerProductinteger0Reviews per product opened in full, newest first, up to 1,000. 0 keeps the reviews shown on the product page
reviewFilterstringallall, one star rating (5 to 1), media (with photos or videos) or verified (verified purchases)
trackChangesbooleanfalseCompare every product with the previous run that had this option on: price change, units sold since then and per day, stock change, first seen

Every field you fill is scraped in the same run: you can mix product links, keywords, categories and stores.

Accepted product link formats:

  • https://shop.tiktok.com/us/pdp/<product-name>/<id> (the address bar on TikTok Shop)
  • https://shop.tiktok.com/us/pdp/<id>
  • https://shop.tiktok.com/view/product/<id> (share links)
  • https://www.tiktok.com/shop/pdp/<product-name>/<id>
  • https://shop-id.tokopedia.com/pdp/<product-name>/<id> (Indonesia)
  • a bare product ID such as 1731647788492165274, read in the region market

What data can you extract from TikTok Shop?

A full product row has up to 70 top-level fields (66 on our latest 10-product US run, 60.7 of them filled on average), and 9 more with change tracking. The nested lists add more:

GroupFields
Identityproduct_id, product_url, product_name, brand, region, keyword, position (rank in the search, category or store it was found in)
Priceprice, discounted_price, discount_percentage, savings, price_min, price_max, currency, tags (promotion labels such as Free shipping or Flash sale)
Sales and reputationsales_count, estimated_revenue (price times units sold), rating, rating_count, reviews_total, rating_distribution (1 to 5 stars)
Contentdescription, specifications, ai_title, ai_description, ai_keywords
Categorycategory, categories, category_id, category_url
Mediaimage_url, images
Stockin_stock, total_stock, variant_count, variants (up to 9 fields each: sku_id, name, price, original_price when discounted, stock, in_stock, purchase_limit, warehouse_id, image), variant_options (SIZE: 16.OZ, 32.OZ...), in_stock_variants, sold_out_variants, inventory_value (price times stock over the variants)
Shippingshipping_fee, original_shipping_fee, free_shipping, delivery_min_days, delivery_max_days, delivery_estimate, delivery_option, ship_from, fulfilled_by_tiktok
Shopshop_id, shop_name, shop_url, shop_logo, shop_badge, average_rating, shop_rating_count, follower_count, total_products, shop_sold_count, shop_video_count, shop_scores, seller_location, seller_business_name, seller_business_address
Reviewsreviews, up to 1,000 per product with maxReviewsPerProduct (13 fields each: review_id, rating, text, reviewer_name, reviewer_id, reviewer_avatar, verified_purchase, incentivized, variant, sku_id, country, images, date)
Creator videos (US)affiliate_videos (10 fields each: video_id, url, title, views, likes, author_id, author_name, posted_at, duration_seconds, cover_url), affiliate_video_count
Shop context (US)seller_other_products (9 fields each), shop_top_reviewed_products (10 fields each, with a review text)
Changes (with trackChanges)previous_price, price_change, price_change_percent, previous_sold_count, sold_since_last_run, sold_per_day, stock_change, first_seen_at, previous_run_at
Metatimestamp

Search, category and store results without includeDetails are listing rows of up to 29 fields: product_id, title, product_url, position, price, original_price, price_min, price_max, currency, discount, discount_percent, savings, tags, free_shipping, deal_ends_at (when the flash sale ends), variant_count, rating, review_count, sold_count, estimated_revenue, image, seller_id, seller_name, brand, video_views, video_author, keyword, region, timestamp, plus the change fields with trackChanges.

Each store link also gives one store row, before its products: shop_id, shop_name, shop_url, shop_logo, region, products_found, products_sold_count, estimated_revenue and currency. A US store adds its own record: shop_badge, verified, tiktok_account_name and tiktok_account_id (the TikTok account behind the store), average_rating, shop_rating_count, follower_count, total_products, shop_sold_count, shop_video_count and shop_scores (positive feedback, on-time delivery, chat satisfaction, replies within 24h). The Stores tab of the output shows them in one table.

Each creator gives one creator row (username, name, followers, likes, videos, videos read, videos with products, products found), then one row per product their videos promote: product_id, title, product_url, image, category, seller_id, sponsored, creator_videos, creator_video_views, last_promoted_at and position. TikTok's product tag carries no price: turn on includeDetails to open each product in full.

Good to know when you store the data:

  • product_id is stable, and product_url is the product's canonical address on TikTok Shop.
  • Dates (timestamp, review date, video posted_at) are RFC 3339 in UTC.
  • Image and video links are TikTok media links: keep the IDs and canonical URLs for archiving, media links can expire.
  • sales_count is the number of items sold since the product was listed, as TikTok Shop shows it.
  • The output's "Reviews, one per row" tab lists every review collected on its own row, with its product, ready to export as CSV or Excel.

Output example

One US product, with the lists shortened to two items:

{
"product_id": "1731355078817452186",
"product_url": "https://shop.tiktok.com/us/pdp/k18-leave-in-hair-mask-biomimetic-molecular-repair-for-damaged-hair/1731355078817452186",
"product_name": "TT Biomimetic Leave-In Molecular Repair Hair Mask - Vegan, Artificial Color-Free Haircare Product for Adults with Strengthening Hair Benefits, Powered by Bio...",
"region": "us",
"price": 36.99,
"discounted_price": 36.99,
"discount_percentage": 0,
"price_min": 36.99,
"price_max": 82.99,
"currency": "USD",
"sales_count": 3454,
"rating": 4.7,
"rating_count": 224,
"reviews_total": 224,
"rating_distribution": {
"1": 16,
"2": 1,
"3": 5,
"4": 11,
"5": 191
},
"description": "๐ŸŒŸ K18 Biomimetic Hairscience Leave-In Hair Mask ๐ŸŒŸ\n\nTransform your hair care with the K18 Biomimetic Hairscience Leave-In Hair Mask. This innovative formula t...",
"specifications": {
"Aerosols": "No",
"Age group": "Adults",
"Contains batteries or cells?": "None",
"Dangerous goods or hazardous materials": "No",
"Flammable liquid": "No",
"Hair type": "Damaged,Color and chemically treated",
"Ingredients": "Water (Aqua) (Eau),Alcohol Denat.,Propylene Glycol,Cetearyl Alcohol,Dicaprylyl Ether,Cetyl Esters,Behentrimonium Chloride,Polysorbate 20,sh-Oligopeptide-78 (...",
"Manufacturer": "k18",
"Packaging type": "Jar,Bottle",
"Product form": "Cream",
"Region of origin": "US",
"Scent": "Fresh"
},
"ai_title": "TT Biomimetic Leave-In Molecular Repair Hair Mask - Nourishing Haircare Essential",
"ai_description": "Repair extreme hair damage with TT Biomimetic Leave-In Molecular Repair Hair Mask, featuring patented K18Peptide for healthier, renewed hair.",
"ai_keywords": [
"molecular repair hair mask",
"leave-in hair treatment"
],
"category": "Beauty & Personal Care > Haircare & Styling > Hair Oils & Treatments > Hair Masks",
"categories": [
"Beauty & Personal Care",
"Haircare & Styling",
"Hair Oils & Treatments",
"Hair Masks"
],
"category_id": "1405968",
"category_url": "https://shop.tiktok.com/us/c/hair-oils-treatments/981512",
"image_url": "https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/6f8bd8a6cd3443cbb0cabc7f8a84dd0b~tplv-fhlh96nyum-crop-webp:800:800.webp?dr=12190&t=5...",
"images": [
"https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/6f8bd8a6cd3443cbb0cabc7f8a84dd0b~tplv-fhlh96nyum-crop-webp:800:800.webp?dr=12190&t=5...",
"https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/6b4e017a76e74077988c8a41fefd545e~tplv-fhlh96nyum-crop-webp:800:800.webp?dr=12190&t=5..."
],
"in_stock": true,
"total_stock": 260,
"variant_count": 2,
"variants": [
{
"sku_id": "1731355079990087834",
"name": ".5OZ",
"price": 36.99,
"stock": 80,
"in_stock": true,
"purchase_limit": 200,
"warehouse_id": "7652182050347566861",
"image": "https://p16-oec-general.ttcdn-us.com/tos-maliva-i-o3syd03w52-us/1cc36195a89d8712bcc0b67ebb692f92~tplv-fhlh96nyum-resize-jpeg:800:800.jpeg?dr=12186&t=555f072d..."
},
{
"sku_id": "1731355079990022298",
"name": "1.7OZ",
"price": 82.99,
"stock": 180,
"in_stock": false,
"purchase_limit": 200,
"warehouse_id": "7468284108785714990",
"image": "https://p16-oec-general.ttcdn-us.com/tos-maliva-i-o3syd03w52-us/6ce15fb3438c946c728a25d7cfd51384~tplv-fhlh96nyum-resize-jpeg:800:800.jpeg?dr=12186&t=555f072d..."
}
],
"shipping_fee": 0,
"original_shipping_fee": 5.99,
"free_shipping": true,
"delivery_min_days": 3,
"delivery_max_days": 6,
"delivery_estimate": "Oct 16 - Oct 19",
"delivery_option": "Standard",
"ship_from": "local",
"fulfilled_by_tiktok": true,
"shop_id": "7495863828072663194",
"shop_name": "Planet Beauty",
"shop_url": "https://shop.tiktok.com/us/store/planet-beauty/7495863828072663194",
"shop_logo": "https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/814792bd0cbb455889f3f5a948399215~tplv-fhlh96nyum-resize-webp:300:300.webp?dr=12185&t...",
"shop_badge": "OFFICIAL SHOP",
"average_rating": 4.6,
"shop_rating_count": 4246,
"follower_count": 36430,
"total_products": 673,
"shop_sold_count": 76651,
"shop_video_count": 1789,
"shop_scores": {
"Chat satisfaction": 75,
"Issue resolution": 0,
"On-time delivery": 91,
"Positive feedback": 83
},
"seller_location": "US",
"seller_business_name": "BEAUTY WEB lIMITED PARTNERSHIP",
"seller_business_address": "3199 Red Hill Ave Ste A,Costa Mesa,California,92626",
"reviews": [
{
"review_id": "7678458522710918943",
"rating": 1,
"text": "The bottle is empty. Pumped several 100 times nothing came out, took the top off trying to get something out, nothing! Spent way too much on this VERY SMALL ...",
"reviewer_name": "T**i S**r",
"reviewer_id": "6982563319509894149",
"verified_purchase": true,
"incentivized": false,
"variant": ".5OZ",
"sku_id": "1731355079990087834",
"country": "US",
"images": [
"https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/fe940d31d51b42e5951c245d7afc492b~tplv-fhlh96nyum-crop-webp:300:300.webp?dr=12190&t=5...",
"https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/09c3cd1e5d8e414eac61157a8d132a22~tplv-fhlh96nyum-crop-webp:300:300.webp?dr=12190&t=5..."
],
"date": "2026-08-26T21:40:52Z"
},
{
"review_id": "7667764002801501966",
"rating": 5,
"text": "best product ever it leaves my hair glossy smooth soft all the above i loveeee it helped a lot when i had red hair",
"reviewer_name": "a**",
"reviewer_id": "6682591875717186565",
"verified_purchase": true,
"incentivized": false,
"variant": "1.7OZ",
"sku_id": "1731355079990022298",
"country": "US",
"images": [
"https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/b25b62e4db1f4cb191af877dda14c2fc~tplv-fhlh96nyum-crop-webp:300:300.webp?dr=12190&t=5...",
"https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/8caef5add2ff47e3b291498fab81010d~tplv-fhlh96nyum-crop-webp:300:300.webp?dr=12190&t=5..."
],
"date": "2026-07-29T02:01:09Z"
}
],
"affiliate_videos": [
{
"video_id": "7646963206182817055",
"url": "https://www.tiktok.com/@maizy/video/7646963206182817055",
"title": "No extensions. ๐Ÿคโœจ One year of growth, less breakage, and a few products I refuse to run out of. Whatโ€™s your biggest hair struggle right now? ๐Ÿ‘‡ #hairtok #blon...",
"views": 8449,
"likes": 1429,
"author_id": "6621609712315301894",
"author_name": "maizy",
"posted_at": "2026-06-03T00:43:05Z",
"duration_seconds": 15,
"cover_url": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/ogjxrIt3AzUgYEJU8vqLIENPgC9e9puerAGeI5~tplv-tiktokx-360p.jpeg?dr=9616&refresh_token=002c5f2b&..."
},
{
"video_id": "7586458022893849870",
"url": "https://www.tiktok.com/@Sara Weaver/video/7586458022893849870",
"title": "Sale is as of 12/21/2025 and is for a limited time only. Prices are subject to change. #hairmask #k18 #hair",
"views": 892691,
"likes": 1149,
"author_id": "6692187729658594309",
"author_name": "Sara Weaver",
"posted_at": "2025-12-21T23:32:08Z",
"duration_seconds": 31,
"cover_url": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/oEQEEDAFgIW0BRBgelESCGIIPzgzDfdBS3qplI~tplv-tiktokx-360p.jpeg?dr=9616&refresh_token=de8f569b&x..."
}
],
"affiliate_video_count": 20,
"seller_other_products": [
{
"product_id": "1731555581863104666",
"title": "K18 Biomimetic HeatBounce Scented Vanilla Leave-In Conditioner - Haircare Heat Protectant with UV Protection, Oil-Infused Formula, Advanced Resilicore Heat-S...",
"url": "https://shop.tiktok.com/us/pdp/k18-heatbounce-leave-in-conditioner-heat-uv-protection/1731555581863104666",
"price": 65,
"currency": "USD",
"rating": 4.8,
"review_count": 69,
"sold_count": 1065,
"image": "https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/7c395d4925f046a881e6b76de5df34e5~tplv-fhlh96nyum-crop-webp:2000:2000.webp?dr=12190&t..."
},
{
"product_id": "1732099368812449946",
"title": "BaBylissPRO Nano Titanium Ultra-Sleek 1 in Precision Flat Iron - Salon-Grade Hair Tool, Adjustable Precision, 450ยฐF Heat, Frizz Control, Lightweight, At-Home...",
"url": "https://shop.tiktok.com/us/pdp/babyliss-pro-nano-titanium-flat-iron-1-inch-model-bnt130t/1732099368812449946",
"price": 99.99,
"currency": "USD",
"rating": 4.5,
"review_count": 97,
"sold_count": 774,
"image": "https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/d1f9a892ead34ababa1f24665141664d~tplv-fhlh96nyum-crop-webp:2000:2000.webp?dr=12190&t..."
}
],
"shop_top_reviewed_products": [
{
"product_id": "1730804814760480922",
"title": "BaBylissPRO Studio Design Standing Hot Rollers (Model BCISHRUC) - Salon-Style Standing Unit Hair Styling Tools, 16-Roller Ceramic Set with Heat Protection, V...",
"url": "https://shop.tiktok.com/us/pdp/standing-hot-rollers-babylisspro-studio-design-series-with-16-rollers/1730804814760480922",
"price": 114.99,
"currency": "USD",
"rating": 4.5,
"review_count": 2,
"sold_count": 54,
"image": "https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/9054529b9f94468ba1e9e711b1ba62b2~tplv-fhlh96nyum-crop-webp:2000:2000.webp?dr=12190&t...",
"review_text": "these BaBylissPRO hot rollers might be the best hair purchase I've made all year. The curls hold literally all day, the sizes let me switch up my look, and e..."
},
{
"product_id": "1732535596575068314",
"title": "K18 Biomimetic Future IQ Hair Longevity Serum - Multivital Formula Haircare Product, Dropper-Applied Thin-Lightweight Scalp Hair Strengthener for Premature A...",
"url": "https://shop.tiktok.com/us/pdp/k18-biomimetic-hair-longevity-serum-for-stronger-hair/1732535596575068314",
"price": 156,
"currency": "USD",
"rating": 5,
"review_count": 7,
"sold_count": 260,
"image": "https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/a96dce6e940f48f1bd8b960fb71e9fec~tplv-fhlh96nyum-crop-webp:2000:2000.webp?dr=12190&t...",
"review_text": "Was a bit skeptical at first ordering from here given all the AI videos that are posted on the page but I received a pretty big discount off the product from..."
}
],
"timestamp": "2026-10-13T17:42:19Z"
}

Advanced usage

Find the creators driving a product

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

Sort affiliate_videos by views to see which creators move each product, then contact them or study their hooks.

Turn a niche into a full product database

{
"searchKeywords": ["hair oil"],
"region": "us",
"maxItems": 50,
"includeDetails": true
}

Every product found is opened in full: variants, stock, shipping, shop scores and creator videos for the top 50 results of the keyword.

Track prices and sales across a category every morning

{
"categoryUrls": ["https://shop.tiktok.com/us/c/beauty-personal-care/601450"],
"maxItems": 0,
"trackChanges": true
}

Schedule this daily in Apify. From the second run on, every product carries its price change, the units sold since the previous run and per day, and the date it first appeared: sort by sold_per_day to find what is taking off, or open the Changes tab of the output.

Compare the same niche in two markets

{
"categoryUrls": [
"https://shop.tiktok.com/gb/c/beauty-personal-care/601450",
"https://shop.tiktok.com/jp/c/beauty-personal-care/601450"
],
"maxItems": 100
}

Each category keeps its own market, so one run gives you the UK and Japan side by side.

Feed a sourcing sheet from Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("silentflow/tiktok-shop-scraper").call(run_input={
"searchKeywords": ["face cream"],
"maxItems": 100,
})
rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())
best_sellers = sorted(rows, key=lambda r: r.get("sold_count", 0), reverse=True)[:20]
for r in best_sellers:
print(r["sold_count"], r["price"], r["seller_name"], r["title"][:60])

The same dataset is available as CSV, Excel or JSON from the Storage tab, or from the API with /v2/datasets/<dataset id>/items?format=csv.

FAQ

What is TikTok Shop? TikTok Shop is the store built into TikTok: products are sold in the app and promoted by creators in their videos, who earn a commission. It runs in the US, the UK, Mexico, Japan and Southeast Asia.

What does this scraper return? For a product link, a full product record: prices, every variant with stock, shipping and delivery, the shop and its scores, specifications, the reviews shown on the page and, in the US, the creator videos promoting the product. For keywords and categories, a listing row per product, or a full record with includeDetails.

Do I need a TikTok account or cookies? No. The Actor reads public product, search and category pages. Nothing to log in to.

Which markets work? Ten: United States, United Kingdom, Mexico, Malaysia, Philippines, Singapore, Thailand, Vietnam, Japan and Indonesia. Category pages work in all of them. Keyword search covers the US, Singapore, Malaysia, the Philippines, Thailand and Vietnam: TikTok Shop has no keyword search in the UK, Mexico, Japan and Indonesia, so use category or store links there. Store links work in the US, UK, Mexico, Malaysia, Thailand, Vietnam and Japan. Product pages are complete in all of them: 10 of 10 in the US and 35 of 35 across Malaysia, Thailand, Vietnam, the Philippines, Mexico, Japan and Singapore on our latest runs, with 44 to 53 fields filled outside the US. A product TikTok refuses is listed in the run's status message instead of the dataset, so you never pay for an empty row.

Why do some products have no creator videos? Creator videos are a US feature of TikTok Shop, and not every product has creators promoting it. On our latest 10-product US run, 9 carried videos.

Can I get every product of a TikTok Shop store? Yes. Paste the store link, or the seller ID with its market, in storeUrls. You get every product the store sells, best sellers first, to the end of its catalog: 672 of 672 for Planet Beauty. Set maxItems to keep only the top sellers.

How is the estimated revenue of a store computed? For each product found, today's price times the units sold, summed in estimated_revenue, with the units in products_sold_count. It is an estimate: past sales may have happened at other prices, and products the store no longer sells are not in it. For a US store, shop_sold_count is TikTok's own count of every unit the store has sold.

Can I see which products a creator promotes? Yes. Paste the creator as @username or their profile link in the stores field, and set region to their market. The Actor reads their latest videos (up to 300) and lists every TikTok Shop product tagged in them, with how many videos show it, their views and the latest date. It worked for creators in the US, the UK, Thailand and Malaysia on our latest runs. The app's showcase tab is not on the web, so a product the creator only lists there, without a video, is not included.

How does change tracking work? With trackChanges on, each run remembers every product's price, units sold and stock in a storage of your own Apify account, and the next run with the option on adds what changed: previous_price, price_change, price_change_percent, sold_since_last_run, sold_per_day, stock_change, first_seen_at and previous_run_at. The first run only starts the history. Products are matched by ID and market, whatever input found them, so a product search today and a store run tomorrow still compare.

How many products can a keyword or a category return? As many as TikTok lists. A broad keyword like "face cream" returned 190 products in the US and 185 in Singapore, a narrow one like "led face mask" 40. A US beauty category returned 105 products. Use maxItems to cap each keyword, category and store.

How fresh is the data? Live. Prices, stock, sold counts and reviews are read from TikTok Shop when the run starts, nothing is cached.

Can I scrape several keywords, categories, stores and products in one run? Yes. Fill any combination of fields, each one is scraped and the results land in the same dataset with the keyword field telling you where each product came from.

Why are some prices the same in price and discounted_price? discounted_price is what the cheapest variant sells at today and price its list price. When the product is not on promotion, both are equal and discount_percentage is 0.

How many reviews can I get per product? Up to 1,000 with maxReviewsPerProduct, newest first: TikTok Shop lists at most 1,000 reviews for each filter, so for a product with more, run it once per star rating with reviewFilter to go further. With maxReviewsPerProduct at 0, you get the reviews shown on the product page (usually 3). Every product row also carries the total review count and the full 1 to 5 star breakdown. Reviews worked in the US, the UK, Thailand and Vietnam on our latest runs.

Do reviews cost extra? No. The reviews are part of the product row, and you pay for the product once whether it carries 3 reviews or 1,000.

What happens with a wrong or removed product link? It is skipped and named in the run's status message, with the reason. No empty row reaches your dataset.

More SilentFlow scrapers

๐Ÿ›’ E-commerce

๐Ÿ’ผ Jobs

๐Ÿ  Real estate

๐Ÿ“ฃ Social media

๐Ÿข Business data

โœˆ๏ธ Travel

๐ŸŽฏ Lead generation

๐Ÿ”Ž SEO

๐Ÿ“ˆ Marketing

๐Ÿงฐ More tools

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.

This Actor extracts publicly available data from TikTok Shop. It does not log in and does not access private data. Users are responsible for complying with TikTok's terms of service and applicable data protection laws (GDPR, CCPA, and PIPL where relevant). The output contains personal data such as reviewer names and creator names: handle it accordingly. The data returned is informational; verify accuracy for regulated use cases.

Built and maintained by SilentFlow.