# TikTok Search Scraper (`automation-lab/tiktok-search-scraper`) Actor

Search TikTok by keyword. Extract videos with play counts, likes, comments, author info, and music metadata. Supports video and user search modes. Pay per result, no login required.

- **URL**: https://apify.com/automation-lab/tiktok-search-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Social media
- **Stats:** 15 total users, 8 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

Search TikTok by keyword. Extract videos, engagement metrics, author info, and music metadata from TikTok search results. Supports both video and user search modes. No login required.

### What does TikTok Search Scraper do?

TikTok Search Scraper finds content on TikTok by keyword — like searching directly on TikTok.com, but returning structured data you can analyze, export, and integrate into workflows. Enter your search keywords, and the scraper navigates to TikTok's search page, intercepts internal API responses, and returns rich, structured data about every result.

The scraper uses Playwright with residential proxies to load TikTok search pages in a real browser, then captures data from TikTok's internal search API as the page loads and scrolls. This approach ensures you get the same results a real user would see.

### Who is TikTok Search Scraper for?

**📣 Social media marketers and brand managers**
- Monitor brand mentions and competitor campaigns on TikTok in real time
- Track how your hashtag campaigns are performing versus competitors
- Identify which content formats and angles resonate with your target audience

**🌟 Influencer agencies and talent scouts**
- Discover rising creators producing content in specific niches before they go mainstream
- Build prospect lists by searching for creators in any topic area
- Analyze author metrics (followers, total likes, video count) to rank creators by reach

**🔎 Market researchers and analysts**
- Map TikTok trends for any topic — compare volume and engagement over time
- Build training datasets for social media trend prediction models
- Measure sentiment and content patterns around any keyword or topic

**🎬 Content creators and strategists**
- Research what's working in your niche before creating new content
- Find viral video formulas by analyzing top-performing search results
- Discover underserved topics with less competition but strong engagement

### Why use TikTok Search Scraper?

- 🔓 **No login required** — scrapes public search results without TikTok credentials
- 🔍 **Real search results** — returns exactly what TikTok shows for your query
- 📦 **30+ fields per video** — captions, engagement metrics, author details, music metadata, hashtags
- 👥 **Video + user search** — search for videos or TikTok accounts by keyword
- ⚡ **Multiple keywords** — run batch searches across many topics in a single run
- 📈 **Full engagement data** — plays, likes, comments, shares, saves, and reposts
- 💰 **Pay per result** — only pay for results actually extracted, no flat subscription fees

### How much does it cost to search TikTok?

TikTok Search Scraper uses **pay-per-event** pricing — you pay only for results extracted, no flat subscription fee. All proxy and compute costs are included.

| | Free | Starter ($29/mo) | Scale ($199/mo) | Business ($999/mo) |
|---|---|---|---|---|
| **Per result** | $0.0173 | $0.0150 | $0.0117 | $0.0090 |
| **100 results** | $1.73 | $1.50 | $1.17 | $0.90 |

Plus a one-time **$0.025** run start fee per scraper run.

**Real-world cost examples:**

| Search | Results | Cost (Free tier) | Cost (Starter) |
|--------|---------|-----------------|----------------|
| "cooking recipes" — 10 videos | 10 | ~$0.20 | ~$0.18 |
| "fitness motivation" — 30 videos | 30 | ~$0.54 | ~$0.48 |
| 3 keywords × 20 videos each | 60 | ~$1.06 | ~$0.93 |

Apify Free plan users get **$5/month in free credits** — enough for about 280 results.

### Data you can extract

#### Video search results

| Field | Description |
|-------|-------------|
| `id` | TikTok video ID |
| `text` | Video caption/description |
| `createTime` | Unix timestamp of video creation |
| `createTimeISO` | ISO 8601 formatted creation date |
| `webVideoUrl` | Direct link to the video on TikTok |
| `playCount` | Number of video plays |
| `diggCount` | Number of likes |
| `commentCount` | Number of comments |
| `shareCount` | Number of shares |
| `collectCount` | Number of saves/bookmarks |
| `repostCount` | Number of reposts |
| `authorMeta` | Author profile data (name, followers, verified status, avatar) |
| `musicMeta` | Music/audio metadata (track name, artist, album) |
| `videoMeta` | Video technical data (resolution, duration, cover image) |
| `hashtags` | List of hashtags used in the video |
| `mentions` | List of mentioned users |
| `isAd` | Whether the video is an advertisement |
| `isSlideshow` | Whether the video is a slideshow/carousel |
| `keyword` | The search keyword that returned this result |
| `scrapedAt` | Timestamp when the data was collected |

