# TikTok Shop Affiliate Products Scraper - Creator Showcase (`seemuapps/tiktok-shop-creator-showcase-scraper`) Actor

Scrape every TikTok Shop affiliate product a creator promotes in their showcase: price, discount, units sold, rating, reviews, shop and product links.

- **URL**: https://apify.com/seemuapps/tiktok-shop-creator-showcase-scraper.md
- **Developed by:** [Seemu Scraping](https://apify.com/seemuapps) (community)
- **Stats:** 19 total users, 7 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 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.

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 Affiliate Products Scraper - Creator Showcase

See exactly what any TikTok creator is selling. Enter a list of TikTok usernames and get every product in each creator's public **TikTok Shop showcase** - the affiliate products they promote and earn commission on - with price, discount, units sold, rating and reviews. No login required.

### What you get

One row per product per creator:

- **Creator**: `creatorUsername`, `creatorProfileUrl`, showcase `position`
- **Product**: `productId`, `title`, `productUrl`, `imageUrl`, `images`, `skuId`
- **Pricing**: `price`, `originalPrice`, `discountPercent`, `currency`
- **Sales & social proof**: `unitsSold`, `rating`, `reviewCount`
- **Seller**: `shopId`, `shopUrl` (and `shopName` with product details on)
- **Optional product details**: `shopName`, `category`, `categoryPath`, all product `images`, `priceMin` / `priceMax`, `freeShipping`, `shopRating`, `shopFollowers`, `shopUnitsSold`, `shopProductCount`, `shopLocation`, `promotingVideosCount`
- **Optional creator profile**: `creatorNickname`, `creatorFollowers`, `creatorLikes`, `creatorVideos`, `creatorVerified`, `creatorBioLink`

Export to JSON, CSV, Excel or Google Sheets straight from the Apify console, or pull results through the API.

### Use cases

- **Affiliate research** - find out what a creator is selling and which products their audience buys
- **Competitor and brand monitoring** - discover which creators push competitor products, then recruit them for your own TikTok Shop affiliate program
- **Winning product research** - spot high-selling, heavily discounted products across top affiliate creators for dropshipping and e-commerce
- **Influencer vetting** - check a creator's product mix, price points and categories before a partnership
- **Market research** - track TikTok Shop pricing, discounts and sales volume across creator niches

### How to use

1. Enter one or more **TikTok creators** - usernames with or without `@`, or profile URLs
2. Set **Max products per creator** (default 100; 0 returns the whole showcase)
3. Optionally turn on **Include shop name, category and all images** and **Include creator profile stats**
4. Run the actor - products appear in the **Dataset** tab, grouped by creator in showcase order
5. Creators without a public showcase (or accounts that do not exist) are skipped and listed in the run log

#### Continuing a stopped run

If a run stops early - at the **Max products in total** cap or the run timeout - open the **Key-value store** tab, copy the `NEXT_PAGE_ID` value, and paste it into **Page ID** on your next run with the same creator list. It picks up exactly where the last run stopped, without repeating products. If `NEXT_PAGE_ID` is `null`, every creator was fully scraped.

### Output example

```json
{
  "creatorUsername": "mrtiktokreviews",
  "creatorProfileUrl": "https://www.tiktok.com/@mrtiktokreviews",
  "creatorNickname": "Ryan Toks Wellness",
  "creatorFollowers": 2060,
  "position": 1,
  "region": "US",
  "productId": "1729401442164511030",
  "title": "BASED Hair Texture Powder | Instant Volume & Texture | Lightweight, Matte Finish",
  "productUrl": "https://www.tiktok.com/shop/pdp/1729401442164511030",
  "price": 15,
  "originalPrice": 30,
  "discountPercent": 50,
  "currency": "USD",
  "unitsSold": 534789,
  "rating": 4.4,
  "reviewCount": 36239,
  "shopId": "7495079418085345590",
  "shopName": "BASED",
  "shopUrl": "https://www.tiktok.com/shop/store/7495079418085345590",
  "category": "Beauty & Personal Care",
  "imageUrl": "https://p16-oec-general-useast5.ttcdn-us.com/...webp",
  "detailsFetched": true
}
```

### Free plan limits

To keep the actor available to everyone, free runs are limited to:

- **50 products per run**
- **1 run every 30 minutes**
- **3 runs per day**

If you hit a limit, the run finishes with a message explaining what happened and nothing is charged. Upgrade to a paid Apify plan to remove these limits.

### Pricing

You pay per product row returned. Rows enriched with product details are billed as a separate, slightly higher product-details result. Creators with no showcase are not charged.

### Tips and limitations

- Only the **public** showcase is available - the same products anyone sees on the creator's TikTok profile Shop tab.
- Commission rates are not public on TikTok and are not included.
- Showcase listings do not include the shop name or category; turn on **Include shop name, category and all images** to add them.
- The US TikTok Shop has full coverage. Other regions are often incomplete or empty.
- Big creators can have hundreds of showcase products; use **Max products per creator** to keep runs small.

### Related tools

- **TikTok Shop Scraper** - search TikTok Shop products by keyword, scrape full shop catalogs, product details and reviews

# Actor input Schema

## `usernames` (type: `array`):

TikTok usernames (with or without @) or profile URLs such as https://www.tiktok.com/@mrtiktokreviews. Every product in each creator's public TikTok Shop showcase is returned, one row per product.

## `maxProductsPerCreator` (type: `integer`):

Maximum showcase products to return for each creator. Set 0 for the full showcase (up to 2000 per creator).

## `maxItems` (type: `integer`):

Overall cap on rows for the whole run across all creators. 0 means no overall cap. If the run stops at this cap, continue later with Page ID.

## `includeProductDetails` (type: `boolean`):

Also opens each product page to add the shop name, product category, all product images, price range, free-shipping flag, shop rating, followers and units sold, and the number of creator videos promoting the product. Slower, and each enriched row is billed as a product-details result.

## `includeCreatorProfile` (type: `boolean`):

Adds the creator's display name, follower count, total likes, video count, verified badge and bio link to every row. Looked up once per creator, at no extra charge per row.

## `region` (type: `string`):

TikTok Shop marketplace to read the showcase from. The US has full coverage; other regions are often incomplete or empty.

## `pageId` (type: `string`):

Paste NEXT_PAGE_ID from the previous run's Key-value store to continue where it stopped (after a timeout or the Max products in total cap). Keep the same creator list. Leave empty to start from the beginning.

## Actor input object example

```json
{
  "usernames": [
    "mrtiktokreviews",
    "jsephdeals"
  ],
  "maxProductsPerCreator": 100,
  "maxItems": 0,
  "includeProductDetails": false,
  "includeCreatorProfile": false,
  "region": "US"
}
```

# Actor output Schema

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

One product per row: creatorUsername, position, productId, title, productUrl, price, originalPrice, discountPercent, currency, unitsSold, rating, reviewCount, shopId, shopName, shopUrl, imageUrl, images, category, and optional creator profile and product-page fields.

## `nextPageId` (type: `string`):

NEXT_PAGE_ID record in the default key-value store. Paste into Page ID on the next run to resume; null when every creator was fully scraped.

# 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 = {
    "usernames": [
        "mrtiktokreviews",
        "jsephdeals"
    ],
    "maxProductsPerCreator": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("seemuapps/tiktok-shop-creator-showcase-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 = {
    "usernames": [
        "mrtiktokreviews",
        "jsephdeals",
    ],
    "maxProductsPerCreator": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("seemuapps/tiktok-shop-creator-showcase-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 '{
  "usernames": [
    "mrtiktokreviews",
    "jsephdeals"
  ],
  "maxProductsPerCreator": 100
}' |
apify call seemuapps/tiktok-shop-creator-showcase-scraper --silent --output-dataset

```

## MCP server setup

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