TikTok Shop Scraper: Products, Reviews, Sellers & Keyword Rank avatar

TikTok Shop Scraper: Products, Reviews, Sellers & Keyword Rank

Pricing

Pay per event

Go to Apify Store
TikTok Shop Scraper: Products, Reviews, Sellers & Keyword Rank

TikTok Shop Scraper: Products, Reviews, Sellers & Keyword Rank

Track TikTok Shop prices, ratings, reviews, sellers and keyword rank. Paste product URLs, a seller id or keywords and get clean rows back. Five modes in one actor, and keyword results are scored against your keyword before billing, so you never pay for products that do not match.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Sourabh Kumar

Sourabh Kumar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

TikTok Shop Scraper: Products, Prices, Reviews, Sellers & Keyword Rank

Built for people who sell on TikTok Shop. Track your prices, ratings, reviews and search rank, and your competitors'. No login, no cookies, no proxy setup.

$4.99 per 1,000 results. $0.005 per run. Five modes in one actor.

Why this scraper

  • 🎯 You are never billed for results that do not match your keyword. TikTok Shop pads keyword searches with unrelated products, even for keywords that match nothing at all. Those rows are dropped before billing, not after.
  • 📈 Every search row carries its rank position, so running on a schedule gives you keyword rank over time. No other TikTok Shop scraper reports it.
  • 📊 The full star breakdown on every review row, so you see how many reviews sit at 1, 2, 3, 4 and 5 stars, not just the average.
  • 🏪 Whole seller catalogues, paged to the end rather than the first page.
  • 💸 The seller funded share of each promotion, which shows who is discounting out of their own margin.
  • 🧾 Duplicates and dead ids cost nothing. The same product reached twice bills once, and ids that no longer exist bill zero.
  • 📣 A short run says so, with the numbers, instead of reporting a bare success.
  • 🚀 No login, no cookies, no proxy setup, and no browser: a full 80 product shop takes about 15 seconds.

What data can you extract?

🏷️ Title & brand💵 Price & original price📉 Discount percent💸 Seller funded discount
⭐ Rating💬 Review count📦 Units sold🎨 Variant count & prices
🏪 Shop name & seller id🔖 Card badges⏱️ Flash sale end time🖼️ Images
📈 Keyword rank position🎯 Keyword relevance score📝 Review text & photos📊 1 to 5 star breakdown

Five scraping modes

📦 Products mode

Paste product URLs or bare numeric product ids. One row per product with price, original price, discount, the seller funded portion of that discount, rating, review count, units sold, badges, flash sale end time and variant count.

This is the cheap one to run on a schedule. Everything above comes from a single bulk lookup, so watching 500 products every day costs about $2.50 a day.

The slug in a product URL is decorative, so https://shop.tiktok.com/us/pdp/x/1731936391511904376 and the bare id 1731936391511904376 both work. Turn on Include a per variant price breakdown to add a skus array with the price of every size and colour.

🏪 Seller mode

Give it a numeric seller id and get that shop's whole catalogue, paged to the end rather than the first page. Tested against stores from 13 products up to one with 21,702 in its catalogue.

To find your own seller id, run Products mode on one of your listings: the sellerId field on the result is what this mode wants.

⭐ Reviews mode

Paste product URLs or ids. One row per review with the text, star rating, photos, the verified purchase flag, the incentivised flag, the variant the reviewer bought, and their country.

Every row also carries the product's full star breakdown, so you get how many reviews sit at 1, 2, 3, 4 and 5 stars, not just the average. Filter to a single star rating to read only your 1 star reviews, or sort by most recent.

Max reviews per product defaults to 500 so one popular product cannot run away with your bill. Raise it and the walk keeps going: with the cap lifted, a 2,753 review product returns 2,741 of them. The run always tells you when it stopped at your cap and that more exists.

🔍 Search mode

One keyword per line. You get the products TikTok Shop ranks for that keyword, each row carrying its rank position and a relevance score. Run it on a schedule and you have your keyword rank over time, which no other TikTok Shop scraper reports.

