TikTok Shop Scraper (No Login) - Sales & Stock in 10 Countries avatar

TikTok Shop Scraper (No Login) - Sales & Stock in 10 Countries

Pricing

from $1.75 / 1,000 products

Go to Apify Store
TikTok Shop Scraper (No Login) - Sales & Stock in 10 Countries

TikTok Shop Scraper (No Login) - Sales & Stock in 10 Countries

Scrape TikTok Shop products without an account in the US, UK, Singapore, Malaysia, Thailand, Philippines, Vietnam, Indonesia, Mexico and Japan: price, units sold, stock per variant, ratings, reviews, shipping and shop stats. By product URL, keyword or category, with a scheduled 'what changed' mode.

Pricing

from $1.75 / 1,000 products

Rating

0.0

(0)

Developer

Mayowa Ogedengbe

Mayowa Ogedengbe

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Share

TikTok Shop Scraper: products, units sold, stock and prices in 10 countries

See what is actually selling on TikTok Shop. Get the price, units sold, stock for every variant, rating, reviews, shipping and shop stats for any TikTok Shop product in the US, UK, Singapore, Malaysia, Thailand, Philippines, Vietnam, Indonesia, Mexico and Japan. Find products by keyword or category, or paste product links. No TikTok account, no login, no cookies.

▶ Watch the full walkthrough (4 min)

Built for product research, competitor tracking and sales monitoring: run it once to size up a niche, or put it on a schedule and get only the products whose sales, stock or price changed since the last run.

What you get for every product

