TikTok Shop Search Scraper avatar

TikTok Shop Search Scraper

Pricing

from $0.60 / 1,000 tiktok shop product saveds

Go to Apify Store
TikTok Shop Search Scraper

TikTok Shop Search Scraper

Search public TikTok Shop products in the United States. Export prices, sellers, ratings, sales data, variants, stock and product media.

Pricing

from $0.60 / 1,000 tiktok shop product saveds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Share

Search public TikTok Shop products by keyword in the United States, or browse public US category URLs. Export structured product, price, seller, rating, sales and media data for product discovery, pricing research and catalog monitoring.

Use this TikTok Shop product search API to export TikTok Shop products into datasets, spreadsheets, JSON, or downstream catalog workflows. It is built for ecommerce analysts, marketplace sellers, agencies, and developers who need repeatable product discovery across supported markets.

Who is it for?

  • Marketplace sellers researching products, prices, shops, ratings, and public sales signals.
  • Ecommerce analysts comparing assortments and promotions in the US TikTok Shop market.
  • Developers and agencies feeding structured search results into dashboards, databases, and automations through API or MCP.

Example input

{
"searchQueries": ["water bottles"],
"categoryUrls": ["https://shop.tiktok.com/us/c/water-bottles/600048"],
"maxItemsPerQuery": 10,
"maxPagesPerQuery": 2,
"country": "US",
"includeProductDetails": true
}

Example output

{
"productId": "1731726912824578262",
"title": "HydroPal 32oz Motivational Sports Water Bottle - BPA-Free, Drop-Resistant, Food-Safe PP Plastic, Time Markers, Leak-Proof, Fruit Strainer, Carrying Strap for Active Sports & Workouts",
"productUrl": "https://shop.tiktok.com/us/pdp/hydropal-32oz-water-bottle-with-time-markers-straw/1731726912824578262",
"price": 7.75,
"currency": "USD",
"sellerName": "HydroPal",
"rating": 4.8,
"reviewCount": 271,
"soldCount": 2014,
"rank": 1,
"page": 1,
"searchQuery": "water bottles",
"country": "US"
}

What data can you export?

FieldDescription
productIdStable TikTok Shop product ID
titleProduct title
productUrlCanonical public product URL
descriptionPublic product description when detail enrichment succeeds
categoryPrimary public product category
categoriesPublic product category hierarchy
variantsPublic SKU IDs, names, property pairs, available stock, status, price, original price, and currency
totalStockSum of known public SKU available quantities; null when quantities are unavailable
images, videosPublic product media URLs
priceCurrent search-card price
currencyPrice currency
originalPriceOriginal price when a promotion exposes it
discountTextPublic promotion or discount label
sellerIdPublic seller ID
sellerNameShop name
sellerUrlPublic shop URL when present
ratingProduct rating
reviewCountNumber of reviews
soldCountPublic sold count
soldTextSource sales label
imageUrlPrimary product image
videoUrlBound product video when present
brandNameBrand name when present
skuMinPriceLowest SKU price when present
skuMaxPriceHighest SKU price when present
shippingFeeShipping-fee estimate shown to the Actor's anonymous session; not a destination guarantee
deliveryMinDays, deliveryMaxDaysDelivery-window estimate shown to the anonymous session; not a destination guarantee
shopRating, shopSoldCount, shopFollowersCountPublic shop summary metadata
detailEnrichedWhether ID-matched public product details were added
rankDeduplicated rank within the keyword or category
pageResult page number
sourceTypeWhether the row came from keyword or category mode
searchQueryExact keyword that produced the row, or null for category rows
categoryUrl, categoryId, categoryNameTarget-bound category attribution, or null for keyword rows
countryVerified TikTok Shop market
scrapedAtUTC extraction timestamp

Input settings

SettingDescriptionDefault
searchQueriesOptional product keywords['water bottles']
categoryUrlsOptional public US TikTok Shop category URLs[]
maxItemsPerQueryMaximum unique products per keyword10
maxPagesPerQueryMaximum pages per keyword2
countryKeyword-search market: USUS
includeProductDetailsAttempt ID-matched public US enrichmenttrue
proxyConfigurationUS residential proxy; an explicit proxy country must be USUS residential

Ready-to-run examples

Open a public example to inspect its input, run it, or reuse it as a task:

Quick product sample

{"searchQueries":["running shoes"],"maxItemsPerQuery":10,"country":"US"}

Compare multiple niches

{"searchQueries":["phone cases","desk lamps","travel bags"],"maxItemsPerQuery":50,"maxPagesPerQuery":3,"country":"US"}

Browse a US category

{"searchQueries":[],"categoryUrls":["https://shop.tiktok.com/us/c/water-bottles/600048"],"maxItemsPerQuery":30,"maxPagesPerQuery":2,"country":"US"}

Pricing

Pay per event: one start charge for run initialization, then an item charge for each unique product result saved. Optional detail enrichment has no separate charge event. See the Pricing tab for account-visible rates.

Tips and limits

  • Start with 10–30 products per keyword, then scale after reviewing the output.
  • Results reflect the public US market at run time and can change. Prices are reported in USD when the source exposes them.
  • Category URLs are supported only with country: "US".
  • Public video fields and other sparse optional fields are not guaranteed.
  • Other country values are rejected and never replaced with US inventory.
  • Missing optional values remain null; the Actor does not invent seller or regional metadata.
  • Duplicate product IDs within a keyword are removed automatically.
  • A query may return fewer rows than requested when the public search has no more unique products.

API usage

cURL

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~tiktok-shop-search-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"searchQueries":["water bottles"],"maxItemsPerQuery":10,"country":"US"}'

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/tiktok-shop-search-scraper').call({
searchQueries: ['water bottles'],
maxItemsPerQuery: 10,
country: 'US',
});
console.log(`Dataset: ${run.defaultDatasetId}`);

Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/tiktok-shop-search-scraper').call(run_input={
'searchQueries': ['water bottles'],
'maxItemsPerQuery': 10,
'country': 'US',
})
print(f"Dataset: {run['defaultDatasetId']}")

Use from MCP at https://mcp.apify.com/?tools=fetch_cat/tiktok-shop-search-scraper or call the Actor through the Apify API client.

FAQ

Does it require a TikTok login?

No. It collects public TikTok Shop search results.

Which markets are supported?

This release independently verifies keyword search in US. Other country values are rejected rather than silently returning US inventory.

Can I search several keywords or categories?

Yes. Provide up to 20 combined searchQueries and categoryUrls; each row includes exact keyword or category attribution.

How can I search and export TikTok Shop products?

Enter one or more product keywords, choose a supported market, and run the Actor. Export the resulting dataset as JSON, CSV, Excel, or another format supported by Apify.

Can I run a TikTok Shop search scraper through API or MCP?

Yes. Use the cURL, JavaScript, or Python examples above, or connect through Apify MCP with the Actor-specific tools URL.

Why are some optional fields null?

TikTok Shop does not expose every field for every product. For the verified US detail route, an unavailable public product page can fall back to TikTok Shop’s public product-detail JSON response in the same anonymous session. That response may provide variants, stock, prices, descriptions and images without category breadcrumbs or shop aggregates. When enrichment cannot be completed, the Actor preserves the independently useful search row and sets detailEnriched to false. Stable IDs, titles, URLs, query binding, country, rank, page, and scrape time remain available.

Support

Open an issue on the Actor page with the input, expected behavior, and a run link. Do not include passwords, cookies, or private account data.