Rank is the position in TikTok Shop's own result order, counted before anything is filtered out, so it stays true even when padding is dropped. TikTok Shop returns keyword results in one shot with no pagination, so 200 is the deepest available.

Turn on Also return the results that were filtered out to see everything TikTok Shop returned with an isRelevant flag on each row. Those rows are billed.

🗂️ Category mode

Paste a category page URL. Works for the US and the UK.

TikTok Shop serves a different slice of a category on every page load, so this mode collects across several passes and removes duplicates for you. Set Max rows above one page and it keeps going. That also means two runs of the same category will not return the same products, which makes this good for discovering what is in a category and poor for tracking one exact list. Use Products mode for tracking.

Top use cases

Watch your own listings

Run Products mode on every product you sell, once a day. Price, rating, review count and units sold on each row, so you can chart them and catch a price or rating move the day it happens.

Track your keyword rank

Run Search mode on the keywords you care about and keep the searchRank field over time. This is the daily job for a seller, and it is the surface nobody else in this category covers.

Read your bad reviews properly

Pull only the 1 and 2 star reviews for a product and see what buyers actually complain about, with the variant they bought attached. The star breakdown on every row tells you whether a 4.6 average is hiding 131 one star reviews.

Watch a competitor's shop

Feed a rival's seller id to Seller mode and diff their catalogue week to week: new products, dropped products, price moves.

See who is discounting out of their own margin

sellerFundedDiscount is the promotion amount TikTok Shop books against the seller rather than the platform. It is not in any competing scraper's output schema that we could find, and it shows which competitors are buying market share the expensive way.

Sweep a category you are considering

Category mode gives you a broad sample of what sells in a niche before you commit stock to it.

How much does TikTok Shop Scraper cost?

Pay per result: $4.99 per 1,000 rows, plus $0.005 per run.

The Apify Free plan gives you $5 in credits a month, about 1,000 rows. The $29/month Starter plan covers about 5,800 rows.

What counts as a row:

  • One product = one row.
  • One review = one row.
  • A keyword result that does not match your keyword = no row and no charge.
  • The same product returned twice in one run = one row.
  • A product id or seller id that does not exist = no row and no charge.

Input examples

Monitoring a list of your own products:

{
"mode": "products",
"productUrls": [
"https://shop.tiktok.com/us/pdp/x/1731936391511904376",
"1732315774273425528"
]
}

A competitor's whole catalogue:

{
"mode": "seller",
"sellerUrls": ["7496252928214665336"]
}

Only the 1 star reviews, newest first:

{
"mode": "reviews",
"productUrls": ["1731936391511904376"],
"reviewStarFilter": "1",
"reviewSort": "recent",
"maxReviewsPerProduct": 500
}

Keyword rank tracking:

{
"mode": "search",
"keywords": ["lip serum", "peptide lip balm"],
"searchDepth": 100,
"minRelevance": "0.5"
}

A UK category:

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

Output examples

Every example below is a real row from a real run, copied unedited. Image URL fields are omitted here for width only; they are present in the data.

Products mode

{
"productId": "1731936391511904376",
"title": "[ES] SKINTIFIC Hydrating Brightening Lip Serum",
"url": "https://shop.tiktok.com/us/pdp/skintific-hydrating-brightening-lip-serum-vitamin-c-formula/1731936391511904376",
"slug": "skintific-hydrating-brightening-lip-serum-vitamin-c-formula",
"brand": "SKINTIFIC",
"region": "us",
"currency": "USD",
"currencySymbol": "$",
"price": 39,
"originalPrice": null,
"discountPercent": null,
"savings": null,
"priceIsFrom": true,
"sellerFundedDiscount": 24.1,
"rating": 4.6,
"reviewCount": 2750,
"soldCount": 18690,
"sellerId": "7496252928214665336",
"shopName": "SKINTIFIC US Store",
"labels": [
"Free shipping"
],
"flashSaleEndsAt": null,
"skuCount": 22,
"scrapedAt": "2026-09-03T18:24:28.067Z"
}

originalPrice, discountPercent and savings are empty when a product is not currently discounted, as above. priceIsFrom true means the product has several variants and price is the cheapest of them.