SalesUnits sold (TikTok Shop's own counter), rating, number of reviews, reviews per star
PriceCurrent price, original price and discount, highest variant price, currency
StockStock for every variant (color, size, model...), total stock, in-stock flag, purchase limit
ProductTitle, images, description (text and description images), specifications, category path, brand
ShopShop name and link, shop rating, shop units sold, shop reviews, number of products, followers
ShippingShipping fee, free-shipping flag, delivery days and estimated delivery dates
ReviewsUp to 5 recent reviews: rating, text, date, variant bought, verified purchase, photos
PromotionFor keyword results: the TikTok video promoting the product (creator, plays, likes)

Countries

CountryProduct links / IDsKeywordsCategoriesCurrency
🇺🇸 United States✅✅✅USD
🇬🇧 United Kingdom✅—✅GBP
🇸🇬 Singapore✅—✅SGD
🇲🇾 Malaysia✅—✅MYR
🇹🇭 Thailand✅—✅THB
🇵🇭 Philippines✅—✅PHP
🇻🇳 Vietnam✅—✅VND
🇮🇩 Indonesia (Shop | Tokopedia)✅—✅IDR
🇲🇽 Mexico✅—✅MXN
🇯🇵 Japan✅—✅JPY

Coming in the next version: Germany, France, Spain, Italy, Ireland and Brazil.

Keyword search uses TikTok Shop's US keyword pages; for other countries, use categories or product links.

TikTok Shop scraper by country

The same Actor covers every country below: pick the country in the input (or paste a product link from that country) and the results come back in the local currency, with units sold, stock per variant, prices, ratings, reviews, shipping and shop stats. No login in any country.

TikTok Shop US scraper

Scrape TikTok Shop United States products without logging in: keywords such as stanley cup, categories, or product links. Prices in USD.

{"region": "us", "keywords": ["stanley cup"], "maxProductsPerSource": 25}

TikTok Shop UK scraper

Scrape TikTok Shop United Kingdom products without logging in: UK categories or product links (shop.tiktok.com/gb/pdp/...). Prices in GBP.

{"region": "gb", "categories": ["Beauty & Personal Care"], "maxProductsPerSource": 50}

TikTok Shop Malaysia scraper

Scrape TikTok Shop Malaysia products without logging in: Malaysian categories or product links (shop.tiktok.com/my/pdp/...). Prices in MYR.

{"region": "my", "categories": ["Phones & Electronics"], "maxProductsPerSource": 50}

TikTok Shop Indonesia scraper

Scrape TikTok Shop Indonesia (Shop | Tokopedia) products without logging in: Indonesian categories or product links (shop-id.tokopedia.com/pdp/...). Prices in IDR.

{"region": "id", "categories": ["Beauty & Personal Care"], "maxProductsPerSource": 50}

TikTok Shop Philippines scraper

Scrape TikTok Shop Philippines products without logging in: Philippine categories or product links (shop.tiktok.com/ph/pdp/...). Prices in PHP.

{"region": "ph", "categories": ["Womenswear & Underwear"], "maxProductsPerSource": 50}

TikTok Shop Thailand scraper

Scrape TikTok Shop Thailand products without logging in: Thai categories or product links (shop.tiktok.com/th/pdp/...). Prices in THB.

{"region": "th", "categories": ["Beauty & Personal Care"], "maxProductsPerSource": 50}

TikTok Shop Vietnam scraper

Scrape TikTok Shop Vietnam products without logging in: Vietnamese categories or product links (shop.tiktok.com/vn/pdp/...). Prices in VND.

{"region": "vn", "categories": ["Beauty & Personal Care"], "maxProductsPerSource": 50}

TikTok Shop Singapore scraper

Scrape TikTok Shop Singapore products without logging in: Singapore categories or product links (shop.tiktok.com/sg/pdp/...). Prices in SGD.

{"region": "sg", "categories": ["Home Supplies"], "maxProductsPerSource": 50}

TikTok Shop Mexico scraper

Scrape TikTok Shop Mexico products without logging in: Mexican categories or product links (shop.tiktok.com/mx/pdp/...). Prices in MXN.

{"region": "mx", "categories": ["Beauty & Personal Care"], "maxProductsPerSource": 50}

TikTok Shop Japan scraper

Scrape TikTok Shop Japan products without logging in: Japanese categories or product links (shop.tiktok.com/jp/pdp/...). Prices in JPY.

{"region": "jp", "categories": ["Beauty & Personal Care"], "maxProductsPerSource": 50}

How to use it (step by step)

1. Open the Actor and pick a country. The country is used for keywords, categories and bare product IDs. Product links always use the country in the link.

Country selector with the 10 TikTok Shop countries

2. Tell it what to scrape. Fill in any mix of:

  • Product URLs or IDs, e.g. https://shop.tiktok.com/us/pdp/1729488565791527807 or https://shop.tiktok.com/gb/pdp/...
  • Keywords (US), e.g. stanley cup, phone cases, magnetic eyelashes
  • Categories, e.g. Beauty & Personal Care or a category link such as https://shop.tiktok.com/th/c/phones-electronics/601739

A product link and the keyword "stanley cup" in the input

3. Choose the options. Max products per keyword or category, full details on or off, subcategories, and the "only new or changed products" mode for schedules.

Options: max products per keyword or category, full product details

4. Press Start. A keyword with 25 products typically finishes in about 30 seconds.

5. Open the results. Use the Overview tab (one row per product) or the Variants tab (one row per variant with its own price and stock).

Overview: one row per product with price, units sold and stock

Variants: one row per variant with its own price and stock

6. Export. Download as Excel, CSV, JSON or HTML, or use the API (examples below). For Excel and CSV, export the Overview or Variants view: products can have hundreds of variants, and spreadsheet exports of the full nested data are limited to 2,000 columns.

Export dialog with the Overview view and Excel selected

Input

FieldWhat it doesDefault
regionCountry for keywords, categories and bare IDs: us, gb, sg, my, th, ph, vn, id, mx, jpus
productsProduct links or IDs from any of the 10 countries—
keywordsUS keyword phrases—
categoriesCategory names or links (any of the 10 countries)—
includeSubcategoriesAlso sample the category's subcategories, for wider coverageoff
maxProductsPerSourceUpper limit for each keyword and each category (1-1000)30
includeDetailsOn: full product data. Off: list data only (title, price, units sold, rating, shop), cheaper and fasteron
monitorChangesReturn only products that are new or whose units sold, stock, rating, reviews or price changedoff
monitorNameSeparate memory per schedule (e.g. competitors, beauty-uk)default

Example input:

{
"region": "us",
"keywords": ["stanley cup"],
"categories": ["https://shop.tiktok.com/gb/c/beauty-personal-care/601450"],
"products": ["https://shop.tiktok.com/sg/pdp/1732445553395664013"],
"maxProductsPerSource": 25
}

With no input at all, the Actor returns a small live sample (5 US products) so you can see the output.

Output example

A real product from a "stanley cup" run (lists shortened):

{
"type": "product",
"detailLevel": "full",
"productId": "1732523111833375729",
"region": "us",
"url": "https://shop.tiktok.com/us/pdp/stanley-h2-0-flowstate-quencher-tumbler-40oz-bpa-free/1732523111833375729",
"title": "Stanley Stainless Steel H2.0 FlowState Quencher Tumbler",
"currency": "USD",
"price": 49.39,
"originalPrice": null,
"discountPercent": null,
"priceMax": 49.39,
"soldCount": 2520,
"rating": 4.7,
"reviewCount": 305,
"ratingBreakdown": {
"five": 266,
"four": 13,
"three": 11,
"two": 10,
"one": 5
},
"stockTotal": 10,
"inStock": true,
"skuCount": 4,
"skus": [
{
"skuId": "1732576223633118193",
"options": {
"Color": "Tan",
"Number of items": "1"
},
"optionsText": "Color: Tan / Number of items: 1",
"price": 49.39,
"originalPrice": null,
"stock": 0,
"purchaseLimit": 200,
"available": false
},
{
"skuId": "1732523120838611953",
"options": {
"Color": "White",
"Number of items": "1"
},
"optionsText": "Color: White / Number of items: 1",
"price": 49.39,
"originalPrice": null,
"stock": 4,
"purchaseLimit": 200,
"available": true
}
],
"images": [
"https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/bcbe4fb7d175499c818e41d18833c73b~tplv-fhlh96nyum-crop-webp:800:800.webp"
],
"description": "•90% recycled 18/8 stainless steel\n•BPA-free\n•Double-wall vacuum insulation\n•Reusable straw\n•Comfort-grip handle\n•Fits most car cup holders\n•Dishwasher safe\nDes...",
"descriptionImages": [],
"specifications": [
{
"name": "Quantity per pack",
"value": "1"
},
{
"name": "Volume",
"value": "N/A"
},
{
"name": "Dangerous goods or hazardous materials",
"value": "No"
}
],
"categories": [
{
"id": "600024",
"name": "Kitchenware",
"level": 1
},
{
"id": "859400",
"name": "Drinkware",
"level": 2
},
{
"id": "600036",
"name": "Glasses",
"level": 3
}
],
"brand": null,
"seller": {
"sellerId": "7495340484689890289",
"shopName": "Bullseye Deals",
"shopUrl": "https://shop.tiktok.com/us/store/bullseye-deals/7495340484689890289",
"shopRating": 4.6,
"shopSoldCount": 1800603,
"shopReviewCount": 225980,
"shopProductCount": 4481,
"shopFollowers": 276899
},
"shipping": {
"fee": 0,
"currency": "USD",
"freeShipping": true,
"minDays": 4,
"maxDays": 7,
"service": "Standard shipping",
"estimatedDelivery": "Oct 21 - Oct 24"
},
"reviews": [
{
"reviewId": "7688852477116385037",
"rating": 5,
"text": "Nice very cute 🥰",
"createdAt": "2026-09-23T21:54:41Z",
"variant": "Blue",
"reviewerName": "R**4",
"verifiedPurchase": true,
"incentivized": false,
"images": [
"https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/2644f088052649c8912e21af545cf3ca~tplv-fhlh96nyum-crop-webp:300:300.webp"
],
"country": "US"
}
],
"promoVideo": null,
"source": {
"type": "keyword",
"value": "stanley-cup"
},
"changes": null,
"scrapedAt": "2026-10-17T15:32:36.059Z"
}

Fields that a product does not have are null (or an empty list), so every row has the same columns.

Track sales and stock over time (scheduled runs)

  1. Turn on Only new or changed products and give the monitor a name.

    Only new or changed products, with a monitor name

  2. Click Schedule and choose daily (or hourly, weekly...).

  3. Every run returns only the products that are new or whose units sold, stock, rating, reviews or price moved, with a changes field:

"changes": {"isNew": false, "since": "2026-10-17T14:07:05Z", "soldDelta": 37, "stockDelta": -41,
"priceBefore": null, "ratingBefore": null, "reviewCountDelta": 4}

soldDelta over a day is that product's daily sales; multiply by the price for an estimate of daily revenue. Unchanged products are not returned and not billed.

Pricing

Pay only for results (Apify pay-per-event):

EventPrice
Product with full details$2.50 per 1,000 on the Free plan, down to $1.75 per 1,000 on Gold
Product, list data only (includeDetails off)$0.80 per 1,000
Country listing access (once per run, per non-US country whose categories you browse)$0.01
Run start$0.001

Examples:

  • 100 US products from a keyword, full details: about $0.25.
  • 100 products from a UK category: about $0.26 ($0.25 + $0.01 for UK listing access).
  • Daily monitor of 500 products where 60 changed today: about $0.15 that day.

Product links never trigger the country listing access charge. Products that do not exist, duplicates and unchanged products (monitor mode) are never billed. You can cap any run with Apify's maximum cost setting; the run then stops cleanly with what it has.

Free Apify plan: runs started on Apify's free plan return up to 10 products per run. Any paid Apify plan removes this limit.

Use it from code or automation

API (cURL), run and get the products in one call:

curl -X POST "https://api.apify.com/v2/acts/headply~tiktok-shop-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["stanley cup"], "maxProductsPerSource": 25}'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("headply/tiktok-shop-scraper").call(run_input={
"region": "gb",
"categories": ["Beauty & Personal Care"],
"maxProductsPerSource": 50,
})
for product in client.dataset(run["defaultDatasetId"]).iterate_items():
print(product["title"], product["soldCount"], product["price"], product["currency"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('headply/tiktok-shop-scraper').call({ products: ['https://shop.tiktok.com/us/pdp/1729488565791527807'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].soldCount, items[0].stockTotal);

n8n / Make / Zapier: use the Apify node, action Run an Actor and get dataset items, Actor headply/tiktok-shop-scraper, and the same JSON input. A daily schedule + Google Sheets node gives you a sales log per product.

Ideas

  • Product research: which products in a niche sell, at what price, with how many reviews.
  • Competitor tracking: follow competitors' units sold, stock and prices every day.
  • Stock alerts: catch products and variants about to sell out (stockTotal, skus[].stock).
  • Creator and affiliate research: keyword results include the TikTok video promoting each product.
  • Cross-country comparison: the same category in the US, UK, Southeast Asia, Mexico and Japan.

FAQ

Do I need a TikTok account or cookies? No. The Actor reads public TikTok Shop pages, as any visitor sees them.

Is "units sold" an estimate? No, it is the sold counter TikTok Shop shows on the product. Revenue is not shown by TikTok; soldCount × price (or soldDelta × price in monitor mode) gives you an estimate.

Why can the same product show slightly different prices in two runs? TikTok Shop shows different visitors slightly different promotional prices on many products (we measured differences of up to about 12% within minutes). The Actor reports the price a new visitor sees at that moment. Units sold, stock and ratings are not affected. In monitor mode, price moves of 15% or less don't count as a change, so this doesn't flood your results.

Why did a category return fewer products than my maximum? Category pages show a rotating selection of the category's products. The Actor keeps collecting until it reaches your maximum or stops finding new products. Turn on Include subcategories for wider coverage.

A keyword returned nothing. Why? TikTok Shop has keyword pages for common shopping phrases. For rare phrases there is no page; the run summary says so and nothing is charged. Try a shorter or more common phrase, or a category.

Which countries are supported? The 10 above. Germany, France, Spain, Italy, Ireland and Brazil are coming in the next version; links from those countries are skipped with a clear message (not billed).

What happens with a product that no longer exists? It is listed in the run summary as not found and not billed.

Where is the run summary? In the run's key-value store, record SUMMARY: products delivered, products not found, skipped inputs with the reason, and per-keyword/category counts.

Can I get more than 10 products per run? Yes, on any paid Apify plan. The free plan is limited to 10 products per run.

Is it legal? The Actor collects publicly available product information. You are responsible for how you use the data; check TikTok's terms and the laws that apply to you, and do not collect personal data you have no basis to use.

Questions or a country you need? Open an issue on the Actor's Issues tab.