#### User search results

| Field | Description |
|-------|-------------|
| `id` | TikTok user ID |
| `username` | TikTok handle (unique ID) |
| `nickname` | Display name |
| `profileUrl` | Direct link to the user's profile |
| `avatar` | Profile picture URL |
| `signature` | User bio/description |
| `verified` | Whether the account is verified |
| `followers` | Number of followers |
| `following` | Number of accounts followed |
| `likes` | Total likes received |
| `videoCount` | Number of videos posted |
| `keyword` | The search keyword that returned this result |
| `scrapedAt` | Timestamp when the data was collected |

### How to search TikTok with this scraper

1. Go to [TikTok Search Scraper](https://apify.com/automation-lab/tiktok-search-scraper) on Apify Store
2. Click **Try for free**
3. Enter your search keywords (e.g., "cooking recipes", "fitness tips")
4. Set the maximum number of results per keyword (default: 30)
5. Choose search type: **Videos** or **Users/Accounts**
6. Click **Start** and wait for results
7. Download your data as JSON, CSV, Excel, or connect it to your workflow

### Input configuration

| Field | Type | Description | Default |
|-------|------|-------------|---------|
| `keywords` | string[] | List of keywords to search on TikTok | *required* |
| `maxResultsPerKeyword` | integer | Max results to extract per keyword (1–500) | 30 |
| `searchType` | string | Type of search: `video` or `user` | `video` |
| `proxy` | object | Proxy settings (residential recommended) | Auto |

#### Example input

```json
{
    "keywords": ["cooking recipes", "fitness motivation"],
    "maxResultsPerKeyword": 30,
    "searchType": "video"
}
````

### Output example

#### Video result

```json
{
    "id": "7345678901234567890",
    "text": "Easy 15-minute pasta recipe 🍝 #cooking #recipe #pasta",
    "createTime": 1709500800,
    "createTimeISO": "2024-03-04T00:00:00.000Z",
    "webVideoUrl": "https://www.tiktok.com/@chefmaria/video/7345678901234567890",
    "playCount": 2450000,
    "diggCount": 185000,
    "commentCount": 3420,
    "shareCount": 12500,
    "collectCount": 45000,
    "repostCount": 890,
    "authorMeta": {
        "id": "6812345678901234567",
        "name": "chefmaria",
        "profileUrl": "https://www.tiktok.com/@chefmaria",
        "nickName": "Chef Maria",
        "verified": true,
        "signature": "Home cook sharing daily recipes",
        "avatar": "https://p16-sign-va.tiktokcdn.com/...",
        "following": 245,
        "fans": 890000,
        "heart": 15200000,
        "videoCount": 342
    },
    "musicMeta": {
        "musicName": "original sound",
        "musicAuthor": "chefmaria",
        "musicOriginal": true,
        "musicAlbum": "",
        "musicId": "7345678901234567891"
    },
    "videoMeta": {
        "height": 1024,
        "width": 576,
        "duration": 45,
        "coverUrl": "https://p16-sign-va.tiktokcdn.com/...",
        "definition": "720p"
    },
    "hashtags": ["cooking", "recipe", "pasta"],
    "mentions": [],
    "isAd": false,
    "isSlideshow": false,
    "keyword": "cooking recipes",
    "scrapedAt": "2026-03-27T10:30:00.000Z"
}
```

#### User result

```json
{
    "id": "6812345678901234567",
    "username": "chefmaria",
    "nickname": "Chef Maria",
    "profileUrl": "https://www.tiktok.com/@chefmaria",
    "avatar": "https://p16-sign-va.tiktokcdn.com/...",
    "signature": "Home cook sharing daily recipes",
    "verified": true,
    "followers": 890000,
    "following": 245,
    "likes": 15200000,
    "videoCount": 342,
    "keyword": "cooking recipes",
    "scrapedAt": "2026-03-27T10:30:00.000Z"
}
```

### Tips for best results

- 🎯 **Be specific with keywords** — "vegan meal prep" returns more relevant results than "food"
- 📏 **Start small** — test with 10 results first, then scale up once you verify the output matches your needs
- 🔄 **Use multiple keywords** — add several related terms to build a comprehensive dataset
- 👥 **Try user search** — when looking for influencers or accounts in a niche, switch to user search type
- 💡 **Combine with other scrapers** — use TikTok Search to discover videos, then use [TikTok Comments Scraper](https://apify.com/automation-lab/tiktok-comments-scraper) for comment analysis

### Integrations

**TikTok Search Scraper → Google Sheets**
Schedule daily keyword searches and export results to Sheets for your content calendar. Track which topics gain traction week over week using the built-in scheduling feature.

**TikTok Search Scraper → Slack alerts**
Connect via Zapier or Make: run a keyword search, filter for videos over 1M plays, and push summaries to your Slack channel. Useful for brand monitoring or competitive intelligence.

**TikTok Search Scraper → TikTok Comments Scraper pipeline**
Discover trending videos with this actor, then feed their URLs into [TikTok Comments Scraper](https://apify.com/automation-lab/tiktok-comments-scraper) to analyze audience sentiment for those exact videos.

**TikTok Search Scraper → CRM / lead enrichment**
Search for TikTok users by niche keyword to build influencer prospect lists, then export to your CRM for outreach. Combined with follower counts and verification status.

**Scheduled trend monitoring**
Use Apify's built-in Scheduler to run keyword searches daily or weekly. Compare results over time to spot emerging topics in your industry before they peak.

### Using TikTok Search Scraper with the API

#### Node.js

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('automation-lab/tiktok-search-scraper').call({
    keywords: ['cooking recipes'],
    maxResultsPerKeyword: 30,
    searchType: 'video',
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_API_TOKEN')

run = client.actor('automation-lab/tiktok-search-scraper').call(run_input={
    'keywords': ['cooking recipes'],
    'maxResultsPerKeyword': 30,
    'searchType': 'video',
})

items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

#### cURL

```bash
curl "https://api.apify.com/v2/acts/automation-lab~tiktok-search-scraper/runs" \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
    "keywords": ["cooking recipes"],
    "maxResultsPerKeyword": 30,
    "searchType": "video"
  }'
