TikTok Shop Product Details Scraper
Pricing
from $6.15 / 1,000 results
TikTok Shop Product Details Scraper
Scrape TikTok Shop product detail data by product ID for France and other markets. Get title, price, discount, images, seller, rating, reviews, sold count, stock and variants. Export JSON, CSV or Excel.
Pricing
from $6.15 / 1,000 results
Rating
5.0
(1)
Developer
Scrapers Lat
Maintained by CommunityActor stats
1
Bookmarked
4
Total users
3
Monthly active users
2 days ago
Last modified
Categories
Share
TikTok Shop Product Details Scraper
Here is one real result. TikTok Shop protects some marketplace edges with an intermittent security check (a slide captcha), so a blocked attempt returns an honest error record like the one below (this is a real record from a live run, not fabricated):
{"productId": "1729480569078716908","region": "FR","error": "temporarily blocked by the site, please retry","observedAt": "2026-08-12T01:07:36.216Z"}
When the marketplace edge is not challenging, the actor returns the full product record with every field in the Output reference below (title, price and discount, shop, rating, reviews, sold count, stock, variants, specifications, images, and main video). The error field distinguishes the two cases so you never mistake a block for a real product.
The most complete TikTok Shop product scraper available. It reads a product's full detail payload by ID or URL, capturing price and discount, the seller (shop rating, sold count, followers), ratings and reviews, live stock and per-SKU variants, specifications, images, and the product video, across 13 marketplaces.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
You give the actor one or more TikTok Shop product IDs (or full product URLs) and a marketplace region. It reads each product's public detail payload and writes one normalized record per product to the run's dataset, including the title, current and original price with discount, the seller profile (name, rating, sold count, followers), average rating and review count, live stock and per-SKU variants, product options, specifications, the category path, images, and the main product video. Prices and currency come from the product's home marketplace. Missing source values are returned as null.
TikTok Shop applies a security check on some marketplace edges. When an edge is challenging, the actor returns a single record with a populated error field instead of a product, and it is not charged. Retry, or read a marketplace edge that is not currently challenging.
Quickstart
Open the actor, paste this into the input, and press Run.
{"productIds": ["1729480569078716908"],"region": "US","maxProducts": 3}
You can paste full product URLs too (the ID is extracted automatically). Free Apify plans are capped at 10 products per run.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
productIds | string[] | yes | ["1729480569078716908"] | One or more TikTok Shop product IDs, the long numeric ID in a product URL such as tiktok.com/view/product/1729480569078716908. Full product URLs are accepted and the ID is extracted automatically. |
region | enum | no | FR | Marketplace to read prices and availability from: FR, GB, US, DE, ES, IT, IE, ID, TH, VN, MY, PH, SG. Prices and currency come from the product's home marketplace. |
maxProducts | integer | no | (all) | Maximum number of products to collect. Free Apify plans are capped at 10 per run. |
Output reference
One dataset item per product. Types: string, number, integer, boolean, string[], object, object[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
productId | string | TikTok Shop product ID (unique per product). |
title | string | Product title. |
region | string | Marketplace the product was read from. |
url | string | Product page URL. |
imageUrl | string | Primary product image URL. |
images | string[] | All product image URLs. |
price | number | Current price in the marketplace currency. |
originalPrice | number | Original (pre-discount) price, or null. |
discount | string | Discount label, for example a percentage, or null. |
currency | string | ISO currency code, for example USD, GBP. |
currencySymbol | string | Currency symbol, for example $. |
rating | number | Average product rating. |
reviewCount | integer | Number of reviews. |
soldCount | integer | Units sold. |
inStock | boolean | true when the product is purchasable. |
availableQuantity | integer | Total available quantity across variants. |
category | string | Category path joined into a single string. |
categoryPath | string[] | Category path as a list. |
description | string | Product description. |
specifications | object[] | Product attributes; each entry has a name and value. |
options | object[] | Sale properties / option groups (for example size, color). |
variants | object[] | Per-SKU variants with price and availability. |
mainVideo | object | Main product video (URL and metadata), or null. |
shopName | string | Seller/shop name. |
shopId | string | Seller/shop ID. |
shopUrl | string | Seller/shop page URL. |
shopRating | number | Seller rating. |
shopSoldCount | integer | Seller total units sold. |
shopFollowers | integer | Seller follower count. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a blocked or failed attempt, a record with a populated error field is written instead (not charged). |
Example output record
TikTok Shop was returning its security check for this product's marketplace edge at the time of writing, so the most recent real record from a live run is the honest block below (never fabricated). When the edge is not challenging, the same run returns a full product record with the fields in the Output reference above:
{"productId": "1729480569078716908","region": "FR","error": "temporarily blocked by the site, please retry","observedAt": "2026-08-12T01:07:36.216Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~tiktok-shop-product-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"productIds":["1729480569078716908"],"region":"US","maxProducts":3}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~tiktok-shop-product-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"productIds":["https://shop.tiktok.com/view/product/1729480569078716908"],"region":"GB"}'
Apify CLI:
apify call scrapers_lat/tiktok-shop-product-scraper \--input '{"productIds":["1729480569078716908"],"region":"US"}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
<DATASET_ID> is returned as defaultDatasetId in the run object. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per product record returned (
resultevent). See the pricing tab for the current per-result price. - No charge on failure or block. If a product cannot be read (including a TikTok security check), the actor writes a record with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxProducts.
FAQ and troubleshooting
Why did I get temporarily blocked by the site, please retry?
TikTok Shop applies a security check (slide captcha) on some marketplace edges. This is a real, honest signal, not a fabricated record, and it is not charged. Retry the run, or read a marketplace edge (region) that is not currently challenging.
Which marketplaces are most reliable? US and GB edges typically clear more often than FR. The security check is intermittent, so retries help.
Where do I find a product ID?
It is the long numeric ID in a product URL, for example tiktok.com/view/product/1729480569078716908. You can paste the whole URL and the ID is extracted automatically.
Why are price and currency different from my region?
Prices and currency come from the product's home marketplace, set by region. Choose the marketplace you want the price from.
Can I scrape many products at once?
Yes. Pass several IDs or URLs in productIds. Free Apify plans are capped at 10 per run.
Is this an official TikTok tool? No. This actor is independent and has no affiliation with TikTok or ByteDance. It reads only publicly available product pages. Use it in accordance with the TikTok terms of service.
Related scrapers
- TikTok Creative Center Scraper: top-performing TikTok ads with metrics.
- TikTok Hashtag Analytics Scraper: trending hashtags and their metrics.
- 1688 Wholesale Scraper: wholesale products and suppliers.
- DHgate Suppliers Scraper: DHgate products and suppliers.
- AliExpress Scraper: AliExpress product details and prices.
- Flipkart Products Scraper: Flipkart product details and prices.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with TikTok or ByteDance. Accesses only publicly available product data. Use in accordance with the TikTok terms of service.