Search mode

{
"productId": "1729502209346934379",
"title": "Dr.Leo Peptide Lip Serum 10g - Lightweight Lip Care Moisturizer to Smooth, Hydrate & Repair Dryness, Lines & Uneven Tone #SohoChic",
"url": "https://shop.tiktok.com/us/pdp/dr-leo-peptide-lip-serum-for-firming-plumping-hydration/1729502209346934379",
"slug": "dr-leo-peptide-lip-serum-for-firming-plumping-hydration",
"brand": "Dr.Leo",
"region": "us",
"currency": "USD",
"currencySymbol": "$",
"price": 16.9,
"originalPrice": 29.9,
"discountPercent": 43,
"savings": 13,
"priceIsFrom": true,
"sellerFundedDiscount": 16,
"rating": 4.3,
"reviewCount": 2235,
"soldCount": 23896,
"sellerId": "7495840753502947947",
"shopName": "Dr.Leo-USA",
"labels": [
"Free shipping"
],
"flashSaleEndsAt": null,
"skuCount": 2,
"scrapedAt": "2026-09-03T18:24:28.766Z",
"keyword": "lip serum",
"searchRank": 4,
"relevanceScore": 1,
"isRelevant": true
}

searchRank is the position in TikTok Shop's own result order for that keyword. relevanceScore is the share of your keyword terms found in the title and brand.

Seller mode

{
"productId": "1731832307922407544",
"title": "[HOT] SKINTIFIC Hydrating Brightening Lip Serum with Hyaluronic Acid & Peptide for Radiant Lips Gentle Glossy Korean Beauty Makeup Balm Shea Smooth Moisture with Cooling Metal Roller Applicator",
"url": "https://shop.tiktok.com/us/pdp/skintific-hydrating-lip-serum-brighten-plump-lips/1731832307922407544",
"slug": "skintific-hydrating-lip-serum-brighten-plump-lips",
"brand": "SKINTIFIC",
"region": "us",
"currency": "USD",
"currencySymbol": "$",
"price": 14.9,
"originalPrice": 19.9,
"discountPercent": 25,
"savings": 5,
"priceIsFrom": true,
"sellerFundedDiscount": 5,
"rating": 4.5,
"reviewCount": 20739,
"soldCount": 166572,
"sellerId": "7496252928214665336",
"shopName": "SKINTIFIC US Store",
"labels": [
"Free shipping"
],
"flashSaleEndsAt": null,
"skuCount": 64,
"scrapedAt": "2026-09-03T18:24:29.816Z"
}

Reviews mode

{
"reviewId": "7600988372823410462",
"productId": "1731936391511904376",
"productTitle": "[ES] SKINTIFIC Hydrating Brightening Lip Serum",
"skuId": "1732173892159639672",
"skuSpecification": "04 Pink Berry, 1",
"rating": 5,
"reviewText": "You have to pump it a couple of times till the gloss comes out when you first get it, but I love this color so much. It’s so nice and it’s not sticky at all. It goes on so smoothly that it feels very nice on the lips. I got Pink Berry😛😛",
"reviewedAt": "2026-01-30T03:19:25.020Z",
"isVerifiedPurchase": true,
"isIncentivized": false,
"reviewerId": "6714989801244509189",
"reviewerName": "n**v",
"reviewCountry": "US",
"productRating": 4.5,
"productReviewCount": 2750,
"ratingHistogram": {
"1": 131,
"2": 69,
"3": 137,
"4": 244,
"5": 2169
},
"scrapedAt": "2026-09-03T18:24:34.373Z"
}

ratingHistogram is the whole product's star breakdown, repeated on every review row so a single review export is self contained.

Category mode

