# TikTok Email Scraper - Creator Leads & Contacts (`flash_scraper/tiktok-leads-scraper`) Actor

TikTok email scraper that turns any niche into a creator lead list. Search by hashtag, keyword, or profile and extract emails from bios + linked sites, follower/engagement stats, business & verified flags, and a 0-100 lead score. Export CSV/JSON/Excel.

- **URL**: https://apify.com/flash\_scraper/tiktok-leads-scraper.md
- **Developed by:** [Flash Scrape](https://apify.com/flash_scraper) (community)
- **Categories:** Social media, Lead generation, E-commerce
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00105 / actor start

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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 Email Scraper - Creator Leads & Contacts

**This TikTok email scraper finds creators in any niche and turns them into a contactable lead list** — with each creator's email, follower and engagement stats, business-account flag, and a 0–100 lead score. Search TikTok by hashtag or keyword (or paste a list of profiles), and export ready-to-use creator leads to CSV, JSON, or Excel.

If you do influencer outreach, creator partnerships, agency prospecting, or B2B cold email, this is the fastest way to go from "I want to reach TikTok creators in X niche" to a clean spreadsheet of names, handles, and verified email addresses.

---

### How to scrape TikTok for leads

You don't need a TikTok login, an API key, or any code. Pick how you want to discover creators, then run the actor:

1. **Discovery** — the scraper pulls videos for your hashtags or search keywords and collects the unique creators behind them. Or skip discovery entirely and paste a list of usernames/profile URLs.
2. **Profile enrichment** — each creator's profile is scraped for full data (bio, bio-link website, commerce category, follower count) via [`clockworks/tiktok-scraper`](https://apify.com/clockworks/tiktok-scraper).
3. **Email finding** — it reads the bio for an email *and* visits the link-in-bio website (home, `/contact`, `/about`) to extract the real email plus other social links.
4. **Score, filter, dedupe** — the actor computes a real engagement rate, applies your quality filters, removes duplicates, scores every lead 0–100, and (optionally) writes an AI cold-email opener.
5. **Export** — results land as a clean, sortable table you can download as CSV, JSON, or Excel.

The two-pass design means you control cost: discovery is cheap, and you cap how many creators get the full (more expensive) profile enrichment with `maxCreators`.

---

### What data you get

Every row is one TikTok creator, best leads first. For each creator the TikTok email scraper returns:

- **The creator's email** — pulled from the bio *and* the linked website, so you get a higher fill-rate than bio-only tools.
- **Follower count and a real engagement rate** — computed from recent videos (likes + comments + shares ÷ views), not a guess.
- **Business / commerce account flag and category** — a strong B2B signal and a hint that contact info exists.
- **Verified status** — know at a glance which accounts are verified.
- **A 0–100 lead score** — so the most contactable, on-target creators float to the top.
- **The bio-link website and direct profile URL** — for manual review or further enrichment.
- **An optional AI cold-email opener** — a personalized one-line icebreaker per lead (uses your own OpenAI/Anthropic key).

Feature bullets you can act on:

- **Find TikTok creators by niche** — search by hashtag or keyword instead of needing a list you already have.
- **Get TikTok creator emails at scale** — two-source email finding (bio + website) in one run.
- **Filter down to only contactable leads** — keep only creators with an email so every row is reachable.
- **Export TikTok leads to a spreadsheet** — CSV / Excel for sales tools, JSON for automations.

---

### Filters & options

Trim the run down to the leads actually worth contacting — you only pay for leads delivered after filtering.

- **Minimum / maximum followers** — target nano, micro, or macro tiers precisely.
- **Only verified accounts** — keep verified creators only.
- **Only business / commerce accounts** — strong B2B signal, more likely to list contact info.
- **Only creators with a bio link** — drop anyone without an external website.
- **Only creators with an email** — best for cold-email campaigns; every kept row is contactable.
- **Find emails on the linked website** — visit each bio-link site to lift the email fill-rate (no key needed).
- **Write an AI cold-opener per lead** — generate a one-sentence outreach opener (requires your own AI key).

#### Input

| Field | Type | Description |
|---|---|---|
| `hashtags` | array | Discover creators posting under these hashtags — one per line, no `#` (e.g. `fitnesscoach`). |
| `searchQueries` | array | Discover creators by keyword search — one per line (e.g. `vegan meal prep`). |
| `profiles` | array | Scrape specific creators directly — usernames or profile URLs, one per line. |
| `maxResults` | integer | How many videos to pull per hashtag/keyword during discovery. Default `50`. |
| `maxCreators` | integer | Cap on unique creators to profile-scrape + enrich (controls cost). Default `30`. |
| `resultsPerProfile` | integer | Recent videos sampled per creator to compute engagement. Default `3`. |
| `minFollowers` | integer | Keep only creators with at least this many followers (`0` = no filter). |
| `maxFollowers` | integer | Keep only creators with at most this many followers (`0` = no cap). |
| `onlyVerified` | boolean | Keep only verified creators. Default `false`. |
| `onlyCommerce` | boolean | Keep only business / commerce accounts. Default `false`. |
| `onlyWithWebsite` | boolean | Drop creators with no bio link. Default `false`. |
| `onlyWithEmail` | boolean | Drop creators where no email was found. Default `false`. |
| `enrichEmails` | boolean | Visit each bio-link site to extract emails + socials. Default `true`. |
| `writeOpeners` | boolean | Write an AI cold-opener per lead. Default `false`. |
| `llmProvider` | string | AI provider for openers: `openai` or `anthropic`. |
| `llmApiKey` | string | Your own OpenAI/Anthropic key — used once per run, never stored. |
| `llmModel` | string | Optional model override. |

**Example input:**

```json
{
  "hashtags": ["fitnesscoach"],
  "searchQueries": ["vegan meal prep"],
  "profiles": ["baristaswag"],
  "maxCreators": 30,
  "minFollowers": 5000,
  "onlyWithEmail": true,
  "enrichEmails": true
}
````

Provide any of `hashtags`, `searchQueries`, or `profiles`. `maxCreators` caps how many creators get enriched (controls cost); filters trim the rest down to the leads you keep.

#### JSON output sample

```json
{
  "lead_score": 90,
  "handle": "baristaswag",
  "name": "Barista Swag",
  "category": "Professional Services",
  "followers": 20600,
  "engagement_rate": 4.7,
  "email": "hello@baristaswag.com",
  "email_status": "found",
  "website": "https://baristaswag.com",
  "is_commerce": true,
  "verified": false,
  "icebreaker": "Loved your 15-years-of-latte-art angle — that tutorial cadence is rare…",
  "profile_url": "https://www.tiktok.com/@baristaswag"
}
```

Results render as a clean, sortable table on the Output tab and export to CSV, JSON, or Excel.

***

### Use with AI agents & automation

This TikTok email scraper plugs straight into your stack. Use the Apify **MCP** server to let AI agents (Claude, ChatGPT, Cursor) run the scraper and read creator leads as a tool call. Trigger runs and pipe results into **Make**, **n8n**, or **Zapier** to push new leads into your CRM, send outreach, or enrich them further. Or sync the dataset directly to **Google Sheets** so your team works from a live, always-fresh creator lead list.

***

### Pricing

You're charged for the leads delivered after filtering, plus compute for discovery and enrichment. Keep costs down by setting `maxCreators` to the number you actually want enriched and using filters (`minFollowers`, `onlyWithEmail`) so you don't pay to enrich creators you'd discard. See the Apify Store page for current per-result pricing.

***

### Other Flash Scrape scrapers

Need leads from other platforms? Try the rest of the Flash Scrape suite:

- [Google Maps Leads Scraper](https://apify.com/flash_scraper/google-maps-leads-opener) — Google Maps business leads
- [Yelp Leads Scraper](https://apify.com/flash_scraper/yelp-leads-scraper) — Yelp business leads
- [BBB + Yellow Pages Leads Scraper](https://apify.com/flash_scraper/bbb-yellowpages-leads-scraper) — BBB + Yellow Pages leads
- [Instagram Leads Scraper](https://apify.com/flash_scraper/instagram-leads-scraper) — Instagram profile leads
- [YouTube Leads Scraper](https://apify.com/flash_scraper/youtube-leads-scraper) — YouTube creator leads
- [Smart Scraper by Example](https://apify.com/flash_scraper/smart-scraper-by-example) — no-code web scraper

***

### FAQ

**Is it legal to scrape TikTok creator data?**
The actor only collects **public** profile data that anyone can see without logging in. Use it for legitimate outreach and follow TikTok's terms and anti-spam laws (CAN-SPAM, GDPR) in how you message the leads you collect.

**Do I need an API key?**
No. Discovery, profile scraping, and email finding all work without any key. You only supply your own OpenAI or Anthropic key if you turn on AI cold-openers — and it's used once per run and never stored.

**Will every creator have an email?**
No — TikTok exposes no email field, so it depends on what's in the bio or on the linked website. Enabling `enrichEmails` (on by default) raises the fill-rate by checking the bio-link site too, and `onlyWithEmail` keeps just the contactable creators.

**How many results can I get?**
You control the volume with `maxResults` (videos per hashtag/keyword during discovery) and `maxCreators` (how many creators get enriched, up to 200 per run). Scale up by running multiple hashtags or keywords.

**Can I export to CSV or Google Sheets?**
Yes. Every run exports to CSV, JSON, or Excel from the Output tab, and you can sync the dataset to Google Sheets or push it through Make, n8n, or Zapier automatically.

**What's the difference between this and a plain TikTok scraper?**
A plain scraper returns raw videos or profile JSON. This actor is built for lead generation: it discovers creators by niche, finds their email from two sources, scores and dedupes them, and hands you a sales-ready contact list.

# Actor input Schema

## `hashtags` (type: `array`):

Discover creators posting under these hashtags — one per line, no '#'. e.g. 'fitnesscoach', 'skincare'.

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

Discover creators by keyword search — one per line. e.g. 'vegan meal prep', 'real estate agent'.

## `profiles` (type: `array`):

Scrape specific creators directly — usernames or profile URLs, one per line. e.g. 'baristaswag'.

## `maxResults` (type: `integer`):

How many videos to pull per hashtag/keyword during discovery (drives how many creators are found).

## `maxCreators` (type: `integer`):

Cap on unique creators to profile-scrape + enrich (controls cost).

## `resultsPerProfile` (type: `integer`):

How many recent videos to sample per creator to compute the engagement rate.

## `minFollowers` (type: `integer`):

Keep only creators with at least this many followers (0 = no filter).

## `maxFollowers` (type: `integer`):

Keep only creators with at most this many followers (0 = no cap). Use with min to target nano/micro/macro tiers.

## `onlyVerified` (type: `boolean`):

Keep only verified (blue-badge) creators — usually larger, established accounts.

## `onlyCommerce` (type: `boolean`):

Keep only TikTok business/commerce accounts (a strong B2B signal, and more likely to have contact info).

## `onlyWithWebsite` (type: `boolean`):

Drop creators with no external link in bio.

## `onlyWithEmail` (type: `boolean`):

Drop creators where no email could be found. Best for cold-email campaigns.

## `enrichEmails` (type: `boolean`):

Visit each creator's bio-link site (home + /contact + /about) to extract emails and social links. Higher email fill-rate. No key needed.

## `writeOpeners` (type: `boolean`):

Generate a personalized one-sentence outreach opener for each lead. Requires your OpenAI/Anthropic key below.

## `llmProvider` (type: `string`):

AI provider used to write the cold openers — OpenAI (GPT) or Anthropic (Claude). Use the provider that matches the LLM API key you supply.

## `llmApiKey` (type: `string`):

Your own OpenAI or Anthropic API key. Used only to write the openers; never stored.

## `llmModel` (type: `string`):

Override the default model (gpt-4o-mini for OpenAI, claude-haiku-4-5-20251001 for Anthropic).

## `minScore` (type: `integer`):

Keep only leads scoring at or above this value, 0-100 (0 = no filter). Pay only for your best A/B leads.

## Actor input object example

```json
{
  "hashtags": [
    "fitnesscoach"
  ],
  "searchQueries": [
    "coffee shop"
  ],
  "profiles": [
    "baristaswag"
  ],
  "maxResults": 50,
  "maxCreators": 30,
  "resultsPerProfile": 3,
  "minFollowers": 0,
  "maxFollowers": 0,
  "onlyVerified": false,
  "onlyCommerce": false,
  "onlyWithWebsite": false,
  "onlyWithEmail": false,
  "enrichEmails": true,
  "writeOpeners": false,
  "llmProvider": "openai",
  "minScore": 0
}
```

# Actor output Schema

## `results` (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 = {
    "hashtags": [
        "latteart"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("flash_scraper/tiktok-leads-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 = { "hashtags": ["latteart"] }

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TikTok Email Scraper - Creator Leads & Contacts",
        "description": "TikTok email scraper that turns any niche into a creator lead list. Search by hashtag, keyword, or profile and extract emails from bios + linked sites, follower/engagement stats, business & verified flags, and a 0-100 lead score. Export CSV/JSON/Excel.",
        "version": "0.1",
        "x-build-id": "IalTgIyDbzMofRjzP"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/flash_scraper~tiktok-leads-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-flash_scraper-tiktok-leads-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/flash_scraper~tiktok-leads-scraper/runs": {
            "post": {
                "operationId": "runs-sync-flash_scraper-tiktok-leads-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/flash_scraper~tiktok-leads-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-flash_scraper-tiktok-leads-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": {
                    "hashtags": {
                        "title": "Hashtags",
                        "type": "array",
                        "description": "Discover creators posting under these hashtags — one per line, no '#'. e.g. 'fitnesscoach', 'skincare'.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchQueries": {
                        "title": "Search keywords",
                        "type": "array",
                        "description": "Discover creators by keyword search — one per line. e.g. 'vegan meal prep', 'real estate agent'.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "profiles": {
                        "title": "Profiles (usernames or URLs)",
                        "type": "array",
                        "description": "Scrape specific creators directly — usernames or profile URLs, one per line. e.g. 'baristaswag'.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max discovery results",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "How many videos to pull per hashtag/keyword during discovery (drives how many creators are found).",
                        "default": 50
                    },
                    "maxCreators": {
                        "title": "Max creators to enrich",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Cap on unique creators to profile-scrape + enrich (controls cost).",
                        "default": 30
                    },
                    "resultsPerProfile": {
                        "title": "Videos per creator (for engagement)",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "How many recent videos to sample per creator to compute the engagement rate.",
                        "default": 3
                    },
                    "minFollowers": {
                        "title": "Minimum followers",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Keep only creators with at least this many followers (0 = no filter).",
                        "default": 0
                    },
                    "maxFollowers": {
                        "title": "Maximum followers",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Keep only creators with at most this many followers (0 = no cap). Use with min to target nano/micro/macro tiers.",
                        "default": 0
                    },
                    "onlyVerified": {
                        "title": "Only verified accounts",
                        "type": "boolean",
                        "description": "Keep only verified (blue-badge) creators — usually larger, established accounts.",
                        "default": false
                    },
                    "onlyCommerce": {
                        "title": "Only business / commerce accounts",
                        "type": "boolean",
                        "description": "Keep only TikTok business/commerce accounts (a strong B2B signal, and more likely to have contact info).",
                        "default": false
                    },
                    "onlyWithWebsite": {
                        "title": "Only creators with a bio link",
                        "type": "boolean",
                        "description": "Drop creators with no external link in bio.",
                        "default": false
                    },
                    "onlyWithEmail": {
                        "title": "Only creators with an email",
                        "type": "boolean",
                        "description": "Drop creators where no email could be found. Best for cold-email campaigns.",
                        "default": false
                    },
                    "enrichEmails": {
                        "title": "Find emails on the linked website",
                        "type": "boolean",
                        "description": "Visit each creator's bio-link site (home + /contact + /about) to extract emails and social links. Higher email fill-rate. No key needed.",
                        "default": true
                    },
                    "writeOpeners": {
                        "title": "Write an AI cold-opener per lead",
                        "type": "boolean",
                        "description": "Generate a personalized one-sentence outreach opener for each lead. Requires your OpenAI/Anthropic key below.",
                        "default": false
                    },
                    "llmProvider": {
                        "title": "AI provider (for openers)",
                        "enum": [
                            "openai",
                            "anthropic"
                        ],
                        "type": "string",
                        "description": "AI provider used to write the cold openers — OpenAI (GPT) or Anthropic (Claude). Use the provider that matches the LLM API key you supply.",
                        "default": "openai"
                    },
                    "llmApiKey": {
                        "title": "AI API key (for openers)",
                        "type": "string",
                        "description": "Your own OpenAI or Anthropic API key. Used only to write the openers; never stored."
                    },
                    "llmModel": {
                        "title": "AI model (optional)",
                        "type": "string",
                        "description": "Override the default model (gpt-4o-mini for OpenAI, claude-haiku-4-5-20251001 for Anthropic)."
                    },
                    "minScore": {
                        "title": "Minimum lead score",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Keep only leads scoring at or above this value, 0-100 (0 = no filter). Pay only for your best A/B leads.",
                        "default": 0
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
