# TikTok Shop Creators Scraper - Showcase Leads (`khadinakbar/tiktok-shop-creators-scraper`) Actor

Find public TikTok creators by keyword, check their TikTok Shop showcase, and return creator profiles with follower counts, bios, profile URLs, and showcase products. Provider-backed, no cookies, MCP ready.

- **URL**: https://apify.com/khadinakbar/tiktok-shop-creators-scraper.md
- **Developed by:** [Khadin Akbar](https://apify.com/khadinakbar) (community)
- **Categories:** Social media, Lead generation, MCP servers
- **Stats:** 3 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 creator scrapeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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 Creators Scraper

TikTok Shop Creators Scraper finds public TikTok creators by keyword, checks each creator's public TikTok Shop showcase, and returns a clean shortlist of creator profiles with product examples.

The actor is provider-backed, so it does not ask users for TikTok cookies or a logged-in browser session. It searches public TikTok user results, checks public showcase products through ScrapeCreators, applies follower and verification filters, and saves one normalized dataset row per matching creator.

### What Data Does It Extract?

| Field | Description |
| --- | --- |
| `query` | Search query that produced the creator candidate |
| `username` | TikTok handle |
| `profileUrl` | Public TikTok profile URL |
| `nickname` | TikTok display name |
| `bio` | Public profile bio or signature |
| `bioLink` | Public bio link when available |
| `verified` | Whether the provider marks the profile as verified |
| `followerCount` | Public follower count |
| `likeCount` | Total likes when available |
| `videoCount` | Public video count when available |
| `showcaseProductCount` | Number of public showcase products attached |
| `showcaseProducts` | Compact product examples with title, URL, price, rating, sold count, and image URL |
| `provider` | Provider that returned the search row |

### When To Use This Actor

Use it when you need TikTok Shop creator leads for affiliate recruiting, product seeding, UGC sourcing, ecommerce trend research, or AI-agent workflows. Good queries include product niches and creator personas, such as `tiktok shop finds`, `beauty creator`, `kitchen gadgets`, `fashion finds`, or `amazon finds`.

This is not a general TikTok video scraper, comment scraper, follower-list scraper, or full TikTok Shop product-detail scraper. It also does not access private Creator Marketplace data or private contact details.

### Input Highlights

- `searchQueries`: TikTok user-search queries, one per line.
- `maxProfilesPerQuery`: How many search profiles to inspect per query.
- `maxProfilesScanned`: Whole-run cap for public showcase checks.
- `maxTotalCreators`: Whole-run cap for saved TikTok Shop creator rows.
- `requireShowcaseProducts`: Save only creators with public showcase products. Defaults to true.
- `minFollowerCount`, `verifiedOnly`, `excludePrivateAccounts`: Qualification filters.
- `maxShowcaseProductsPerCreator`: Compact product examples per creator.
- `showcaseRegion`: TikTok Shop region for showcase lookup.

### Example Input

```json
{
  "searchQueries": ["tiktok shop finds"],
  "maxProfilesPerQuery": 25,
  "maxPagesPerQuery": 1,
  "maxProfilesScanned": 25,
  "maxTotalCreators": 10,
  "requireShowcaseProducts": true,
  "excludePrivateAccounts": true,
  "maxShowcaseProductsPerCreator": 5,
  "showcaseRegion": "US"
}
````

### Pricing

This actor uses Pay Per Event pricing.

| Event | Price |
| --- | ---: |
| Actor start | $0.00005 |
| Showcase checked | $0.002 per public profile checked |
| Creator scraped | $0.006 per saved TikTok Shop creator |

Typical run: scanning 25 profiles and saving 10 creators costs about $0.11005. The profile-check fee covers public showcase lookups, including profiles that do not expose products.

### Output Example

```json
{
  "recordType": "creator",
  "discoveryMode": "keyword_showcase",
  "provider": "scrapecreators",
  "query": "tiktok shop finds",
  "resultPosition": 1,
  "username": "mrtiktokreviews",
  "profileUrl": "https://www.tiktok.com/@mrtiktokreviews",
  "nickname": "Mr TikTok Reviews",
  "bio": "Daily TikTok Shop finds",
  "followerCount": 120000,
  "likeCount": 3400000,
  "showcaseProductCount": 5,
  "showcaseProducts": [
    {
      "productId": "123",
      "title": "Kitchen gadget",
      "productUrl": "https://www.tiktok.com/shop/pdp/example/123",
      "price": "19.99",
      "currency": "USD"
    }
  ],
  "scrapedAt": "2026-07-09T12:00:00.000Z"
}
```

### AI Agent And MCP Notes

The dataset is intentionally flat so Claude, ChatGPT, and other MCP clients can scan rows without unpacking raw provider payloads. Use the `overview` dataset view for creator shortlists and the `showcase` view when your workflow needs product examples for campaign fit.

The actor also writes `OUTPUT` and `RUN_SUMMARY` records to the default key-value store. These summaries include provider attempts, status codes, billing counters, duplicate skips, filter skips, showcase misses, and the final stop reason.

### Limits And Compliance

This actor returns public TikTok profile and showcase data exposed by upstream public-data providers. It does not bypass privacy settings, does not log in to TikTok, does not scrape private Creator Marketplace account data, and does not return private contact details. Availability can vary by keyword, region, provider, and TikTok surface changes.

Use the data responsibly and comply with TikTok's terms, privacy laws, and outreach rules in your jurisdiction. For outreach workflows, verify creator fit manually before contacting anyone.

### API Use

```bash
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~tiktok-shop-creators-scraper/runs" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchQueries":["tiktok shop finds"],"maxProfilesScanned":25,"maxTotalCreators":10}'
```

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('khadinakbar/tiktok-shop-creators-scraper').call({
  searchQueries: ['tiktok shop finds'],
  maxProfilesScanned: 25,
  maxTotalCreators: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

### FAQ

**Does this require TikTok login or cookies?**\
No. The actor is provider-backed and uses owner-managed provider secrets.

**Does it only save creators with TikTok Shop products?**\
By default, yes. Set `requireShowcaseProducts` to false if you want all searched creators saved with product examples attached only when found.

**Can it search by country?**\
Not directly. The current stable path is keyword user search plus showcase verification. Use country words in the query if you need local discovery, for example `UK beauty creator`.

**Why is there a charge for showcase checks without saved rows?**\
Each checked profile requires a public showcase provider call. The `maxProfilesScanned` input is the cost guard.

# Actor input Schema

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

Use this when you want to find TikTok creators by niche, product category, brand, or creator style. Accepts one query per line, for example tiktok shop finds, beauty creator, or kitchen gadgets. Defaults to the prefilled example for quick testing. Not for scraping videos, comments, followers, or Creator Marketplace private data.

## `providerOrder` (type: `string`):

Use this to choose which public-data provider is tried first for TikTok user search. ScrapeCreators is the recommended primary and SociaVault is the fallback. Defaults to ScrapeCreators first. Showcase checks use ScrapeCreators because that public endpoint is provider-specific.

## `maxProfilesPerQuery` (type: `integer`):

Use this to cap how many TikTok user-search profiles are inspected for each query. Accepts integers from 1 to 10000. Defaults to 50 and the prefill is 25 for fast tests. This is a scan cap, not the final saved creator count.

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

Use this as a safety cap for provider pagination on each TikTok user search. Accepts integers from 1 to 500. Defaults to 10 and the prefill is 1 for quick checks. Not a result limit by itself.

## `maxProfilesScanned` (type: `integer`):

Use this to cap public showcase checks across the whole run. Accepts integers from 1 to 50000. Defaults to 500 and the prefill is 25. This is the main billing guard for showcase lookup costs.

## `maxTotalCreators` (type: `integer`):

Use this to cap saved TikTok Shop creator rows across all queries. Accepts integers from 1 to 50000. Defaults to 50 and the prefill is 10. This prevents accidental overbilling on broad keyword batches.

## `requireShowcaseProducts` (type: `boolean`):

Use this to save only creators with public TikTok Shop showcase products. Defaults to true because this actor is for TikTok Shop creator discovery. Set false to save searched creator profiles even when no showcase products are found. This does not fetch full product reviews.

## `minFollowerCount` (type: `integer`):

Use this to keep only creator profiles at or above a follower threshold. Accepts 0 or any positive integer, for example 10000 for micro-influencer discovery. Defaults to 0, which keeps all returned profiles. This filter is applied before showcase lookup when follower data is available.

## `verifiedOnly` (type: `boolean`):

Use this when you only want TikTok profiles marked verified or with a provider verification label. Defaults to false so discovery is broad. Set true for brand safety, public figures, or official creator research. Not all public profiles expose identical verification metadata.

## `excludePrivateAccounts` (type: `boolean`):

Use this to skip profiles marked private by TikTok or the provider response. Defaults to true because private accounts are weak TikTok Shop outreach candidates. Set false if private-account metadata still helps your research. This does not bypass privacy settings or return private content.

## `maxShowcaseProductsPerCreator` (type: `integer`):

Use this to cap showcase products attached to each creator. Accepts integers from 1 to 50. Defaults to 5 for campaign shortlisting. This controls row size and does not change how many profiles are checked.

## `maxShowcasePagesPerCreator` (type: `integer`):

Use this to cap provider pagination for each creator showcase. Accepts integers from 1 to 5. Defaults to 1 for predictable cost. Increase only when you need more public product examples per creator. This is not a product-detail scraper.

## `showcaseRegion` (type: `string`):

Use this to choose the TikTok Shop region for public showcase product enrichment. Accepts supported shop regions such as US, GB, DE, FR, IT, ID, MY, MX, PH, SG, ES, TH, VN, BR, JP, or IE. Defaults to US. Not a creator-location filter.

## `trim` (type: `boolean`):

Use this to request smaller user-search payloads when supported. Defaults to false so profile fields such as bio and verification are preserved. Turn it on only for speed tests where compact profile rows are acceptable. This is not a result filter.

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

Use this when you need the original user-search provider response attached to each dataset row. It helps debug field drift or build custom parsers. Defaults to false. Not recommended for AI-agent runs because raw payloads are large.

## Actor input object example

```json
{
  "searchQueries": [
    "tiktok shop finds"
  ],
  "providerOrder": "scrapecreators-first",
  "maxProfilesPerQuery": 25,
  "maxPagesPerQuery": 1,
  "maxProfilesScanned": 25,
  "maxTotalCreators": 10,
  "requireShowcaseProducts": true,
  "minFollowerCount": 0,
  "verifiedOnly": false,
  "excludePrivateAccounts": true,
  "maxShowcaseProductsPerCreator": 5,
  "maxShowcasePagesPerCreator": 1,
  "showcaseRegion": "US",
  "trim": false,
  "includeRawData": false
}
```

# Actor output Schema

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

Normalized TikTok creator records with search query, profile URL, bio, follower counts, public showcase products, and source metadata.

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

Run-level summary with provider diagnostics, counts, billing counters, filters, and stop reason.

# 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": [
        "tiktok shop finds"
    ],
    "maxProfilesPerQuery": 25,
    "maxPagesPerQuery": 1,
    "maxProfilesScanned": 25,
    "maxTotalCreators": 10,
    "minFollowerCount": 0,
    "maxShowcaseProductsPerCreator": 5,
    "maxShowcasePagesPerCreator": 1
};

// Run the Actor and wait for it to finish
const run = await client.actor("khadinakbar/tiktok-shop-creators-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": ["tiktok shop finds"],
    "maxProfilesPerQuery": 25,
    "maxPagesPerQuery": 1,
    "maxProfilesScanned": 25,
    "maxTotalCreators": 10,
    "minFollowerCount": 0,
    "maxShowcaseProductsPerCreator": 5,
    "maxShowcasePagesPerCreator": 1,
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": [
    "tiktok shop finds"
  ],
  "maxProfilesPerQuery": 25,
  "maxPagesPerQuery": 1,
  "maxProfilesScanned": 25,
  "maxTotalCreators": 10,
  "minFollowerCount": 0,
  "maxShowcaseProductsPerCreator": 5,
  "maxShowcasePagesPerCreator": 1
}' |
apify call khadinakbar/tiktok-shop-creators-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=khadinakbar/tiktok-shop-creators-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TikTok Shop Creators Scraper - Showcase Leads",
        "description": "Find public TikTok creators by keyword, check their TikTok Shop showcase, and return creator profiles with follower counts, bios, profile URLs, and showcase products. Provider-backed, no cookies, MCP ready.",
        "version": "0.1",
        "x-build-id": "rHcJP72JrUKYkbXH7"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/khadinakbar~tiktok-shop-creators-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-khadinakbar-tiktok-shop-creators-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/khadinakbar~tiktok-shop-creators-scraper/runs": {
            "post": {
                "operationId": "runs-sync-khadinakbar-tiktok-shop-creators-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/khadinakbar~tiktok-shop-creators-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-khadinakbar-tiktok-shop-creators-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "searchQueries"
                ],
                "properties": {
                    "searchQueries": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "Use this when you want to find TikTok creators by niche, product category, brand, or creator style. Accepts one query per line, for example tiktok shop finds, beauty creator, or kitchen gadgets. Defaults to the prefilled example for quick testing. Not for scraping videos, comments, followers, or Creator Marketplace private data.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "providerOrder": {
                        "title": "Provider Order",
                        "enum": [
                            "scrapecreators-first",
                            "sociavault-first",
                            "scrapecreators-only",
                            "sociavault-only"
                        ],
                        "type": "string",
                        "description": "Use this to choose which public-data provider is tried first for TikTok user search. ScrapeCreators is the recommended primary and SociaVault is the fallback. Defaults to ScrapeCreators first. Showcase checks use ScrapeCreators because that public endpoint is provider-specific.",
                        "default": "scrapecreators-first"
                    },
                    "maxProfilesPerQuery": {
                        "title": "Max Profiles Per Query",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Use this to cap how many TikTok user-search profiles are inspected for each query. Accepts integers from 1 to 10000. Defaults to 50 and the prefill is 25 for fast tests. This is a scan cap, not the final saved creator count.",
                        "default": 50
                    },
                    "maxPagesPerQuery": {
                        "title": "Max Pages Per Query",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Use this as a safety cap for provider pagination on each TikTok user search. Accepts integers from 1 to 500. Defaults to 10 and the prefill is 1 for quick checks. Not a result limit by itself.",
                        "default": 10
                    },
                    "maxProfilesScanned": {
                        "title": "Max Profiles Scanned",
                        "minimum": 1,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Use this to cap public showcase checks across the whole run. Accepts integers from 1 to 50000. Defaults to 500 and the prefill is 25. This is the main billing guard for showcase lookup costs.",
                        "default": 500
                    },
                    "maxTotalCreators": {
                        "title": "Max Total Creators",
                        "minimum": 1,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Use this to cap saved TikTok Shop creator rows across all queries. Accepts integers from 1 to 50000. Defaults to 50 and the prefill is 10. This prevents accidental overbilling on broad keyword batches.",
                        "default": 50
                    },
                    "requireShowcaseProducts": {
                        "title": "Require Showcase Products",
                        "type": "boolean",
                        "description": "Use this to save only creators with public TikTok Shop showcase products. Defaults to true because this actor is for TikTok Shop creator discovery. Set false to save searched creator profiles even when no showcase products are found. This does not fetch full product reviews.",
                        "default": true
                    },
                    "minFollowerCount": {
                        "title": "Minimum Follower Count",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Use this to keep only creator profiles at or above a follower threshold. Accepts 0 or any positive integer, for example 10000 for micro-influencer discovery. Defaults to 0, which keeps all returned profiles. This filter is applied before showcase lookup when follower data is available.",
                        "default": 0
                    },
                    "verifiedOnly": {
                        "title": "Verified Only",
                        "type": "boolean",
                        "description": "Use this when you only want TikTok profiles marked verified or with a provider verification label. Defaults to false so discovery is broad. Set true for brand safety, public figures, or official creator research. Not all public profiles expose identical verification metadata.",
                        "default": false
                    },
                    "excludePrivateAccounts": {
                        "title": "Exclude Private Accounts",
                        "type": "boolean",
                        "description": "Use this to skip profiles marked private by TikTok or the provider response. Defaults to true because private accounts are weak TikTok Shop outreach candidates. Set false if private-account metadata still helps your research. This does not bypass privacy settings or return private content.",
                        "default": true
                    },
                    "maxShowcaseProductsPerCreator": {
                        "title": "Max Showcase Products Per Creator",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Use this to cap showcase products attached to each creator. Accepts integers from 1 to 50. Defaults to 5 for campaign shortlisting. This controls row size and does not change how many profiles are checked.",
                        "default": 5
                    },
                    "maxShowcasePagesPerCreator": {
                        "title": "Max Showcase Pages Per Creator",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Use this to cap provider pagination for each creator showcase. Accepts integers from 1 to 5. Defaults to 1 for predictable cost. Increase only when you need more public product examples per creator. This is not a product-detail scraper.",
                        "default": 1
                    },
                    "showcaseRegion": {
                        "title": "Showcase Region",
                        "enum": [
                            "US",
                            "GB",
                            "DE",
                            "FR",
                            "IT",
                            "ID",
                            "MY",
                            "MX",
                            "PH",
                            "SG",
                            "ES",
                            "TH",
                            "VN",
                            "BR",
                            "JP",
                            "IE"
                        ],
                        "type": "string",
                        "description": "Use this to choose the TikTok Shop region for public showcase product enrichment. Accepts supported shop regions such as US, GB, DE, FR, IT, ID, MY, MX, PH, SG, ES, TH, VN, BR, JP, or IE. Defaults to US. Not a creator-location filter.",
                        "default": "US"
                    },
                    "trim": {
                        "title": "Trim Provider Response",
                        "type": "boolean",
                        "description": "Use this to request smaller user-search payloads when supported. Defaults to false so profile fields such as bio and verification are preserved. Turn it on only for speed tests where compact profile rows are acceptable. This is not a result filter.",
                        "default": false
                    },
                    "includeRawData": {
                        "title": "Include Raw Provider Data",
                        "type": "boolean",
                        "description": "Use this when you need the original user-search provider response attached to each dataset row. It helps debug field drift or build custom parsers. Defaults to false. Not recommended for AI-agent runs because raw payloads are large.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
