TikTok Shop Product Data Scraper
Pricing
from $1.50 / 1,000 tiktok shop product saveds
TikTok Shop Product Data Scraper
Enrich public TikTok Shop product URLs and IDs with prices, variants, stock, sellers, ratings, sales signals and media.
Pricing
from $1.50 / 1,000 tiktok shop product saveds
Rating
0.0
(0)
Developer
Fetch Cat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
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 osfrom apify_client import ApifyClientclient = 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.
Pricing
Pay per event: one start charge per run and one item charge for each unique product record saved. Failed or inaccessible targets do not create item charges. See the live Pricing tab for current account-visible rates.
| Charge event | Unit | FREE | BRONZE | SILVER | GOLD | PLATINUM | DIAMOND |
|---|---|---|---|---|---|---|---|
| TikTok Shop product saved | Per 1 output record (rounded up) | $0.0015 | $0.0015 | $0.0015 | $0.0015 | $0.0015 | $0.0015 |
| Product enrichment run started | Per run | $0.018 | $0.018 | $0.018 | $0.018 | $0.018 | $0.018 |
FAQ
Does it require a TikTok account?
No. It uses public anonymous product surfaces and does not accept login credentials.
Can it discover products by keyword?
No. Use the related US TikTok Shop Search Scraper for discovery, then pass known URLs or IDs here for detail enrichment.
Why is a field null or listed in warnings?
Public fields vary by product and session. The Actor returns only what the ID-bound source exposes and records important omissions instead of guessing.
What happens when one product is unavailable?
The Actor continues the remaining bounded batch. It does not save a fabricated row for the unavailable target. If every target fails, the run fails with a concise diagnostic.
Can I use API, MCP, schedules, or webhooks?
Yes. Call it with the Apify API clients or MCP, save the input as a Task for schedules, and connect run completion through webhooks.
How many products can one run accept?
Up to 500 unique targets, additionally bounded by maxItems. Start with a small representative batch before scaling.
Related Actors
Use US TikTok Shop Search Scraper for broad keyword/category discovery. This Actor intentionally focuses on known product URL/ID enrichment.
Support
Open an issue on the Actor page with the input, expected behavior, and run link. Never include passwords, cookies, or private account data.