# TikTok Shop Search Pro 🔥 (`deepmine/tiktok-shop-search-pro`) Actor

TikTok Shop scraper for keyword and region search. Extract product IDs, titles, brands, sellers, prices, ratings, reviews, SKU pricing, and ranking data in clean structured output for ecommerce research, competitor tracking, trend discovery, and product sourcing.

- **URL**: https://apify.com/deepmine/tiktok-shop-search-pro.md
- **Developed by:** [DeepMine](https://apify.com/deepmine) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Stats:** 154 total users, 14 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 4.74 out of 5 stars

## Pricing

from $8.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## TikTok Shop Search Pro – Product Scraper & Data API

Extract structured product data from US TikTok Shop search results by keyword. Use this Actor as a TikTok Shop product scraper, product search API, price research tool, or ecommerce intelligence source.

Get product titles, brands, sellers, pricing, ratings, review counts, SKU-level data, and ranking signals—organized into analysis-ready datasets.

***

### What you get

Every product discovered is returned as a structured record containing:

- Product title, brand, and seller identity
- Full price range (min, max, average) with discount data
- Ratings and review counts
- Global and page-level ranking position
- Direct product URL
- Seller aggregation across all results (Shops dataset)
- Deals subset for discounted products (Deals dataset)

Results are split across three datasets automatically: **Products**, **Deals**, and **Shops** — so your data is pre-organized the moment the run finishes.

***

### Who uses this

**Ecommerce brands** use it to map a category before launching — understanding who's already selling, at what price, and how well they're rated.

**Amazon sellers** use it to track TikTok Shop as a competing or complementary channel, monitor SKU-level pricing shifts, and identify white-label opportunities.

**Dropshipping agencies** use it to source winning products across multiple niches in bulk, with rating and review signals built in.

**Market research teams** use it to benchmark competitor catalogs, track price movements over time via scheduled runs, and build data pipelines for category intelligence.

**Retail and wholesale buyers** use it to identify top-performing sellers and products before approaching suppliers directly.

***

### Input

| Field | Description | Default |
|-------|-------------|---------|
| `queries` | One or more keywords to search on TikTok Shop | `["ergo chair"]` |
| `maxPagesPerQuery` | Pages to fetch per keyword (more pages = more results) | `3` |
| `maxResultsPerQuery` | Maximum unique products collected per keyword | `200` |

**Advanced** — only adjust these if you have a specific reason:

| Field | Description | Default |
|-------|-------------|---------|
| `includeRawProduct` | Attach the full raw product object to each output item | `true` |
| `requireAllQueryTokens` | Only return products matching every word in the query | `true` |
| `minimumQueryTokenMatches` | Min words that must match when strict filter is off | `2` |
| `requestTimeoutSec` | Per-request timeout in seconds | `30` |
| `maxFetchRetries` | Retry attempts per page before skipping | `3` |
| `queryRetryAttempts` | Full query restarts on failure before giving up | `5` |

***

### Output fields

| Field | Description |
|-------|-------------|
| `product_id` | Unique TikTok Shop product identifier |
| `product_name` | Full product listing title |
| `brand_name` | Brand as listed on TikTok Shop |
| `seller` | Seller name and shop ID |
| `min_price` | Lowest SKU price (USD) |
| `max_price` | Highest SKU price (USD) |
| `avg_price` | Average price across SKUs |
| `discount_pct` | Discount percentage if on sale |
| `product_rating` | Average buyer rating (0–5 scale) |
| `review_count` | Total number of reviews |
| `rank_on_page` | Position within its search page |
| `rank_global` | Position across all pages for this keyword |
| `product_url` | Direct link to the product on TikTok Shop |
| `query` | The keyword that returned this product |
| `page` | Page number the product appeared on |
| `searchRegion` | Market used for the search (currently `US`) |
| `scraped_at` | ISO 8601 timestamp of when data was collected |
| `raw_product` | Complete raw API payload (when enabled) |

***

### Running at scale

To collect large datasets, increase `maxPagesPerQuery` and `maxResultsPerQuery`. For ongoing monitoring, use Apify's built-in scheduler to run the actor on a daily or weekly cadence — results accumulate across runs so you can track price and ranking changes over time.

For multi-keyword research, add all your target queries to the `queries` list. Each keyword is searched independently and the results are merged into a single dataset with the source keyword attached to every record.

***

### Reliability

No proxy setup is required from you. Standard runs handle collection reliability automatically.

***

### Frequently asked questions

**How many products can I collect per run?**
Up to 5,000 per keyword. Most categories return 100–500 unique products before results repeat.

**Can I search multiple keywords at once?**
Yes — add as many keywords as needed to the `queries` field. Each is searched independently.

**Can I schedule this to run automatically?**
Yes. Use Apify's scheduler to run on any cadence. Pair with the Apify API or webhooks to pipe results into your own systems.

**What regions are supported?**
This Actor currently supports US TikTok Shop search. There is no regional input to configure.

**Does this work with Apify integrations?**
Yes — results export directly to Google Sheets, Zapier, Make, BigQuery, and any tool connected via the Apify API.

***

### Use case guides

#### Competitor product research

Add 3–5 keywords from your product category. Set `maxResultsPerQuery` to 500 and `maxPagesPerQuery` to 10. Run it. You'll have a full picture of who's selling in your niche, at what price, and with how many reviews — ready to export.

#### Price monitoring

Set up a scheduled run with your target keywords on a daily cadence. Each run captures current prices and rankings. Export to Google Sheets or a database to track movement over time.

#### Dropship product sourcing

Run broad category keywords with high page limits. Filter the output by `product_rating` and `review_count` to surface proven products. Use the Shops dataset to identify sellers worth contacting directly.

***

*TikTok Shop Search Pro collects publicly available TikTok Shop search result data. Use in accordance with TikTok's terms of service and applicable laws in your jurisdiction.*

***

### About

Built and maintained on [Apify](https://apify.com) — the platform for web scraping and data extraction at scale. TikTok Shop Search Pro is part of a suite of TikTok data tools covering product search, affiliate products, seller catalogs, and shop reviews.

**Related searches:** TikTok Shop scraper, TikTok Shop product data, TikTok Shop API alternative, TikTok ecommerce data, TikTok Shop price tracker, TikTok Shop competitor analysis tool, extract TikTok Shop listings, TikTok Shop market research, TikTok Shop product catalog scraper, TikTok dropshipping research tool, TikTok Shop seller data extractor, bulk TikTok Shop product export, TikTok Shop data pipeline, ecommerce competitive intelligence TikTok, TikTok Shop SKU pricing data

# Actor input Schema

## `queries` (type: `array`):

Keywords to search on TikTok Shop (e.g. "wireless earbuds", "phone case"). One dataset item is emitted per discovered product.

## `maxPagesPerQuery` (type: `integer`):

Maximum search-result pages to fetch per query. Stops early when no new results are found.

## `maxResultsPerQuery` (type: `integer`):

Maximum unique products to collect per query.

## `includeRawProduct` (type: `boolean`):

Attach the full raw TikTok Shop product object to each output item. Disable for smaller, cleaner datasets.

## `requireAllQueryTokens` (type: `boolean`):

Only keep products whose title contains every word in the search query. Disable to allow partial matches.

## `minimumQueryTokenMatches` (type: `integer`):

Minimum query words that must appear in the product title when Strict Relevance Filter is off.

## `requestTimeoutSec` (type: `integer`):

Per-request HTTP timeout. Increase if you see frequent timeouts on slow proxy routes.

## `maxFetchRetries` (type: `integer`):

HTTP retry attempts per page before giving up on that page.

## `queryRetryAttempts` (type: `integer`):

Full query restarts when a query returns zero results due to a block or failure.

## Actor input object example

```json
{
  "queries": [
    "ergo chair"
  ],
  "maxPagesPerQuery": 5,
  "maxResultsPerQuery": 200,
  "includeRawProduct": true,
  "requireAllQueryTokens": true,
  "minimumQueryTokenMatches": 2,
  "requestTimeoutSec": 30,
  "maxFetchRetries": 5,
  "queryRetryAttempts": 5
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `dealsDatasetUrl` (type: `string`):

No description

## `shopsDatasetUrl` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "ergo chair"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("deepmine/tiktok-shop-search-pro").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "queries": ["ergo chair"] }

# Run the Actor and wait for it to finish
run = client.actor("deepmine/tiktok-shop-search-pro").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "ergo chair"
  ]
}' |
apify call deepmine/tiktok-shop-search-pro --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,deepmine/tiktok-shop-search-pro"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Hr1hjEAGdYMr1RbUj/builds/1Uf20kfOcOBP8QcbT/openapi.json