```

### Use with AI agents via MCP

TikTok Search Scraper is available as a tool for AI assistants that support the [Model Context Protocol (MCP)](https://docs.apify.com/platform/integrations/mcp).

Add the Apify MCP server to your AI client — this gives you access to all Apify actors, including this one:

#### Setup for Claude Code

```bash
claude mcp add --transport http apify "https://mcp.apify.com"
```

#### Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

```json
{
    "mcpServers": {
        "apify": {
            "url": "https://mcp.apify.com"
        }
    }
}
```

Your AI assistant will use OAuth to authenticate with your Apify account on first use.

#### Example prompts

Once connected, try asking your AI assistant:

- "Use automation-lab/tiktok-search-scraper to find the top 20 TikTok videos about 'sustainable fashion' and show me the most viewed ones"
- "Search TikTok for 'home workouts' and give me a summary of which hashtags appear most frequently"
- "Find TikTok creators posting content about 'photography tips' — use user search mode and list them by follower count"

Learn more in the [Apify MCP documentation](https://docs.apify.com/platform/integrations/mcp).

### Is it legal to scrape TikTok?

TikTok Search Scraper accesses only publicly available content — the same data any visitor sees when searching on TikTok.com without logging in. Web scraping of public data is generally considered legal, as established by the U.S. Ninth Circuit's ruling in *hiQ Labs v. LinkedIn* (2022).

This scraper does not:

- Access private or restricted content
- Bypass authentication or paywalls
- Violate GDPR or collect personal data beyond what is publicly displayed
- Download or redistribute copyrighted video content

Always review and comply with TikTok's Terms of Service and applicable laws in your jurisdiction before scraping.

### FAQ

**How many results can I get per keyword?**
You can extract up to 500 results per keyword. TikTok typically returns 12–20 results per page scroll, so larger requests take proportionally longer.

**Why am I getting fewer results than expected?**
TikTok may return fewer results for very niche or new keywords. The scraper extracts everything TikTok shows — if TikTok only has 15 results for your query, that's all you'll get.

**Can I search for hashtags?**
For hashtag-based scraping, use our dedicated [TikTok Hashtag Scraper](https://apify.com/automation-lab/tiktok-hashtag-scraper) which is optimized for that use case. This scraper is designed for keyword/topic search queries.

**Does it work without proxies?**
The scraper is configured to use residential proxies by default, which is recommended for reliable TikTok access. Without proxies, you may encounter captchas or blocks.

**The scraper returned 0 results — what happened?**
This usually means TikTok showed a captcha or bot detection page. The scraper automatically retires the session and retries up to 3 times. If results are still 0, try running again in a few minutes — TikTok's bot detection is session-dependent and resolves on retry.

**Why do some videos have 0 for play counts or likes?**
Very new videos (posted in the last few hours) may not yet have propagated engagement stats in TikTok's API. You'll see the correct counts if you re-run after a few hours. Fields like `fans`, `following`, and `videoCount` on authors are always populated if the author has activity.

**Can I schedule recurring searches?**
Yes! Use Apify's built-in scheduling to run searches hourly, daily, or weekly. This is useful for monitoring trends or tracking brand mentions over time.

### Related scrapers

**Other TikTok tools:**

- 🎵 [TikTok Scraper](https://apify.com/automation-lab/tiktok-scraper) — scrape TikTok profiles, individual videos, and profile video feeds
- 🏷️ [TikTok Hashtag Scraper](https://apify.com/automation-lab/tiktok-hashtag-scraper) — scrape videos from TikTok hashtag pages with view counts
- 👤 [TikTok Profile Scraper](https://apify.com/automation-lab/tiktok-profile-scraper) — extract detailed profile metadata from TikTok accounts
- 💬 [TikTok Comments Scraper](https://apify.com/automation-lab/tiktok-comments-scraper) — extract comments and replies from TikTok videos

**Other social media scrapers:**

- 📸 [Instagram Scraper](https://apify.com/automation-lab/instagram-scraper) — scrape Instagram profiles, posts, reels, and hashtags
- 💼 [LinkedIn Jobs Scraper](https://apify.com/automation-lab/linkedin-jobs-scraper) — extract job listings from LinkedIn job search
- 🐦 [Twitter/X Scraper](https://apify.com/automation-lab/twitter-scraper) — scrape tweets, profiles, and trending topics

# Actor input Schema

## `keywords` (type: `array`):

List of keywords to search on TikTok. Each keyword runs a separate search.

## `maxResultsPerKeyword` (type: `integer`):

Maximum number of results to extract per keyword. Higher values take longer and cost more.

## `searchType` (type: `string`):

Type of TikTok search results to extract.

## `proxy` (type: `object`):

Proxy settings. Residential proxies are recommended for TikTok.

## Actor input object example

```json
{
  "keywords": [
    "cooking recipes"
  ],
  "maxResultsPerKeyword": 10,
  "searchType": "video"
}
```

# 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 = {
    "keywords": [
        "cooking recipes"
    ],
    "maxResultsPerKeyword": 10,
    "searchType": "video"
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/tiktok-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 = {
    "keywords": ["cooking recipes"],
    "maxResultsPerKeyword": 10,
    "searchType": "video",
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/tiktok-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 '{
  "keywords": [
    "cooking recipes"
  ],
  "maxResultsPerKeyword": 10,
  "searchType": "video"
}' |
apify call automation-lab/tiktok-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TikTok Search Scraper",
        "description": "Search TikTok by keyword. Extract videos with play counts, likes, comments, author info, and music metadata. Supports video and user search modes. Pay per result, no login required.",
        "version": "0.1",
        "x-build-id": "WQNy4pTPRR0pZAg5F"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~tiktok-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-tiktok-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/automation-lab~tiktok-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-tiktok-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/automation-lab~tiktok-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-tiktok-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",
                "required": [
                    "keywords"
                ],
                "properties": {
                    "keywords": {
                        "title": "Search Keywords",
                        "type": "array",
                        "description": "List of keywords to search on TikTok. Each keyword runs a separate search.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResultsPerKeyword": {
                        "title": "Max Results Per Keyword",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of results to extract per keyword. Higher values take longer and cost more.",
                        "default": 30
                    },
                    "searchType": {
                        "title": "Search Type",
                        "enum": [
                            "video",
                            "user"
                        ],
                        "type": "string",
                        "description": "Type of TikTok search results to extract.",
                        "default": "video"
                    },
                    "proxy": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. Residential proxies are recommended for TikTok."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
