TikTok Shop Product Search (Mobile API)
Pricing
from $9.00 / 1,000 search results
TikTok Shop Product Search (Mobile API)
Search TikTok Shop products by keyword with filters, sorting, pagination, and structured JSON output.
Pricing
from $9.00 / 1,000 search results
Rating
0.0
(0)
Developer
Rizla Piker
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
Search TikTok Shop products by keyword using the mobile API response structure. This Actor supports filters, sorting, multi-page pagination, and structured JSON output for market research, competitor discovery, and catalog monitoring.
Run it on Apify for API access, scheduling, integrations, proxy rotation, and run monitoring.
Why use this Actor?
- Keyword search: Find products across TikTok Shop by text query instead of product ID.
- Filters and sorting: Price range, LIVE-only, COD-only, and sort by price or best sellers.
- Pagination built in: Automatically follows
has_morepages usingmin_time/cursorfrom the API. - Multi-region: US, UK, EU, SEA, LATAM, and more.
- Clean output modes: Readable grouped JSON, compact product rows, or full raw API payloads.
How to use this Actor
- Enter a search query (required).
- Pick a region.
- Set Number of products (
resultsLimit) if you want more than 10. - Run and download the dataset.
That’s it — pagination is automatic.
Ready-made examples (published tasks)
Use these pre-configured tasks from the Actor Examples tab (or create them in Console):
| Use case | Query | Region | Sort |
|---|---|---|---|
| US best-selling wireless earbuds | wireless earbuds | US | BEST_SELLERS |
| Vietnam Bluetooth earphones | tai nghe bluetooth | VN | BEST_SELLERS |
| Japan wireless earphones | ワイヤレスイヤホン | JP | BEST_SELLERS |
| Germany shampoo price scan | shampoo | DE | PRICE_ASC (0,50) |
See JSON configs in the repo examples/ folder. How to publish tasks: Publish your Actor task.
Pricing
Pay per event: $0.01 per search page (search_page, up to 10 products per page). Dataset rows and actor start are priced near zero so cost scales with pages fetched, not product count.
Input
Simplest usage
{"query": "wireless earbuds","region": "US"}
Get more products
{"query": "wireless earbuds","region": "US","resultsLimit": 30}
resultsLimit: 30 → actor fetches 3 pages automatically (10 products each).
Optional filters
{"query": "shampoo","region": "DE","resultsLimit": 20,"sortType": "BEST_SELLERS","priceRange": "0,50"}
Multiple searches (optional)
{"query": "wireless earbuds","region": "US","resultsLimit": 10,"searchTasks": [{ "query": "tai nghe bluetooth", "region": "VN" },{ "query": "ワイヤレスイヤホン", "region": "JP" }]}
When searchTasks is set, it overrides the single query / region.
Local-language keyword examples
| Region | Example keyword |
|---|---|
| US, GB, PH, SG, IE | wireless earbuds |
| DE, FR, IT | shampoo |
| ES, MX | champú / audífonos inalámbricos |
| BR | fone de ouvido bluetooth |
| JP | ワイヤレスイヤホン |
| VN | tai nghe bluetooth |
| TH | หูฟัง bluetooth |
| ID, MY | earbuds bluetooth |
Parameters
| Field | Required | Default | Description |
|---|---|---|---|
query | Yes* | — | Search keyword (any language) |
region | No | US | Country code |
resultsLimit | No | 10 | How many products to return (1–100). Pages are fetched automatically |
sortType | No | empty | RELEVANCE, BEST_SELLERS, PRICE_ASC, PRICE_DESC |
priceRange | No | empty | e.g. 0,50 |
live | No | false | LIVE products only |
cod | No | false | COD products only |
searchTasks | No | — | Optional batch of { "query", "region" } |
outputMode | No | formatted_filtered | Products / Grouped JSON / Raw API |
*Or provide searchTasks instead of query.
Output
You can download the dataset in JSON, CSV, Excel, or other formats from Apify Console.
outputMode: "formatted_filtered"
One dataset row per product:
{"product_id": "1729587132860570285","title": "Wireless Earbuds Pro ...","price": {"show_price": "19.99$","sale_price": "19.99","original_price": "29.99","currency": "USD","discount": "33%"},"image": "https://p16-oec-general-useast5.ttcdn-us.com/...","sales_count": 2120,"rating": 4.5,"store_info": {"name": "Example Store","shop_id": "8647042001333817005"},"search_id": "20260121074932FBC0E44FF5C76619BE8E"}
outputMode: "full_readable"
Single grouped record with pagination metadata:
{"search_info": {"query": "wireless earbuds","region": "US","sortType": "BEST_SELLERS","maxResults": 30},"pagination": {"has_more": true,"cursor": 10,"min_time": null,"pages_fetched": 3},"total_products": 30,"products": []}
outputMode: "raw_response"
Original API payload (or { "pages": [...] } when multiple pages were fetched).
Data fields
| Field | Description |
|---|---|
product_id | TikTok Shop product ID |
title | Product title |
price.show_price | Display price string |
price.sale_price | Sale price value |
price.original_price | Strikethrough/original price |
sales_count | Sold count when available |
rating | Product rating when available |
store_info.name | Seller/shop name |
store_info.shop_id | Shop ID |
image | Main product image URL |
Pricing / cost estimation
Each page of 10 products is one upstream request. Cost depends on:
resultsLimit(pages = ceil(resultsLimit / 10))- Apify compute units for the Actor run
Tip: Start with the default resultsLimit: 10, then increase only when you need more.
Tips and advanced options
- Use
sortType: "PRICE_ASC"or"PRICE_DESC"for price-sorted competitor scans. - Use
priceRange: "0,25"to narrow results to a budget band. - Use local-language keywords for better regional results.
- Use
raw_responsewhen you need the full mobile search card payload.
FAQ, disclaimers, and support
- Product fields vary by region, seller, and search context.
- Respect TikTok Shop Terms of Service and applicable laws when using scraped data.
- For custom fields, filters, or bulk keyword workflows, use the Issues or Contact tab on Apify.
Publication tips (Apify Store)
- Title:
TikTok Shop Product Search (Mobile API) - Categories:
E-commerce,Social Media - SEO keywords:
tiktok shop search,product search,tiktok ecommerce,keyword search