Enrich public TikTok Shop product URLs or IDs with current US prices, variants, availability signals, seller metadata, media, ratings, and visible sales signals. Built for marketplace sellers, ecommerce analysts, affiliate teams, and product-monitoring workflows.
Who is it for?
- Marketplace sellers tracking price, stock, and seller changes across a known catalog.
- Ecommerce analysts comparing normalized product and variant attributes.
- Affiliate teams screening known public products without private creator analytics.
- Developers and agencies loading public product details into databases, dashboards, and automations.
Common use cases
- Refresh a product shortlist before a merchandising review.
- Compare SKU prices and public availability across affiliate candidates.
- Monitor seller and visible sales signals for selected products.
- Enrich product IDs discovered by the separate TikTok Shop Search Scraper.
Input
{
"productUrls": ["https://shop.tiktok.com/us/pdp/1732526446300467962"],
"productIds": ["1732600742000628072"],
"region": "US",
"maxItems": 20
}
| Setting | Description | Default |
|---|---|---|
productUrls |
Public TikTok Shop product pages | [] |
productIds |
Numeric product IDs when URLs are unavailable | [] |
region |
Verified storefront market (US) |
US |
maxItems |
Maximum unique records saved (1–500) | Number of unique inputs |
proxyConfiguration |
Optional region-matched Apify Proxy settings | US residential |
Provide at least one URL or ID. Inputs are deduplicated by region and product ID. A URL whose market differs from region is rejected rather than silently rewritten.
Output
Each successful target produces one analysis-ready record:
{
"productId": "1732526446300467962",
"productUrl": "https://shop.tiktok.com/us/pdp/1732526446300467962",
"title": "Public product title",
"price": 16.99,
"originalPrice": 22.99,
"currency": "USD",
"variants": [{"skuId":"1732526500000000000","name":"Blue","stock":42,"price":16.99,"currency":"USD"}],
"sellerName": "Public shop name",
"rating": null,
"reviewCount": null,
"soldCount": 1200,
"requestedInput": "1732526446300467962",
"region": "US",
"scrapedAt": "2026-09-29T12:00:00Z",
"warnings": ["Public source did not expose review count."]
}
Available fields include description, category hierarchy, images, videos, variant properties and stock, shipping estimates, seller rating/followers/sold signals, and product rating/review signals when publicly exposed. On current product pages, soldCount represents the product’s visible sales and sellerSoldCount represents sales across the shop. Out-of-stock variants retain their public prices and a stock value of zero. Temporary access challenges receive a small, bounded number of retries.
Missing optional values remain null and are described in warnings; the Actor never invents unavailable data.
Behavior and limits
- Uses public anonymous TikTok Shop product pages with a first-party public JSON fallback.
- Verifies the returned product ID and USD market before saving a record.
- Continues a batch when one product is inaccessible; inaccessible products are reported in the run summary and are not fabricated.
- Stops at
maxItems, removes duplicate IDs deterministically, and preserves completed IDs for run recovery. - Supports public US storefront data only in this release. No login, buyer/order data, Seller Center analytics, review-author profiles, inferred GMV, or CAPTCHA bypass.
Example inputs
One product URL
{"productUrls":["https://shop.tiktok.com/us/pdp/1732526446300467962"],"region":"US","maxItems":1}
A deduplicated ID shortlist
{"productIds":["1732526446300467962","1732600742000628072"],"region":"US","maxItems":2}
For recurring monitoring, save a stable list as an Apify Task and schedule it. Products unavailable in the selected storefront are reported without fabricated rows.
Input recipes
- Enrich one product: provide one
productUrlsorproductIdsvalue, setregiontoUS, and usemaxItems: 1. - Monitor a product catalog: provide a stable list of known product URLs or IDs, set a matching
maxItems, and save the input as your own private Apify Task for scheduled refreshes. - Compare affiliate products: submit a bounded candidate list and export the normalized dataset for side-by-side analysis.
Replace the example IDs or URLs with your own public TikTok Shop products. Saved tasks are private unless you explicitly publish them, so this README does not link to private task pages.
API usage
cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~tiktok-shop-product-data-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"productIds":["1732526446300467962"],"region":"US","maxItems":1}'
JavaScript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/tiktok-shop-product-data-scraper').call({
productIds: ['1732526446300467962'], region: 'US', maxItems: 1,
});
Python
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/tiktok-shop-product-data-scraper').call(run_input={
'productIds': ['1732526446300467962'],
'region': 'US',
'maxItems': 1,
})
print(run['defaultDatasetId'])
Integrations and exports
Download the dataset as JSON, CSV, Excel, XML, or RSS, or consume it through the Apify API. Use webhooks to notify a downstream workflow after each run. Dataset rows are flat for common analytics columns while variants, images, videos, and warnings retain structured arrays.
Use from MCP at https://mcp.apify.com/?tools=fetch_cat/tiktok-shop-product-data-scraper.
Support
Open an issue on the Actor page with the input, expected behavior, and run link. Never include passwords, cookies, or private account data.