# TikTok Creator Search Scraper (`b2b_leads/tiktok-creator-search-scraper`) Actor

Find TikTok creators by keyword or URL, with full profile enrichment, follower count, bio, verified status, and recent video engagement data. Streams to dataset with webhook support. Perfect for influencer discovery, outreach, and market research.

- **URL**: https://apify.com/b2b\_leads/tiktok-creator-search-scraper.md
- **Developed by:** [Chidubem Aneke](https://apify.com/b2b_leads) (community)
- **Categories:** Social media, Lead generation, MCP servers
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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 Creator Search Scraper

Find and enrich TikTok **creators** at scale — by keyword or by direct profile — and get every result as a clean, structured dataset row. One creator = one row, with their latest videos attached inside that same row. Built for speed, stability, and easy automation.

### Why this actor

- **One row per creator.** Full profile + recent videos live in a single clean record. No noisy per-video rows to clean up later.
- **Two ways to find creators.** Look up known handles/links, or **discover new creators by topic** (e.g. `cooking`, `gym tips`).
- **Full enrichment, on by default.** Followers, following, hearts, video count, verified status, bio, region, and bio link — plus plays/likes/comments on each recent video.
- **Streams to the dataset.** Results are written as they are found, so long runs stay fast and memory-stable.
- **Real-time webhook.** Push every creator to your CRM, Slack, Zapier, Make, or custom API the moment it's collected.
- **Parallel by design.** Work runs concurrently to finish jobs quickly.

### Use cases

- **Influencer & creator discovery** — build targeted lists by niche, then enrich them.
- **Outreach & talent sourcing** — pull verified creators with real follower counts and bio links for outreach.
- **Competitor & market research** — map who's active in a category and what they're posting.
- **Agency pipelines** — feed clean creator rows straight into a CRM or report.
- **LLM / AI agents** — structured JSON output is ideal for agents that need reliable, field-level creator data (see below).

### LLM & MCP support

The actor is designed to be called programmatically:

- **Structured output.** Every record uses stable, human-readable field names (`uniqueId`, `followerCount`, `heartCount`, `recentVideos`, …), so LLMs and automation can parse results without custom glue.
- **Apify MCP.** Run this actor directly from an LLM agent through the [Apify MCP server](https://docs.apify.com/) — pass the input fields as normal parameters and read the dataset back as JSON.
- **Webhook-friendly.** Point `webhookUrl` at your agent's ingest endpoint to receive each creator the instant it's found.

### Input

All inputs are optional to prefill — the actor ships with example values so you can **click Start immediately**.

Two sections appear in the UI — **Discover by keyword is enabled by default** (fill keywords to run). You can also enable the username/URL section.

| **🔎 Discover by keyword** (enabled by default) | | |
| --- | --- | --- |
| `kwEnable` | Toggle this section on/off | `true` |
| `accountKeywords` | Topics to discover creators for (e.g. `cooking`) | `cooking` |
| `accountsPerKeyword` | Max creators kept per discovery keyword (1–50) | `15` |
| `kwIncludeRecentVideos` | Attach each discovered creator’s videos inside their row | `true` |
| `kwRecentVideosMax` | How many recent videos per creator | `12` |
| `kwVideoEngagement` | Add plays/likes/comments to each recent video | `true` |
| `kwVideoAccountDetails` | Add creator stats onto each video | `false` |
| `kwVideoMinPlays` | Keep only videos above this play count (`0` = off) | `0` |
| `kwVideoPublishedWithin` | Time window (`any` / `7d` / `30d` / `90d`) | `any` |

| **👤 Discover by username / URL** (off by default) | | |
| --- | --- | --- |
| `urlEnable` | Toggle this section on/off | `false` |
| --- | --- | --- |
| `accountUsernames` | TikTok usernames without `@` (e.g. `charlidamelio`) | `tiktok` |
| `accountUrls` | Full profile links (`https://www.tiktok.com/@username`) | _(empty)_ |
| `urlIncludeRecentVideos` | Attach each creator’s latest videos inside their row | `true` |
| `urlRecentVideosMax` | How many recent videos per creator | `12` |
| `urlVideoEngagement` | Add plays/likes/comments to each recent video | `true` |
| `urlVideoAccountDetails` | Add creator stats onto each video | `false` |
| `urlVideoMinPlays` | Keep only videos above this play count (`0` = off) | `0` |
| `urlVideoPublishedWithin` | Time window (`any` / `7d` / `30d` / `90d`) | `any` |

| **Output & delivery** | | |
| --- | --- | --- |
| `webhookUrl` | Optional real-time push URL (JSON or Slack) | _(empty)_ |
| `webhookFormat` | `json` (full record) or `slack` (short message) | `json` |
| `includeRaw` | Attach extended source fragments (advanced) | `false` |

#### Quick starts

**Look up specific creators**
```json
{
  "enableAccounts": true,
  "accountMode": "url",
  "accountUsernames": ["tiktok", "charlidamelio"]
}
````

**Discover creators by topic (with their videos)**

```json
{
  "enableAccounts": true,
  "accountMode": "keyword",
  "accountKeywords": ["cooking", "gym tips"],
  "accountsPerKeyword": 20,
  "accountFetchRecentVideos": true
}
```

### Output

One dataset row **per creator**, streaming in as results arrive. Recent videos (when enabled) are embedded in a `recentVideos` array on that same row — no extra rows.

**Creator row**

```json
{
  "featureType": "account",
  "url": "https://www.tiktok.com/@cookingwithlynja",
  "uniqueId": "cookingwithlynja",
  "nickname": "Lynja",
  "verified": true,
  "followerCount": 22300000,
  "heartCount": 461800000,
  "videoCount": 428,
  "bioLink": "linktr.ee/cookingwithlynja",
  "discoveryQuery": "cooking",
  "recentVideos": [
    {
      "videoId": "7124377958592138539",
      "description": "Gender Reveal Ravioli #tiktoktaughtme",
      "playCount": 6100000,
      "diggCount": 699300,
      "commentCount": 5120,
      "shareCount": 980
    }
  ]
}
```

#### Field reference

**Creator (`account`)**
`uniqueId` · `nickname` · `signature` · `verified` · `followerCount` · `followingCount` · `heartCount` · `videoCount` · `avatarUrl` · `bioLink` · `profileRegion` · `createTime` · `discoveryQuery`

**Recent video (inside `recentVideos`)**
`videoId` · `description` · `author` · `playCount` · `diggCount` · `commentCount` · `shareCount` · `musicTitle` · `musicAuthor` · `hashtags` · `durationSec` · `coverUrl` · `url`

### Output & delivery

- **Dataset (streaming).** Every creator is saved the moment it's found — the run never buffers the whole result set, so it stays fast and stable on large jobs.
- **Webhook (optional).** Set `webhookUrl` to POST each creator in real time, in `json` (full record) or `slack` (short message) format. Webhook failures never stop the run or the dataset writes.
- **Pay-per-event ready.** In Apify Console → your actor → **Monetization**, add a pricing event named **`result`** (this is what the actor charges per saved creator). If you prefer per-feature pricing, set the `TIKTOK_PPE_PER_FEATURE=1` environment variable and instead name the event **`account`** — every row this actor emits is a creator row, so that's the only event used. (Optional: override the event name with `TIKTOK_PPE_EVENT_NAME`.) See the [Pay-per-event docs](https://docs.apify.com/sdk/js/docs/concepts/pay-per-event).

### Local testing

1. Copy `.env.example` → `.env` and add your proxy credentials.
2. Edit `local.creators.input.json` (already prefilled with example creators).
3. Run:
   ```bash
   npm install
   npm run start:local
   ```

Results are written to `output/local_creators_results.json`.

***

### Custom work? Let's build it.

Need something tailor-made? I build **custom scraping actors for any platform** and **web apps of any kind** — dashboards, APIs, automation, and full data pipelines.

- **Email:** <dubem115@gmail.com>
- **GitHub:** <https://github.com/DrunkCodes>

Reach out and let's ship your project.

# Actor input Schema

## `kwEnable` (type: `boolean`):

Discover new creators by topic, then load each full profile. Every creator row can also embed their latest videos.

## `accountKeywords` (type: `array`):

Topics to search (e.g. cooking, gym tips).

## `accountsPerKeyword` (type: `integer`):

Maximum creators to keep from each keyword (1–50).

## `kwIncludeRecentVideos` (type: `boolean`):

When on, every discovered creator row also contains their latest videos in a “recentVideos” column.

## `kwRecentVideosMax` (type: `integer`):

Maximum recent videos attached to each discovered creator row.

## `kwVideoEngagement` (type: `boolean`):

Adds plays, likes, comments, shares, music, duration, and cover to each recent video.

## `kwVideoAccountDetails` (type: `boolean`):

Adds the creator’s followers, bio, and verified status onto each recent-video entry.

## `kwVideoMinPlays` (type: `integer`):

Only keep recent videos at or above this play count (0 = no filter).

## `kwVideoPublishedWithin` (type: `string`):

Only keep recent videos published in this time window.

## `urlEnable` (type: `boolean`):

Look up known creator profiles by handle or profile link. Every creator is saved as one row with full profile and (optionally) recent videos.

## `accountUsernames` (type: `array`):

TikTok usernames without @ (e.g. charlidamelio).

## `accountUrls` (type: `array`):

Full profile links such as https://www.tiktok.com/@username.

## `urlIncludeRecentVideos` (type: `boolean`):

When on, every creator row also contains their latest videos in a “recentVideos” column — no extra rows are created.

## `urlRecentVideosMax` (type: `integer`):

Maximum recent videos attached to each creator row in this section.

## `urlVideoEngagement` (type: `boolean`):

Adds plays, likes, comments, shares, music, duration, and cover to each recent video.

## `urlVideoAccountDetails` (type: `boolean`):

Adds the creator’s followers, bio, and verified status onto each recent-video entry.

## `urlVideoMinPlays` (type: `integer`):

Only keep recent videos at or above this play count (0 = no filter).

## `urlVideoPublishedWithin` (type: `string`):

Only keep recent videos published in this time window.

## `webhookUrl` (type: `string`):

Optional. Every creator is always saved to the run’s dataset as it is collected — this webhook is an extra real-time push (CRM, Slack, Zapier, Make, custom API).

## `webhookFormat` (type: `string`):

json = full creator record; slack = short Slack-friendly message.

## `includeRaw` (type: `boolean`):

Attach extended source fragments to each record. Larger output — for advanced users only.

## Actor input object example

```json
{
  "kwEnable": true,
  "accountKeywords": [
    "cooking"
  ],
  "accountsPerKeyword": 15,
  "kwIncludeRecentVideos": true,
  "kwRecentVideosMax": 12,
  "kwVideoEngagement": true,
  "kwVideoAccountDetails": false,
  "kwVideoMinPlays": 0,
  "kwVideoPublishedWithin": "any",
  "urlEnable": false,
  "accountUsernames": [],
  "accountUrls": [],
  "urlIncludeRecentVideos": true,
  "urlRecentVideosMax": 12,
  "urlVideoEngagement": true,
  "urlVideoAccountDetails": false,
  "urlVideoMinPlays": 0,
  "urlVideoPublishedWithin": "any",
  "webhookUrl": "",
  "webhookFormat": "json",
  "includeRaw": false
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "kwEnable": true,
    "accountKeywords": [
        "cooking"
    ],
    "accountsPerKeyword": 15,
    "kwIncludeRecentVideos": true,
    "kwRecentVideosMax": 12,
    "kwVideoEngagement": true,
    "kwVideoAccountDetails": false,
    "kwVideoMinPlays": 0,
    "kwVideoPublishedWithin": "any",
    "urlEnable": false,
    "accountUsernames": [],
    "accountUrls": [],
    "urlIncludeRecentVideos": true,
    "urlRecentVideosMax": 12,
    "urlVideoEngagement": true,
    "urlVideoAccountDetails": false,
    "urlVideoMinPlays": 0,
    "urlVideoPublishedWithin": "any",
    "webhookFormat": "json",
    "includeRaw": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("b2b_leads/tiktok-creator-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "kwEnable": True,
    "accountKeywords": ["cooking"],
    "accountsPerKeyword": 15,
    "kwIncludeRecentVideos": True,
    "kwRecentVideosMax": 12,
    "kwVideoEngagement": True,
    "kwVideoAccountDetails": False,
    "kwVideoMinPlays": 0,
    "kwVideoPublishedWithin": "any",
    "urlEnable": False,
    "accountUsernames": [],
    "accountUrls": [],
    "urlIncludeRecentVideos": True,
    "urlRecentVideosMax": 12,
    "urlVideoEngagement": True,
    "urlVideoAccountDetails": False,
    "urlVideoMinPlays": 0,
    "urlVideoPublishedWithin": "any",
    "webhookFormat": "json",
    "includeRaw": False,
}

# Run the Actor and wait for it to finish
run = client.actor("b2b_leads/tiktok-creator-search-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 '{
  "kwEnable": true,
  "accountKeywords": [
    "cooking"
  ],
  "accountsPerKeyword": 15,
  "kwIncludeRecentVideos": true,
  "kwRecentVideosMax": 12,
  "kwVideoEngagement": true,
  "kwVideoAccountDetails": false,
  "kwVideoMinPlays": 0,
  "kwVideoPublishedWithin": "any",
  "urlEnable": false,
  "accountUsernames": [],
  "accountUrls": [],
  "urlIncludeRecentVideos": true,
  "urlRecentVideosMax": 12,
  "urlVideoEngagement": true,
  "urlVideoAccountDetails": false,
  "urlVideoMinPlays": 0,
  "urlVideoPublishedWithin": "any",
  "webhookFormat": "json",
  "includeRaw": false
}' |
apify call b2b_leads/tiktok-creator-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TikTok Creator Search Scraper",
        "description": "Find TikTok creators by keyword or URL, with full profile enrichment, follower count, bio, verified status, and recent video engagement data. Streams to dataset with webhook support. Perfect for influencer discovery, outreach, and market research.",
        "version": "0.0",
        "x-build-id": "9Vx1jrGem0g3atM0r"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/b2b_leads~tiktok-creator-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-b2b_leads-tiktok-creator-search-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/b2b_leads~tiktok-creator-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-b2b_leads-tiktok-creator-search-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/b2b_leads~tiktok-creator-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-b2b_leads-tiktok-creator-search-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",
                "properties": {
                    "kwEnable": {
                        "title": "Discover by keyword",
                        "type": "boolean",
                        "description": "Discover new creators by topic, then load each full profile. Every creator row can also embed their latest videos.",
                        "default": true
                    },
                    "accountKeywords": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "Topics to search (e.g. cooking, gym tips).",
                        "default": [
                            "cooking"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "accountsPerKeyword": {
                        "title": "Creators per keyword",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum creators to keep from each keyword (1–50).",
                        "default": 15
                    },
                    "kwIncludeRecentVideos": {
                        "title": "Include each creator’s recent videos",
                        "type": "boolean",
                        "description": "When on, every discovered creator row also contains their latest videos in a “recentVideos” column.",
                        "default": true
                    },
                    "kwRecentVideosMax": {
                        "title": "Recent videos per creator",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum recent videos attached to each discovered creator row.",
                        "default": 12
                    },
                    "kwVideoEngagement": {
                        "title": "Full video stats",
                        "type": "boolean",
                        "description": "Adds plays, likes, comments, shares, music, duration, and cover to each recent video.",
                        "default": true
                    },
                    "kwVideoAccountDetails": {
                        "title": "Creator details on each video",
                        "type": "boolean",
                        "description": "Adds the creator’s followers, bio, and verified status onto each recent-video entry.",
                        "default": false
                    },
                    "kwVideoMinPlays": {
                        "title": "Min plays per video",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only keep recent videos at or above this play count (0 = no filter).",
                        "default": 0
                    },
                    "kwVideoPublishedWithin": {
                        "title": "Published within",
                        "enum": [
                            "any",
                            "7d",
                            "30d",
                            "90d"
                        ],
                        "type": "string",
                        "description": "Only keep recent videos published in this time window.",
                        "default": "any"
                    },
                    "urlEnable": {
                        "title": "Discover by username / URL",
                        "type": "boolean",
                        "description": "Look up known creator profiles by handle or profile link. Every creator is saved as one row with full profile and (optionally) recent videos.",
                        "default": false
                    },
                    "accountUsernames": {
                        "title": "Usernames",
                        "type": "array",
                        "description": "TikTok usernames without @ (e.g. charlidamelio).",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "accountUrls": {
                        "title": "Profile links",
                        "type": "array",
                        "description": "Full profile links such as https://www.tiktok.com/@username.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "urlIncludeRecentVideos": {
                        "title": "Include each creator’s recent videos",
                        "type": "boolean",
                        "description": "When on, every creator row also contains their latest videos in a “recentVideos” column — no extra rows are created.",
                        "default": true
                    },
                    "urlRecentVideosMax": {
                        "title": "Recent videos per creator",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum recent videos attached to each creator row in this section.",
                        "default": 12
                    },
                    "urlVideoEngagement": {
                        "title": "Full video stats",
                        "type": "boolean",
                        "description": "Adds plays, likes, comments, shares, music, duration, and cover to each recent video.",
                        "default": true
                    },
                    "urlVideoAccountDetails": {
                        "title": "Creator details on each video",
                        "type": "boolean",
                        "description": "Adds the creator’s followers, bio, and verified status onto each recent-video entry.",
                        "default": false
                    },
                    "urlVideoMinPlays": {
                        "title": "Min plays per video",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only keep recent videos at or above this play count (0 = no filter).",
                        "default": 0
                    },
                    "urlVideoPublishedWithin": {
                        "title": "Published within",
                        "enum": [
                            "any",
                            "7d",
                            "30d",
                            "90d"
                        ],
                        "type": "string",
                        "description": "Only keep recent videos published in this time window.",
                        "default": "any"
                    },
                    "webhookUrl": {
                        "title": "Webhook URL",
                        "type": "string",
                        "description": "Optional. Every creator is always saved to the run’s dataset as it is collected — this webhook is an extra real-time push (CRM, Slack, Zapier, Make, custom API).",
                        "default": ""
                    },
                    "webhookFormat": {
                        "title": "Webhook format",
                        "enum": [
                            "json",
                            "slack"
                        ],
                        "type": "string",
                        "description": "json = full creator record; slack = short Slack-friendly message.",
                        "default": "json"
                    },
                    "includeRaw": {
                        "title": "Include raw data",
                        "type": "boolean",
                        "description": "Attach extended source fragments to each record. Larger output — for advanced users only.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
