# TikTok Shop Scraper (`lergassy/tiktok-shop-scraper`) Actor

Scrape TikTok Shop products by keyword, category, best-seller ranking, store or URL: price, units sold, revenue, rating, variants with stock, shipping, shop stats, the creators promoting each product and full buyer reviews. 7- and 30-day sales. No login.

- **URL**: https://apify.com/lergassy/tiktok-shop-scraper.md
- **Developed by:** [Matvey](https://apify.com/lergassy) (community)
- **Categories:** E-commerce, Social media, AI
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $2.80 / 1,000 products

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 Scraper** collects TikTok Shop products from **keyword search, categories, the best-seller ranking, stores and product links**. Every row has **price, discount, units sold, estimated revenue, rating, variants with stock, shipping, category path and shop stats**. It can also list **the creators who promote each product**: their promo videos with views and likes, the "earns commission" flag, followers and the e-mail in their bio. Every product also gets **units sold and revenue for the last 7 and 30 days** from our own daily sales history of TikTok Shop, and you can **sort** any list by units sold, revenue, 7- or 30-day sales, rating or price. Turn on **full reviews** and every product also brings **up to 25,000 buyer reviews**, one row each: stars, text, date, photos, variant bought and the verified-purchase flag.

**$4 per 1,000 products** ($0.004 per row, down to $0.0028 on higher Apify plans) and **$1 per 1,000 reviews**. There is no start fee, no login and no proxy setup. Filtered-out products, duplicates and errors are **never billed**.

### Tested head-to-head — 7 October 2026

The same job for six TikTok Shop Actors on a free Apify account: keyword "air fryer", US shop, 20 products.

| | This Actor | The other five |
|---|---|---|
| Products delivered of 20 asked | **20** | 5, 10, 10 (capped at 10), 15 and 20 |
| Variants with stock, shipping fee and days | **20 of 20 rows** | only 1 of 5 Actors |
| Shop stats (shop rating, shop units sold, followers) | **20 of 20 rows** | only 1 of 5 Actors |
| Time for 20 products with product-page details | **13 s** | 73 s (the one other Actor that opened product pages) |
| Price per 1,000 products on the free plan | **$4, no start fee** | $2–$4.50 at four of them; about $50 at the most-used TikTok Shop search Actor (several paid events per row) |
| Creators promoting each product, with followers and bio e-mail | **yes** (option) | none in a product run; one shows a creator count only |
| Units sold in the last 7 / 30 days | **yes**, from our daily history of ~110,000 products (since 7 Oct 2026) | only the most-used search Actor |
| Sort by units sold, revenue, 7/30-day sales, rating or price | **yes** | 2 of 5 Actors |

### What is TikTok Shop Scraper?

A TikTok Shop product research tool you can run from the Apify console, the API, a spreadsheet, n8n, Make or an AI agent. It reads the same public pages a shopper sees on `shop.tiktok.com`, so it answers the questions product researchers pay analytics subscriptions for:

- **Which products sell?** Units sold, estimated revenue, best-seller ranking, daily sales between runs.
- **At what price?** Current price, original price, discount, price per variant, shipping fee.
- **Who sells them?** Shop rating, shop units sold, product count, followers and positive-feedback score.
- **Who promotes them?** Creators with promo videos, views, likes, commission flag and follower count.
- **What do buyers say?** Every review with stars, text, photos and the variant bought — filter to 1-star reviews to read the complaints.

### What data can it extract?

| Field | Meaning |
|---|---|
| `title`, `url`, `productId`, `imageUrl`, `images`, `brand` | The product and its pictures |
| `price`, `originalPrice`, `discountPercent`, `minPrice`, `maxPrice`, `currency` | Current price (cheapest variant), price before discount, discount %, variant price range |
| `soldCount`, `estimatedRevenue` | Units sold since listing, and units × price as a lifetime GMV estimate |
| `sold7d`, `sold30d`, `revenue7d`, `revenue30d`, `salesHistory`, `trackedSince` | Units sold and revenue over the last 7 and 30 days, and the daily sales counter, from our shared daily sales history (see below) |
| `soldSinceLastCheck`, `dailySalesEstimate`, `revenueSinceLastCheck` | Sales since your own previous run of the same product (from your 2nd run on) |
| `rating`, `reviewCount`, `ratingBreakdown`, `topReviews` | Rating, number of reviews, reviews per star 1–5, latest reviews |
| `variants`, `totalStock`, `variantCount` | Every variant (color, size…) with price, stock and availability |
| `shipping` | Fee, free-shipping flag, delivery days, shipping method, ships from local or overseas |
| `categories`, `categoryId`, `description`, `specifications` | Category path, description text, product attributes |
| `shopName`, `sellerId`, `shop` | Shop rating, units sold by the shop, global units sold, products, followers, videos, positive feedback, link |
| `labels` | Card labels such as *Limited time deal*, *Flash sale*, *Free shipping* |
| `creatorCount`, `creatorVideoViews`, `creatorIds` | Creators promoting this product and the total views of their promo videos |
| `source`, `sourceInput`, `foundVia`, `position` | Which keyword or link found the product, and its rank there |

**Creator rows** (`type: "creator"`, with creators on): `username`, `profileUrl`, `nickname`, `followers`, `likes`, `videos`, `verified`, `bio`, `bioLink`, `emails`, `earnsCommission`, `promotedProducts`, `promoVideos` (link, caption, views, likes, duration, upload date), `promoViews`, `promoLikes`, `promoEngagementRate`.

**Review rows** (`type: "review"`, with full reviews on): `reviewId`, `productId`, `productTitle`, `reviewRating` (1–5), `reviewText`, `reviewedAt`, `reviewerName` (masked by TikTok), `reviewerId`, `verifiedPurchase`, `incentivized`, `variant`, `skuId`, `reviewImages`, `reviewImageCount`, `reviewCountry`.

The dataset has three table views: **Products**, **Creators** and **Reviews**.

### How much does it cost?

Pay per event, no start fee:

| Event | Free plan | Bronze | Silver | Gold and up |
|---|---|---|---|---|
| Product row | $0.004 | $0.0036 | $0.0032 | $0.0028 |
| Creator row (only with creators on) | $0.004 | $0.0036 | $0.0032 | $0.0028 |
| Review row (only with full reviews on) | $0.001 | $0.0009 | $0.0008 | $0.0007 |
| Review row from 22 October 2026 | $0.0015 | $0.00135 | $0.0012 | $0.00105 |

- **1,000 products with full product-page details: $4** on the free plan. On $1 you get 250 products.
- **1,000 reviews: $1** on the free plan, $0.70 on Gold and above ($1.50 and $1.05 from 22 October 2026). A product with 3,000 reviews costs $0.004 + $3.
- Product-page details, sales tracking, creator profile stats: **included**, no add-on fee.
- Products removed by filters, duplicates across inputs, notices and errors: **$0**.
- Set **Max cost per run** in the run options and the run stops by itself at that amount, with every delivered row paid for.
- **Free Apify plan:** US and UK shops work as usual; Thailand, Malaysia, Singapore, the Philippines and Vietnam open only through a paid unblocking service and need a paid Apify plan.

#### Bulk export: what 50,000 products actually cost

| Job | This Actor | Most-used TikTok Shop Actor |
|---|---|---|
| 50,000 product rows | **$200** | $1,250 + start fees |

Checked on the Apify Store on 7 October 2026 against the TikTok Shop Actor with the most monthly users ($0.025 per row on the free plan). Some Actors in this category ask less per row.

Products, creators and sales work over plain HTTP on TikTok Shop's own page data, without a browser. For reviews the run starts one browser, which TikTok requires for its review list; the browser and memory cost is included in the review price.

### How to scrape TikTok Shop

1. Type product keywords into **🔍 Search keywords** (`air fryer`, `phone case`), or paste TikTok Shop links into **🔗 Start URLs**, or tick **🏆 Best sellers**.
2. Set **💯 Max products per source**. Optionally turn on **🎬 Creators promoting each product** and set filters such as **Minimum units sold**.
3. Press **Start** and download JSON, CSV or Excel, or call the run from the API, n8n, Make, Zapier or an AI agent.

#### 7- and 30-day sales without waiting

Every day our own collector records units sold for the US best-seller ranking, the TikTok Shop US category tree (three levels deep, about 2,000 categories), a keyword search for every category name, and the UK top categories — about 110,000 products a day and growing. In a test on 7 October 2026 it covered every best-seller and category product and about a third of the results of a random keyword search. Any product in that history gets `sold7d`, `sold30d`, `revenue7d`, `revenue30d` and a `salesHistory` day by day **in your first run**, at no extra cost. The history started on 7 October 2026: 7-day figures fill from 14 October, 30-day figures from 6 November. Products we have not tracked yet show `null` there; for them, schedule your own input daily and `soldSinceLastCheck` / `dailySalesEstimate` fill from your second run.

#### Full reviews

Set **💬 Full reviews per product** above 0 and every delivered product brings its reviews, one row each. Choose **Newest first** (best for daily tracking) or TikTok's recommended order, and all reviews, one star rating, reviews with photos or verified purchases only.

TikTok's review list shows about 5,000 reviews per order and filter. Ask for more and the run walks every star rating (both orders where a rating has more than 5,000), then the other order, photo and verified filters, and drops duplicates, up to 25,000 per product. Tested on 7 October 2026 on a US product with 170,506 reviews: 300 reviews in 26 s, 3,000 in 86 s, **25,000 distinct reviews in 12.4 minutes** (oldest from May 2024, 5,226 with photos); 1-star only: 7,460 of its 10,816 one-star reviews. On small products the star filter returned exactly the counts in the product's rating breakdown. Full reviews cover TikTok Shop **US and UK** products (UK reviews go through a UK residential address, included in the price); for Southeast Asia the product row keeps the latest reviews and the star breakdown.

#### Sorting

TikTok's own order is the fastest. Pick **↕️ Sort products by** — units sold, revenue, units sold in the last 7 or 30 days, rating or price — and the run reads up to five times deeper into the list and returns the top products by that measure, in rank order.

### ⬇️ Input

[![TikTok Shop Scraper input form on Apify: keywords, country, products per source, sorting, creators and full reviews](https://raw.githubusercontent.com/lergassy/apify-actor-assets/main/tiktok-shop-scraper/tiktok-shop-scraper-input-form.png)](https://console.apify.com/sign-up)

```json
{
  "searchQueries": ["lip gloss"],
  "startUrls": [
    { "url": "https://shop.tiktok.com/us/store/deejey-hair-accessories/8646927657038942592" },
    { "url": "https://shop.tiktok.com/gb/c/beauty-personal-care/601450" }
  ],
  "bestSellers": true,
  "maxProductsPerSource": 100,
  "productDetails": true,
  "includeCreators": true,
  "maxCreatorsPerProduct": 5,
  "maxReviewsPerProduct": 500,
  "reviewsSort": "newest",
  "minSoldCount": 100
}
```

Accepted links: product (`/pdp/…`), store (`/store/…`), category (`/c/…`), search (`/s?q=…`), best sellers (`/events/ranking-list`) and keyword pages (`/k/…`), on `shop.tiktok.com/<country>/…` or `www.tiktok.com/shop/…`.

**Markets.** The **US** shop is fully supported: search, best sellers, categories, stores and products. The **UK, Thailand, Malaysia, Singapore, the Philippines and Vietnam** work through category, store and product links, with prices in the local currency. TikTok publishes keyword search and the best-seller ranking for the US only, so a search in another market becomes a free notice row that explains this. Creator rows and full reviews are available for the US and UK (TikTok's Southeast Asian web shops show no creator videos). Other countries have no public web shop yet and redirect to the TikTok app.

**Search depth.** If a keyword runs out before your limit, the run widens to TikTok's own related searches and then to the related category. `foundVia` shows how each product was reached.

### ⬆️ Output

[![TikTok Shop products dataset preview: title, price, units sold, estimated revenue, rating, reviews, stock, shop](https://raw.githubusercontent.com/lergassy/apify-actor-assets/main/tiktok-shop-scraper/tiktok-shop-scraper-output-products.png)](https://console.apify.com/sign-up)

[![TikTok Shop reviews dataset preview: stars, review text, date, verified purchase, variant, photos, country](https://raw.githubusercontent.com/lergassy/apify-actor-assets/main/tiktok-shop-scraper/tiktok-shop-scraper-output-reviews.png)](https://console.apify.com/sign-up)

A product row (from a real run on 7 October 2026, long lists shortened):

```json
{
  "type": "product",
  "productId": "1732192437808370305",
  "title": "[Shimmering Lip Gloss Set] Cosmetic Long Lasting Glossy Moisturizing and brightening lip gloss + lip liner…",
  "url": "https://shop.tiktok.com/us/pdp/moisturizing-brightening-shimmering-lip-gloss-set-hydrating/1732192437808370305",
  "country": "US",
  "currency": "USD",
  "price": 16.14,
  "soldCount": 294,
  "estimatedRevenue": 4745,
  "rating": 4.4,
  "reviewCount": 27,
  "ratingBreakdown": { "1": 2, "2": 1, "3": 1, "4": 2, "5": 16 },
  "categories": ["Beauty & Personal Care", "Makeup", "Lipstick & Lip Gloss"],
  "variants": [{ "skuId": "1732192437808435841", "options": { "Color": "02#+03#", "Specification": "One-size" }, "price": 16.14, "stock": 1, "available": true }],
  "shipping": { "fee": 7.99, "freeShipping": false, "minDays": 6, "maxDays": 11, "shipsFrom": "overseas" },
  "shopName": "Wink Global",
  "shop": { "rating": 4.3, "soldCount": 24250, "productCount": 55, "followers": 893, "videoCount": 1402 },
  "creatorCount": 1,
  "previousSoldCount": 294,
  "soldSinceLastCheck": 0,
  "dailySalesEstimate": 0,
  "source": "search",
  "sourceInput": "lip gloss",
  "foundVia": "search",
  "position": 1
}
```

A creator row:

```json
{
  "type": "creator",
  "username": "user2974478526650",
  "profileUrl": "https://www.tiktok.com/@user2974478526650",
  "nickname": "Wink Global",
  "followers": 893,
  "likes": 4448,
  "videos": 1241,
  "earnsCommission": false,
  "promotedProductCount": 1,
  "promoVideoCount": 9,
  "promoViews": 4327,
  "promoLikes": 26,
  "promoEngagementRate": 0.6,
  "promoVideos": [{ "videoId": "7597010976390581518", "views": 855, "likes": 5, "durationSec": 18, "uploadedAt": "2026-01-19T10:04:18.000Z", "url": "https://www.tiktok.com/@user2974478526650/video/7597010976390581518" }]
}
```

### Use cases

#### Product research and dropshipping

Find products that already sell: search a niche, filter by **Minimum units sold**, sort by `estimatedRevenue`. Tick **Best sellers** to see what sells across the whole shop right now.

#### Daily sales tracking

Schedule a store, category or keyword list daily. `dailySalesEstimate` and `revenueSinceLastCheck` show which products are taking off, and `totalStock` shows which are running out.

#### Competitor and shop monitoring

Paste a competitor's store link to get its full catalogue with prices, discounts, stock, units sold and shop stats. Compare prices across runs.

#### Influencer and affiliate discovery

Turn on creators to see who promotes the best-selling products, how many views their promo videos get, whether they earn commission, and how to reach them through the bio link and e-mail.

#### AI agents and data pipelines

Each input field is a plain list, rows have stable IDs (`productId`, `creatorId`), and errors arrive as free rows with a reason. Agents can call the Actor through the Apify MCP server and read clean JSON.

### Integrations

Run it from the Apify API (`POST /v2/acts/lergassy~tiktok-shop-scraper/run-sync-get-dataset-items`), the Python and JavaScript clients, n8n, Make, Zapier, Google Sheets, or as a tool for AI agents through the Apify MCP server. Schedules and webhooks are available in the console.

### Troubleshooting

- **A notice row "Keyword search is published on TikTok Shop US only"**: use category, store or product links for the UK.
- **Fewer products than the limit**: the store or category has fewer products, or your filters removed the rest. Removed products are counted in the run's `STATS` record and are not billed.
- **Creator fields like `followers` are empty**: turn on **👤 Creator profile stats** (on by default).
- **No review rows**: full reviews are for TikTok Shop US and UK products, and a product with no reviews (or none matching the chosen star filter) gives none. The product row's `ratingBreakdown` shows how many reviews each star rating has.
- **`soldSinceLastCheck` is empty**: the product is seen for the first time in your account. It fills from the next run.

### ❓ FAQ

#### Is it legal to scrape TikTok Shop?

The Actor reads only public product, shop and video pages that anyone can open without logging in, and it does not collect private data. Creator rows contain only what creators publish on their public profiles. Check that your use complies with TikTok's terms and with data-protection law in your country (GDPR, CCPA), especially before contacting creators.

#### Does it need a TikTok account or cookies?

No. Nothing to log in to, no API key, no cookies — reviews included.

#### How accurate is "units sold"?

It is the number TikTok Shop shows on the product page ("items sold globally since this item was listed"). `estimatedRevenue` multiplies it by the current price, so it is an estimate: past prices and discounts were different.

#### How do I get daily sales like analytics tools show?

Products in our shared daily history come with `sold7d`, `sold30d` and `salesHistory` in your first run. For anything else, keep **📈 Track sales between runs** on and schedule the same input once a day: the Actor remembers each product's units sold in your own Apify account (key-value store `tiktok-shop-sales-history`) and reports the difference.

#### Which countries are supported?

The US fully; the UK, Thailand, Malaysia, Singapore, the Philippines and Vietnam through category, store and product links. See *Markets* above.

### Your feedback

Found a bug or need a field? Open an issue on the Actor's **Issues** tab. We usually answer within a day. If the Actor saved you time, a short review helps other buyers find it.

### You might also like

| Actor | What it does |
|---|---|
| [TikTok Shop Top Products Scraper](https://apify.com/lergassy/tiktok-shop-top-products-scraper) | Best-selling products with revenue, units sold and the video / live split in 15 markets |
| [TikTok Shop Creators Scraper](https://apify.com/lergassy/tiktok-shop-creators-scraper) | Selling creators with revenue, followers and contact e-mails |
| [TikTok Shop Videos Scraper](https://apify.com/lergassy/tiktok-shop-videos-scraper) | Shoppable videos with revenue, views, ad ROAS and the AI-video flag |
| [TikTok Shop Shops & Live Scraper](https://apify.com/lergassy/tiktok-shop-shops-live-scraper) | Top shops with the affiliate / own-account split, and top live streams with revenue and views |
| [TikTok Shop Reviews Scraper](https://apify.com/lergassy/tiktok-shop-reviews-scraper) | Reviews only: every buyer review of US and UK products, or only the new ones since a date |
| [TikTok Influencer Scraper](https://apify.com/lergassy/tiktok-influencer-scraper) | Followers, engagement rate and average views for any list of TikTok creators |
| [TikTok Comments Scraper](https://apify.com/lergassy/tiktok-comments-scraper) | Comments and replies from TikTok videos |
| [TikTok Video Scraper](https://apify.com/lergassy/tiktok-video-scraper) | Video stats, captions and music from TikTok links |
| [Shopee Scraper](https://apify.com/lergassy/shopee-scraper) | Shopee products, prices and sales across Southeast Asia |
| [Lazada Scraper](https://apify.com/lergassy/lazada-scraper) | Lazada search, products, prices and reviews |
| [Shopify Store Scraper](https://apify.com/lergassy/shopify-store-intel) | Shopify store catalogue, apps and contact e-mails |

# Changelog

This Actor's version history is a separate document: https://apify.com/lergassy/tiktok-shop-scraper/changelog.md

# Actor input Schema

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

Give this, <b>Start URLs</b> or <b>Best sellers</b>. Product keywords as a shopper would type them — <b>air fryer</b>, <b>phone case</b>, <b>protein powder</b>. Each keyword is one source; up to <b>Max products per source</b> rows each. Keyword search works on TikTok Shop US. When a keyword runs out before the limit, the run widens to TikTok's related searches and category (see foundVia).

## `startUrls` (type: `array`):

Give this, <b>Search keywords</b> or <b>Best sellers</b>. TikTok Shop links: product (<code>/pdp/…</code>), store (<code>/store/…</code>), category (<code>/c/…</code>), search (<code>/s?q=…</code>) or best sellers (<code>/events/ranking-list</code>). Both <code>shop.tiktok.com/us/…</code> and <code>www.tiktok.com/shop/…</code> work. The country is taken from the link: US, UK, Thailand, Malaysia, Singapore, Philippines and Vietnam shops are supported.

## `bestSellers` (type: `boolean`):

Add TikTok Shop's own best-seller ranking ("Trending Now: Top Best Sellers") for the chosen country — the most sold products right now, up to Max products per source.

## `country` (type: `string`):

TikTok Shop market for keywords and best sellers. Keyword search and best sellers exist on the US shop; for the UK and Southeast Asia (Thailand, Malaysia, Singapore, Philippines, Vietnam) use category, store or product URLs. Links carry their own country.

## `maxProductsPerSource` (type: `integer`):

Upper limit of product rows from each keyword, category, store or ranking. Products dropped by filters and duplicates are not charged.

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

Any order other than TikTok's reads deeper into the list (up to 5× your limit) and returns the top products by this measure. Last 7 / 30 days come from our daily sales history; products we have not tracked yet go last.

## `productDetails` (type: `boolean`):

Open every product page: variants with stock, total stock, min/max price, rating breakdown 1–5, description, specifications, all images, shipping fee and delivery days, category path, latest reviews and shop stats (shop units sold, followers, rating). Included in the product price.

## `includeCreators` (type: `boolean`):

Adds one creator row per TikTok creator whose videos sell the products: username, promo videos with views and likes, "earns commission" flag, promoted products. Product rows get creatorCount and creatorVideoViews. Each creator row is charged as a creator.

## `creatorProfiles` (type: `boolean`):

With creators on: add followers, total likes, video count, bio, bio link, e-mail in bio and verified flag from each creator's TikTok profile. No extra charge.

## `maxCreatorsPerProduct` (type: `integer`):

How many creators to take from each product's video block (TikTok shows up to ~20 videos per product).

## `maxReviewsPerProduct` (type: `integer`):

0 = off. Adds one row per buyer review of each product: star rating, text, date, photos, variant bought, verified-purchase flag and reviewer. Up to 25,000 per product (TikTok shows about 5,000 per order and filter; above that the run walks every star rating, both orders, photo and verified filters and drops duplicates). TikTok Shop US and UK products. Each review row is charged as a review.

## `reviewsSort` (type: `string`):

Newest first is the one to schedule for tracking new reviews.

## `reviewsFilter` (type: `string`):

Pick one star rating to read complaints (1–2 stars) or praise (5 stars) in depth.

## `trackSales` (type: `boolean`):

Also remembers each product's units sold in your own account (key-value store <code>tiktok-shop-sales-history</code>) and adds soldSinceLastCheck and dailySalesEstimate from your second run on. Daily sales for the last 7 / 30 days (sold7d, sold30d) come from our shared history and do not need this.

## `minSoldCount` (type: `integer`):

Skip products with fewer units sold. Skipped products are free.

## `minPrice` (type: `integer`):

Skip products cheaper than this, in the market's currency (USD, GBP, THB, MYR, SGD, PHP, VND). 0 = no floor.

## `maxPrice` (type: `integer`):

Skip products more expensive than this, in the market's currency. 0 = no ceiling.

## `minRating` (type: `integer`):

Skip products rated below this (1–5). 0 = keep all, including products without reviews.

## `concurrency` (type: `integer`):

How many product pages to open at the same time.

## Actor input object example

```json
{
  "searchQueries": [
    "air fryer"
  ],
  "bestSellers": false,
  "country": "US",
  "maxProductsPerSource": 30,
  "sortBy": "relevance",
  "productDetails": true,
  "includeCreators": false,
  "creatorProfiles": true,
  "maxCreatorsPerProduct": 10,
  "maxReviewsPerProduct": 0,
  "reviewsSort": "newest",
  "reviewsFilter": "all",
  "trackSales": true,
  "minSoldCount": 0,
  "minPrice": 0,
  "maxPrice": 0,
  "minRating": 0,
  "concurrency": 5
}
```

# Actor output Schema

## `products` (type: `string`):

One row per TikTok Shop product: price, discount, units sold, estimated revenue, rating, variants with stock, shipping, shop stats and sales since the previous run.

## `creators` (type: `string`):

One row per creator promoting the products: followers, promo videos with views and likes, commission flag and promoted products. Present when creators are on.

## `reviews` (type: `string`):

One row per buyer review: stars, text, date, photos, variant, verified purchase. Present when full reviews are on.

## `allRows` (type: `string`):

Every row of the run, products, creators, reviews and notices, in one list; the type field tells them apart.

## `runStats` (type: `string`):

JSON counters for the run: rows delivered, filtered out, duplicates, errors and request statistics.

# 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": [
        "air fryer"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("lergassy/tiktok-shop-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": ["air fryer"] }

# Run the Actor and wait for it to finish
run = client.actor("lergassy/tiktok-shop-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": [
    "air fryer"
  ]
}' |
apify call lergassy/tiktok-shop-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,lergassy/tiktok-shop-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/qT99dhANaJSDkU00L/builds/xKTJLftZtr8dfzJP6/openapi.json
