TikTok Shop Search Scraper
Pricing
from $0.60 / 1,000 tiktok shop product saveds
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
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
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?
| Field | Description |
|---|---|
productId | Stable TikTok Shop product ID |
title | Product title |
productUrl | Canonical public product URL |
description | Public product description when detail enrichment succeeds |
category | Primary public product category |
categories | Public product category hierarchy |
variants | Public SKU IDs, names, property pairs, available stock, status, price, original price, and currency |
totalStock | Sum of known public SKU available quantities; null when quantities are unavailable |
images, videos | Public product media URLs |
price | Current search-card price |
currency | Price currency |
originalPrice | Original price when a promotion exposes it |
discountText | Public promotion or discount label |
sellerId | Public seller ID |
sellerName | Shop name |
sellerUrl | Public shop URL when present |
rating | Product rating |
reviewCount | Number of reviews |
soldCount | Public sold count |
soldText | Source sales label |
imageUrl | Primary product image |
videoUrl | Bound product video when present |
brandName | Brand name when present |
skuMinPrice | Lowest SKU price when present |
skuMaxPrice | Highest SKU price when present |
shippingFee | Shipping-fee estimate shown to the Actor's anonymous session; not a destination guarantee |
deliveryMinDays, deliveryMaxDays | Delivery-window estimate shown to the anonymous session; not a destination guarantee |
shopRating, shopSoldCount, shopFollowersCount | Public shop summary metadata |
detailEnriched | Whether ID-matched public product details were added |
rank | Deduplicated rank within the keyword or category |
page | Result page number |
sourceType | Whether the row came from keyword or category mode |
searchQuery | Exact keyword that produced the row, or null for category rows |
categoryUrl, categoryId, categoryName | Target-bound category attribution, or null for keyword rows |
country | Verified TikTok Shop market |
scrapedAt | UTC extraction timestamp |
Input settings
| Setting | Description | Default |
|---|---|---|
searchQueries | Optional product keywords | ['water bottles'] |
categoryUrls | Optional public US TikTok Shop category URLs | [] |
maxItemsPerQuery | Maximum unique products per keyword | 10 |
maxPagesPerQuery | Maximum pages per keyword | 2 |
country | Keyword-search market: US | US |
includeProductDetails | Attempt ID-matched public US enrichment | true |
proxyConfiguration | US residential proxy; an explicit proxy country must be US | US 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 osfrom apify_client import ApifyClientclient = 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.
Related Actors
- TikTok Shop Product Reviews for public buyer feedback on known products
- TikTok Sound Scraper for public sound metadata
- TikTok Video Scraper for public video metadata
- TikTok Profile Scraper for public creator profiles
- TikTok Comments Scraper for public video discussions
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.