{
"productId": "1732311026571318143",
"title": "【DR.TUOMA】Odor Control Feminine Wash | Sensitive Skin Safe | DR.TUOMA#TikTokShopDealsforYouDays #SummerWins Daily Intimate Wash,back to school",
"url": "https://shop.tiktok.com/us/pdp/dr-tuoma-ph-balanced-feminine-wash-gentle-fresh-daily-care/1732311026571318143",
"slug": "dr-tuoma-ph-balanced-feminine-wash-gentle-fresh-daily-care",
"brand": "DRTUOMA",
"region": "us",
"currency": "USD",
"currencySymbol": "$",
"price": 16.98,
"originalPrice": 29.96,
"discountPercent": 43,
"savings": 12.98,
"priceIsFrom": true,
"sellerFundedDiscount": 13.18,
"rating": 4.7,
"reviewCount": 540,
"soldCount": 4490,
"sellerId": "7494363574181136255",
"shopName": "Dr.tuoma.Official",
"labels": [
"Free shipping"
],
"flashSaleEndsAt": null,
"skuCount": 2,
"scrapedAt": "2026-09-03T18:24:32.953Z",
"categoryId": "601450",
"categoryName": "Beauty & Personal Care"
}

Limitations

  • US storefront, apart from category listings. Products, sellers, reviews and search cover the US storefront. Category listings also work for the UK. Other countries are not available.
  • Keyword search returns at most 200 results per keyword, in one shot. There is no deeper paging, because TikTok Shop does not offer any.
  • A category run is a sample, not a fixed list. TikTok Shop serves a different slice on every page load. Good for discovery, poor for tracking one exact list over time.
  • Video reviews come back without the video. The photos or video filter includes video reviews, but TikTok Shop never returns the video URL, so those rows arrive with an empty photo list.
  • Stock levels, full product descriptions and product videos are not included. Those live only on the product page itself, which costs many times more to fetch than everything above.
  • A delisted product returns nothing. If a product has been removed from TikTok Shop, it is skipped and not billed, and the run says how many ids did not resolve. Your own live listings should all resolve.

Frequently asked questions

Do I need a TikTok account, cookies, or a login?

No. Nothing here asks for credentials and none of the five modes needs them, so your account can never be affected by using this actor.

Will I get blocked, or do I need to set up a proxy?

No setup needed. The actor handles bot protection itself and uses the cheapest route by default, moving to a stronger one only if a request is actually refused.

How do I find my seller id?

Run Products mode on any one of your products. The sellerId field on the result is the id Seller mode wants.

What happens if a product or seller does not exist?

The run finishes normally and tells you which entries were not found. It does not fail, and you are not charged for rows you did not get.

Does the keyword filter ever drop something I wanted?

It can, and you can check. Turn on Also return the results that were filtered out and every row comes back with isRelevant and relevanceScore so you can judge for yourself, or set Minimum keyword relevance to Loose. The default is tuned to protect your bill first.

Can I really get all the reviews on a product?

Yes, up to the cap you set. Raise Max reviews per product and a 2,753 review product returns 2,741 of them. The default cap of 500 exists so one popular product cannot produce a bill you did not expect, and the run tells you when it stopped there.

Does the maximum rows setting actually work?

Exactly. Ask for 17 and you get 17. Filters and sorts are checked to change the result set rather than being accepted and quietly ignored.

Scraping public data is generally allowed in the US and most of the EU, as long as you don't collect personal data covered by GDPR or CCPA without a lawful basis. This actor only reads pages TikTok Shop serves publicly to anyone with no login. How you use the output is on you.

Apify's full breakdown: Is web scraping legal?.

Does it support scheduled runs and integrations?

Yes. Use Apify Schedules for recurring runs. Results push to Google Sheets, Slack, Zapier, Make, Airbyte and webhooks.

Full list: Apify integrations.

Can I use it with the Apify API?

Yes. Every run is available via the Apify REST API:

curl -X POST "https://api.apify.com/v2/acts/sourabhbgp~tiktok-shop-scraper/runs?token=APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode": "search", "keywords": ["lip serum"]}'

Docs: Apify API reference.

Can I use it through an MCP Server?

Yes. Apify ships an MCP server that exposes every actor as a tool, so Claude Desktop, Cursor, and any other MCP capable client can call this one. Setup: Apify MCP docs.

Your feedback

Bug, missing field, or odd behaviour? Drop a note in the Issues tab. Reports go to a human and fixes usually ship the same week.