# TikTok Shop Search Scraper: Products & Best-Sellers (`magic-scraper/tiktok-shop-search-scraper`) Actor

Fast TikTok Shop Search Scraper: extract products, sales volume, live prices, discounts, and seller ratings by keyword. Built for dropshippers, e-commerce brands, and researchers.

- **URL**: https://apify.com/magic-scraper/tiktok-shop-search-scraper.md
- **Developed by:** [Magic](https://apify.com/magic-scraper) (community)
- **Categories:** E-commerce, Social media, Lead generation
- **Stats:** 4 total users, 3 monthly users, 100.0% runs succeeded, 3 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.50 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🛒 TikTok Shop Search Scraper: Products, Prices & Sales

[![TikTok Shop Search Scraper](https://apify.com/actor-badge?actor=magic-scraper/tiktok-shop-search-scraper)](https://apify.com/magic-scraper/tiktok-shop-search-scraper)
![No Cookies Required](https://img.shields.io/badge/Cookies-Not%20Required-success?style=flat-square)
![Pay-Per-Result](https://img.shields.io/badge/Pricing-$2.00%20%2F%201K%20results-blue?style=flat-square)
![Speed](https://img.shields.io/badge/Speed-~5s%20per%20page-brightgreen?style=flat-square)
![Export](https://img.shields.io/badge/Export-JSON%20|%20CSV%20|%20Excel-orange?style=flat-square)

Extract top-selling products, real-time prices, discounts, sold counts, estimated revenue, seller ratings, and direct product links from **TikTok Shop** by keyword at scale.

Designed for **dropshippers, DTC brand owners, Amazon/eBay arbitrage sellers, and e-commerce analysts** discovering winning viral products before market saturation.

***

### ⚡ What is TikTok Shop Search Scraper?

TikTok Shop is currently the fastest-growing social commerce marketplace in the US and UK. However, official APIs are heavily restricted to approved brand owners.

**TikTok Shop Search Scraper** provides instant, automated access to TikTok Shop product discovery by keyword. It crawls Server-Side Rendered (SSR) shop listings directly, delivering accurate product sales data in seconds without requiring logins, cookies, or browser overhead.

***

### 🚀 Why Choose This Scraper Over Competitors?

| Feature | **Our TikTok Shop Scraper** | Competing Scrapers |
| :--- | :---: | :---: |
| **Speed (100 products)** | ⚡ **~50 seconds** | 🐢 2–3 minutes |
| **Data Authenticity** | ✅ **100% Genuine Shop Listings** | ❌ Mixes video views as sales |
| **Pricing** | 💰 **$2.00 / 1,000 items** ($0.002/item) | 💸 $5.00 – $15.00 / 1,000 items |
| **Minimal Start Fee** | 🏷️ **$0.001** | 💸 $0.05 – $0.10 |
| **Bandwidth & Proxy Cost** | 📉 **85% Less Traffic** (No video/images) | 📈 Downloads heavy media |
| **Automated Revenue Metric** | ✅ `estimated_revenue` included | ❌ Manual calculation required |
| **Built-in Quality Filters** | ✅ `minSold` and `minRating` | ❌ Unfiltered raw data |

***

### 📖 How to Scrape TikTok Shop Products (Step-by-Step)

1. **Enter Search Keywords:** Add search terms (e.g., `led face mask`, `wireless earbuds`, `portable blender`).
2. **Set Filters & Sorting:** (Optional) Set `minSold` (e.g. `500` to find proven sellers) and sort by `best_seller` or `price_asc`.
3. **Run & Export:** Click **Start**. Once finished, export your structured dataset to **CSV, Excel, JSON, Google Sheets**, or integrate directly via API.

***

### 💳 How Much Does It Cost to Scrape TikTok Shop?

This Actor operates under Apify's transparent **Pay-Per-Event (Pay-Per-Result)** model:

- **$2.00 per 1,000 products** ($0.002 per product row).
- **$0.001 minimal start fee**.
- **No subscription required.** If a search query yields 0 results, you are not charged per-result fees.

***

### 📥 Input Parameters

| Parameter | Type | Required | Default | Description |
| :--- | :--- | :---: | :---: | :--- |
| `🔍 searchQueries` | `array[string]` | **Yes** | `["led face mask"]` | List of keywords or phrases to search on TikTok Shop. |
| `🌍 countryCode` | `string` | No | `"US"` | Market region: `"US"` (United States) or `"GB"` (United Kingdom). |
| `💯 maxResultsPerQuery` | `integer` | No | `20` | Maximum number of products to return per keyword (1 – 1,000). Prefilled with 5 for instant 1-click test runs. |
| `🎯 sortBy` | `string` | No | `"best_seller"` | Sorting: `"best_seller"`, `"hot"`, `"price_asc"`, `"price_desc"`. |
| `⚡ minSold` | `integer` | No | `0` | Filter: Only return items with at least this number of confirmed sales (e.g. 500). |
| `⭐ minRating` | `number` | No | `0` | Filter: Only return items with review rating $\ge$ threshold (e.g. 4.5). |
| `🌐 proxyConfiguration` | `object` | No | Residential | Proxy settings. Apify Datacenter or Residential proxy. |

***

### 📤 Sample Output (JSON)

```json
{
  "product_id": "1730700737574179367",
  "title": "SHMHE Red Light Therapy Mask - 7 Color LED Facial Beauty Machine",
  "search_query": "led face mask",
  "current_price": 29.89,
  "original_price": 64.99,
  "currency": "USD",
  "discount_percent": 54,
  "sold_count": 57210,
  "estimated_revenue": 1710006.90,
  "rating": 4.4,
  "reviews_count": 4982,
  "seller_id": "7495857858207910439",
  "seller_name": "Timeleshop",
  "seller_rating": 4.8,
  "product_url": "https://shop.tiktok.com/us/pdp/red-light-face-mask/1730700737574179367",
  "main_image_url": "https://p16-oec-general-useast8.ttcdn-us.com/tos-useast8-i-rt0ujvrtvp-tx2/7dadac08aba74aaab5bd5f8315722d6d~tplv-fhlh96nyum-crop-webp:1500:1500.webp",
  "in_stock": true,
  "shipping_info": "Free shipping",
  "scraped_at": "2026-10-13T06:44:22.258749+00:00"
}
```

***

### 💻 Python & JavaScript Integration

#### Python (`apify-client`)

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
    "searchQueries": ["led face mask", "wireless earbuds"],
    "maxResultsPerQuery": 50,
    "sortBy": "best_seller",
    "minSold": 100,
}

run = client.actor("magic-scraper/tiktok-shop-search-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['title']} - ${item['current_price']} ({item['sold_count']} sold)")
```

#### JavaScript / Node.js (`apify-client`)

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('magic-scraper/tiktok-shop-search-scraper').call({
    searchQueries: ['led face mask'],
    maxResultsPerQuery: 50,
    sortBy: 'best_seller'
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Extracted ${items.length} TikTok Shop products.`);
```

***

### ❓ Frequently Asked Questions (FAQ)

#### Is scraping TikTok Shop legal?

Yes. Our scraper only extracts publicly accessible, Server-Side Rendered commercial product listings displayed on TikTok Shop without requiring login or bypassing authentication walls.

#### Which proxies are recommended?

For small runs, **Apify Datacenter Proxies** (`BUYPROXIES94952`) work great. For large-scale multi-thousand product catalog scraping, we recommend **Apify Residential Proxies** (`RESIDENTIAL`) to prevent rate limits.

#### Can I filter out products with 0 sales?

Yes! Use the `minSold` input parameter (for example, set `minSold: 100`) to automatically exclude low-volume or inactive items.

***

### 🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the [Apify MCP server](https://mcp.apify.com/) or the Apify API (actor: `magic-scraper/tiktok-shop-search-scraper`).

**Purpose:** Discovers trending products and bestsellers on TikTok Shop by search keyword, extracting live prices, original retail prices, sold quantities, estimated revenue, seller ratings, and direct product URLs.

**Why choose this tool over alternatives:**

- **Lightning-Fast SSR Extraction:** Direct HTTP requests using native browser TLS impersonation (~1.5s per query page) with zero headless browser overhead.
- **Reliable Commercial Data:** Extracts genuine e-commerce sales metrics and live prices directly from TikTok Shop endpoints without noisy approximations.
- **No Cookies or Login Required:** Runs completely autonomously without requiring TikTok session cookies, user credentials, or proxy configuration setup.
- **Smart Commercial Filtering:** Built-in server-side filters (`minSold`, `sortBy: "best_seller"`) allow agents to fetch only verified winners in a single tool call.
- **Affordable & Predictable Pricing:** Flat $2.00 / 1,000 products ($0.002 per item) with no hidden fees, fully covered by Apify's $5 monthly free credit.

**Minimal input:**

```json
{
  "searchQueries": ["led face mask"],
  "countryCode": "US",
  "maxResultsPerQuery": 20,
  "sortBy": "best_seller"
}
```

**Output structure:**
Array of product items: `product_id`, `title`, `current_price`, `original_price`, `discount_percent`, `sold_count`, `estimated_revenue`, `rating`, `reviews_count`, `seller_id`, `seller_name`, `seller_rating`, `product_url`, `main_image_url`, `in_stock`, `shipping_info`, `search_query`, `scraped_at`.

**Behaviors an agent should know:**

- Always set `maxResultsPerQuery` to control context size and cost (e.g. 10 to 50 items).
- Use `sortBy: "best_seller"` or `"most_popular"` to instantly find top-performing viral products.
- Use `minSold: 100` to automatically prune zero-sales or inactive test listings.
- If no products match a query, the actor returns an empty dataset gracefully without failing or throwing errors.

***

### 🔗 Related TikTok Scrapers

- 📦 [TikTok Shop Product Scraper](https://apify.com/magic-scraper/tiktok-shop-product-scraper) — Deep-dive into specific product URLs/IDs to extract all SKU variants, live numerical inventory stock, specifications, and verified customer reviews.
- 🎬 [TikTok Video & Hashtag Scraper](https://apify.com/magic-scraper/tiktok-video-hashtag-scraper) — Real-time TikTok video search by hashtags, keywords, or direct links with creator profiles, sounds, and affiliate shop product indicators.

***

### SEO Keywords

TikTok Shop search scraper, TikTok Shop product scraper, TikTok Shop bestseller tracker, TikTok Shop trending products, TikTok Shop sales volume, TikTok Shop dropshipping product finder, TikTok Shop revenue calculator, TikTok e-commerce scraper, TikTok Shop product API, TikTok Shop price tracker, find winning TikTok products, TikTok Shop data extractor, TikTok Shop analytics scraper, TikTok Shop scraper API, scrape TikTok Shop without cookies.

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords or search phrases to find products on TikTok Shop (e.g. 'led face mask', 'wireless earbuds').

## `countryCode` (type: `string`):

Target TikTok Shop country market. US has the largest catalog and full metrics.

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

Maximum number of products to return for each search keyword.

## `sortBy` (type: `string`):

Sorting criteria for search results.

## `minSold` (type: `integer`):

Filter: only return products with at least this number of confirmed sales (e.g. 500 to find proven winning products).

## `minRating` (type: `number`):

Filter: only return products with a review rating greater than or equal to this threshold (e.g. 4.5).

## `proxyConfiguration` (type: `object`):

Select proxies to be used by the scraper. Using Apify US proxies is strongly recommended for TikTok Shop.

## Actor input object example

```json
{
  "searchQueries": [
    "led face mask"
  ],
  "countryCode": "US",
  "maxResultsPerQuery": 5,
  "sortBy": "best_seller",
  "minSold": 0,
  "minRating": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "BUYPROXIES94952"
    ]
  }
}
```

# Actor output Schema

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

Dataset items containing product details, pricing, discounts, sold counts, estimated revenue, ratings, and seller info.

# 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 = {
    "searchQueries": [
        "led face mask"
    ],
    "maxResultsPerQuery": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("magic-scraper/tiktok-shop-search-scraper").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 = {
    "searchQueries": ["led face mask"],
    "maxResultsPerQuery": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("magic-scraper/tiktok-shop-search-scraper").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 '{
  "searchQueries": [
    "led face mask"
  ],
  "maxResultsPerQuery": 5
}' |
apify call magic-scraper/tiktok-shop-search-scraper --silent --output-dataset

```

## MCP server setup

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

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/2h61vFjtcARxJZBTr/builds/0tqEKiQO9GlvTNg11/openapi.json
