TikTok Shop Product Data Scraper avatar

TikTok Shop Product Data Scraper

Pricing

from $1.50 / 1,000 tiktok shop product saveds

Go to Apify Store
TikTok Shop Product Data Scraper

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

Fetch Cat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 hours ago

Last modified

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

  1. Refresh a product shortlist before a merchandising review.
  2. Compare SKU prices and public availability across affiliate candidates.
  3. Monitor seller and visible sales signals for selected products.
  4. 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
}
SettingDescriptionDefault
productUrlsPublic TikTok Shop product pages[]
productIdsNumeric product IDs when URLs are unavailable[]
regionVerified storefront market (US)US
maxItemsMaximum unique records saved (1–500)Number of unique inputs
proxyConfigurationOptional region-matched Apify Proxy settingsUS 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 productUrls or productIds value, set region to US, and use maxItems: 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.

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 eventUnitFREEBRONZESILVERGOLDPLATINUMDIAMOND
TikTok Shop product savedPer 1 output record (rounded up)$0.0015$0.0015$0.0015$0.0015$0.0015$0.0015
Product enrichment run startedPer 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.

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.