# TikTok Shop Affiliate Creator & Video Finder (`nexascout/tiktok-shop-affiliate-creator-finder`) Actor

Find public TikTok Shop creator videos, profiles, engagement metrics, and transparent affiliate-momentum signals by product URL or keyword.

- **URL**: https://apify.com/nexascout/tiktok-shop-affiliate-creator-finder.md
- **Developed by:** [Scout](https://apify.com/nexascout) (community)
- **Categories:** E-commerce, Lead generation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $30.00 / 1,000 analyzed product 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 Affiliate Creator & Video Finder

Find public creator videos connected with TikTok Shop products, rank creator opportunities, and export engagement evidence by product URL or keyword.

The Actor first discovers and verifies live TikTok Shop products. It then inspects each product's public page, embedded state, and page network responses for creator/video data. When a PDP exposes no videos, it can inspect publicly indexed TikTok video URLs through several bounded Google SERP queries and then fall back to TikTok's public video search. Candidate videos are opened individually, re-checked against their actual TikTok description and creator, and retained only after structured detail data passes the product-relevance gate. It does not call another Apify Actor, a third-party TikTok data API, or a publisher-owned data account.

### For AI agents and MCP clients

Use this Actor when the user asks to **find public TikTok creators or videos connected with Shop products** and needs profiles, followers, views, engagement metrics, association evidence, or affiliate-momentum signals.

- **Actor tool ID:** `nexascout/tiktok-shop-affiliate-creator-finder`
- **Minimum keyword input:** `{"searchQueries":["car accessories"],"maxProductsPerQuery":1}`
- **Minimum URL input:** `{"productUrls":[{"url":"https://shop.tiktok.com/us/pdp/..."}],"searchQueries":[]}`
- **Dataset contract:** one billable analyzed-product row with nested `creators` and `affiliateVideos`
- **Run summary:** `OUTPUT` in the default key-value store
- **Do not use for:** private email/phone contacts, commission rates, guaranteed affiliate attribution, recurring product velocity, or a cheap one-time product snapshot

For deterministic tool availability, connect an MCP client to the [NexaScout three-Actor endpoint](https://mcp.apify.com?tools=nexascout/tiktok-shop-product-radar,nexascout/tiktok-shop-trending-products,nexascout/tiktok-shop-affiliate-creator-finder). The client can inspect this Actor's input and output schemas before calling it.

### Choose the right NexaScout Actor

| User intent | Actor |
| --- | --- |
| Current product discovery, commerce fields, and snapshot viral ranking | [Product Scraper & Viral Radar](https://apify.com/nexascout/tiktok-shop-product-radar) |
| Recurring observations, sold-count growth, price/review changes, and sales velocity | [Trend Tracker & Sales Velocity](https://apify.com/nexascout/tiktok-shop-trending-products) |
| Public creators, product videos, engagement metrics, and association evidence | **This Actor — Affiliate Creator & Video Finder** |

### Why use this Actor

- **Product and creator research in one run** — start with TikTok Shop URLs or discover products by keyword.
- **One predictable result per analyzed product** — each dataset row contains product evidence plus nested ranked creators and videos.
- **Public video analytics** — views, likes, comments, shares, engagement rate, views per follower, publish time, and creator audience when TikTok exposes them.
- **Transparent association states** — direct structured product matches, product-page-context videos, and weaker public-search leads are kept separate.
- **Owned extraction pipeline** — no nested paid Actors or external data subscriptions.
- **Automation-ready output** — export to JSON, CSV, Excel, XML, RSS, or use the Apify API, schedules, webhooks, Make, Zapier, and n8n.

### What you get

Every dataset row is one analyzed TikTok Shop product and can include:

- Product ID, name, canonical PDP URL, image, price, discount, sold count, rating, reviews, seller, and product score
- Number of retained public creator videos and distinct creators
- Top affiliate-momentum score and top creator profile
- Ranked `creators` array with audience size, video totals, aggregate engagement, top video, and creator opportunity score
- Ranked `affiliateVideos` array with video URL, description, publish time, public metrics, engagement rate, views per follower, creator profile, association state, and readable score signals
- Product and affiliate data-quality labels on every row

The Actor never fabricates missing metrics. Fields stay `null` when TikTok does not expose them publicly.

### Association and quality states

| State | Meaning |
|---|---|
| `AFFILIATE_CONTENT_FOUND` | At least one structured video payload directly references the analyzed product ID. |
| `PRODUCT_CONTEXT_VIDEOS_FOUND` | Public videos were found in the product-page context, but no explicit product ID was present in the video object. Treat them as research leads, not proven affiliate attribution. |
| `SEARCH_CONTEXT_VIDEOS_FOUND` | Relevant videos were found through TikTok's public video search, but neither a structured product ID nor PDP context proved an affiliate connection. Treat them as creator/content leads only. |
| `NO_PUBLIC_AFFILIATE_CONTENT_FOUND` | The product was analyzed, but no usable public creator/video record was exposed during the run. |

Each video also has an `associationState`:

- `DIRECT_PRODUCT_MATCH` — structured product ID match
- `PRODUCT_PAGE_CONTEXT` — discovered from the public product page without a structured product ID match
- `SEARCH_QUERY_CONTEXT` — relevant public TikTok search result without proven product attribution

### Input examples

#### Find creators for specific products

```json
{
  "productUrls": [
    {
      "url": "https://shop.tiktok.com/us/pdp/example-product/1730000000000000001"
    }
  ],
  "searchQueries": [],
  "region": "US",
  "maxVideosPerProduct": 20,
  "maxCreatorsPerProduct": 10,
  "sortBy": "AFFILIATE_MOMENTUM"
}
```

#### Discover products by niche, then find creator content

```json
{
  "productUrls": [],
  "searchQueries": ["car accessories", "kitchen gadgets"],
  "region": "US",
  "maxProductsPerQuery": 3,
  "maxVideosPerProduct": 20,
  "maxCreatorsPerProduct": 10,
  "minVideoViews": 1000,
  "searchPublicTikTokVideos": true,
  "sortBy": "AFFILIATE_MOMENTUM",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "US"
  }
}
```

You can combine direct URLs and search queries. Product IDs and video IDs are deduplicated automatically.

### Example output

```json
{
  "productId": "1730000000000000001",
  "productName": "Example TikTok Shop product",
  "productUrl": "https://shop.tiktok.com/us/pdp/example-product/1730000000000000001",
  "price": 29.99,
  "salesTotal": 18500,
  "rating": 4.6,
  "reviewCount": 2100,
  "viralScore": 76.4,
  "analysisState": "AFFILIATE_CONTENT_FOUND",
  "affiliateDataQuality": "structured_product_match",
  "affiliateVideoCount": 8,
  "affiliateCreatorCount": 5,
  "directProductMatchCount": 6,
  "topAffiliateMomentumScore": 87.2,
  "topCreatorUsername": "example_creator",
  "topCreatorProfileUrl": "https://www.tiktok.com/@example_creator",
  "creators": [
    {
      "creatorRank": 1,
      "creatorUsername": "example_creator",
      "creatorFollowers": 125000,
      "videoCount": 2,
      "totalViews": 780000,
      "averageEngagementRate": 6.42,
      "creatorOpportunityScore": 82.7,
      "topVideoUrl": "https://www.tiktok.com/@example_creator/video/7500000000000000001"
    }
  ],
  "affiliateVideos": [
    {
      "videoRank": 1,
      "videoId": "7500000000000000001",
      "videoUrl": "https://www.tiktok.com/@example_creator/video/7500000000000000001",
      "views": 650000,
      "likes": 42000,
      "comments": 1100,
      "shares": 900,
      "engagementRate": 6.7692,
      "creatorUsername": "example_creator",
      "creatorFollowers": 125000,
      "associationState": "DIRECT_PRODUCT_MATCH",
      "affiliateMomentumScore": 87.2,
      "affiliateMomentumSignals": [
        "Strong public video reach",
        "Strong engagement rate",
        "Structured product association detected"
      ]
    }
  ],
  "qualityState": "verified_success",
  "dataSource": "tiktok_network_json",
  "scrapedAt": "2026-08-25T00:00:00.000Z"
}
```

The values above illustrate the schema. Actual availability depends on public TikTok responses. In CSV and Excel exports, the nested `creators` and `affiliateVideos` fields are serialized as structured values; JSON/API exports preserve the complete arrays.

### Affiliate momentum score

The deterministic 0–100 video score uses observed public fields only:

- Video reach: up to 30 points
- Public engagement volume: up to 15 points
- Engagement rate: up to 20 points
- Creator audience: up to 10 points
- Views relative to followers: up to 5 points
- Recent content: up to 5 points
- Current product evidence: up to 10 points
- Structured product association: up to 5 points

Reach, engagement, and audience size use logarithmic scaling so a very large account does not flatten every smaller creator opportunity. The score is a research-ranking signal, not a promise of sales, commissions, or future performance.

### How the owned pipeline works

1. Canonicalize current and legacy TikTok Shop PDP links.
2. Discover products from TikTok's public regional keyword catalog when search queries are supplied.
3. Request public product pages through a sticky proxy session.
4. Parse JSON-LD and TikTok state scripts such as `__UNIVERSAL_DATA_FOR_REHYDRATION__`.
5. If HTTP data is incomplete, open the same public PDP in Playwright and inspect JSON returned to the page by TikTok.
6. Detect public video objects across common TikTok response shapes, including `aweme` and `itemStruct` payloads.
7. If the PDP has no creator content, try bounded brand, title, and model searches in the public web index and recover canonical TikTok video URLs from links, redirects, and embedded script data.
8. Reject unrelated search snippets, then open every candidate video URL in a dedicated detail request to capture its public page state and network JSON. Use TikTok's public video-search page only as a final fallback.
9. Re-check the actual video description and creator using strict evidence: creator-brand match, model identifier, brand plus a specific product term, or at least two specific product terms. Generic packaging words cannot validate a match by themselves.
10. Extract creator identity, public audience, video metrics, product references, and media URLs when the selected public source exposes them.
11. Deduplicate videos, separate direct matches from page-context and search-context leads, aggregate creators, calculate transparent scores, and write one product analysis to the dataset.

The browser blocks video and fonts while allowing storefront images. It does not solve CAPTCHAs, log in to TikTok, access private dashboards, or bypass authentication.

### Pricing and cost notes

The recommended launch price is **$0.03 per analyzed product** (**$30 per 1,000 product analyses**), plus Apify's recommended **$0.00005 Actor-start event per allocated GB**. One visible dataset row equals one analyzed product and therefore one billable result. The normal pricing configuration includes platform usage in these prices.

A product with `NO_PUBLIC_AFFILIATE_CONTENT_FOUND` is still a completed, billable analysis: the Actor opened and inspected the public product data and returns an explicit negative result instead of silently dropping it.

US residential proxy is recommended because TikTok Shop is geo-sensitive and often blocks data-center traffic. Keep `maxConcurrency` at 1–2. The Actor defaults to 2 GB of memory because the browser fallback can approach the 1 GB container limit during public PDP and video-search analysis.

### Output and diagnostics

Product analyses are written to the default Apify dataset. The `OUTPUT` record in the default key-value store contains:

- requested, returned, live, and fallback product counts
- products with structured matches, PDP-context videos, search-context leads, or no public content
- total retained creator and video counts
- data-quality breakdown
- HTTP, browser, indexed-query, video-detail, and public-payload diagnostics
- confirmation that zero external data APIs and zero external Actors were used
- failed URLs and extraction stages

### Current limitations

- US TikTok Shop only in this release
- Public creator/video availability varies by product, region, session, and TikTok experiment
- A product page may expose no affiliate content even when private Seller Center data exists
- `PRODUCT_PAGE_CONTEXT` is a research lead, not proven attribution
- `SEARCH_QUERY_CONTEXT` is a relevant public creator/content lead, not proof that the video promoted or sold the product
- Commission rates, private affiliate sales, contact details, and private creator marketplace fields are not available from public pages
- TikTok can change page structures and anti-bot checks without notice

### Responsible use

This Actor extracts publicly visible product, creator, and video information. Do not use it to collect private data, defeat access controls, violate applicable laws or contracts, spam creators, or make automated eligibility decisions. Public metrics can be delayed, rounded, region-specific, or changed by TikTok without notice.

TikTok is a trademark of its respective owner. This independent Actor is not affiliated with or endorsed by TikTok.

### Support

When reporting an issue, include the run ID, region, input type, failed stage, `analysisState`, and `affiliateDataQuality`. Never post private proxy credentials, cookies, or tokens.

# Actor input Schema

## `productUrls` (type: `array`):

Optional public TikTok Shop product-detail pages whose creator/video evidence should be analyzed. Combine with searchQueries or leave empty for niche discovery.

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

Optional product niches or keywords used to discover products before creator/video analysis. Use at least one query or product URL; the default query keeps Store and MCP test runs non-empty.

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

TikTok Shop market code. This release supports the United States.

## `maxProductsPerQuery` (type: `integer`):

Maximum billable analyzed-product rows returned per keyword. Each row contains nested creators and videos; smaller runs are faster and cheaper.

## `maxVideosPerProduct` (type: `integer`):

Maximum public creator/video records retained inside each analyzed product row.

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

Maximum ranked creator profiles retained inside each analyzed product row.

## `minVideoViews` (type: `integer`):

Exclude videos below this public view count. Keep 0 to include videos whose view count is missing.

## `searchPublicTikTokVideos` (type: `boolean`):

When the product page exposes no creator videos, search TikTok's public video results and retain only title/brand-relevant leads. These results are clearly labeled as search-query context, not proven affiliate attribution.

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

Controls analyzed-product ordering. AFFILIATE\_MOMENTUM is recommended when the goal is to identify promising public creator/video evidence.

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

US residential proxy is recommended because TikTok Shop is geo-sensitive and rate-limits data-center traffic.

## `maxConcurrency` (type: `integer`):

Keep this at 1–2 to reduce TikTok security challenges and residential proxy traffic.

## `navigationTimeoutSecs` (type: `integer`):

Maximum time allowed for each HTTP or browser navigation.

## `includeRawData` (type: `boolean`):

Include the best raw product and video objects captured from TikTok. Useful for debugging, but makes exports larger.

## `includeSearchFallbacks` (type: `boolean`):

Return indexed product URLs even when their live PDP cannot be validated. Disabled by default; enabled rows are also billable analyzed products.

## Actor input object example

```json
{
  "productUrls": [],
  "searchQueries": [
    "car accessories"
  ],
  "region": "US",
  "maxProductsPerQuery": 1,
  "maxVideosPerProduct": 20,
  "maxCreatorsPerProduct": 10,
  "minVideoViews": 0,
  "searchPublicTikTokVideos": true,
  "sortBy": "AFFILIATE_MOMENTUM",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  },
  "maxConcurrency": 2,
  "navigationTimeoutSecs": 45,
  "includeRawData": false,
  "includeSearchFallbacks": false
}
```

# Actor output Schema

## `productAnalyses` (type: `string`):

Default dataset items. Each billable row is one analyzed product with nested ranked creators, public videos, engagement metrics, association states, and momentum signals.

## `runSummary` (type: `string`):

OUTPUT key-value record with analyzed-product counts, creator/video association states, discovery diagnostics, and extraction failures.

# 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 = {
    "productUrls": [],
    "searchQueries": [
        "car accessories"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexascout/tiktok-shop-affiliate-creator-finder").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 = {
    "productUrls": [],
    "searchQueries": ["car accessories"],
}

# Run the Actor and wait for it to finish
run = client.actor("nexascout/tiktok-shop-affiliate-creator-finder").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 '{
  "productUrls": [],
  "searchQueries": [
    "car accessories"
  ]
}' |
apify call nexascout/tiktok-shop-affiliate-creator-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,nexascout/tiktok-shop-affiliate-creator-finder"
        }
    }
}

```

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/mHpdo9nHS9P26NyhJ/builds/pOvxfeqyUeVLZyklo/openapi.json
