# TikTok Ad Library Scraper (`rastriq/tiktok-ad-library-scraper`) Actor

Scrape ads, discover advertisers, and branded content from TikTok Ad Library.

- **URL**: https://apify.com/rastriq/tiktok-ad-library-scraper.md
- **Developed by:** [Rastriq — Structured data from the world](https://apify.com/rastriq) (community)
- **Categories:** Social media, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 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.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 Ad Library Scraper

Extract ads, discover advertisers, and scrape commercial content from [TikTok's Ad Library](https://library.tiktok.com) — all via pure HTTP requests, no browser needed.

### ✨ What makes this Actor different?

- **⚡ Pure HTTP** — No Playwright, no Puppeteer. Direct API calls = 10× faster and 5× cheaper than browser-based scrapers.
- **🎯 3 modes in 1 Actor** — Search paid ads, discover advertisers, or scrape branded commercial content.
- **🔎 Auto-resolves advertisers** — Type an advertiser name and the Actor finds their business ID automatically.
- **🌍 33 EU regions** — Full coverage of all TikTok Ad Library regions, from Austria to Turkey.
- **📊 Rich targeting data** — Get audience breakdowns by location, age, and gender (with `Include ad details` enabled).
- **🆔 Direct ad lookup** — Have specific ad IDs? Fetch them directly, no search needed.

### 🚀 Quick start

1. Click **Start** with the default settings to scrape ~20 ads for "nike" — it takes about 30 seconds.
2. Download results in JSON, CSV, or Excel.
3. Adjust the search query, region, and max results to fit your needs.

### 🎛️ Three scraping modes

#### Mode 1: Search Ads (default)

Search TikTok's paid ad library by **keyword** or **advertiser name**. Returns ad creatives, video URLs, dates, estimated audience, and optionally full targeting data.

**Example use cases:**
- Find all ads from a competitor brand
- Search for ads mentioning a product category ("running shoes", "crypto")
- Monitor ad activity in a specific country

#### Mode 2: Discover Advertisers

Brute-force discover advertisers via TikTok's suggestion API. The Actor tries thousands of prefixes (a, b, c… aa, ab…) to uncover advertiser names and IDs — even those you wouldn't find by searching.

**Example use cases:**
- Build a database of all TikTok advertisers
- Find potential leads in a market segment
- Map the competitive advertising landscape

#### Mode 3: Search Commercial Content

Search branded and organic commercial content — paid partnerships, promotional posts, and creator collaborations.

**Example use cases:**
- Track influencer partnerships for a brand
- Monitor branded content trends
- Analyze creator collaboration patterns

### 📥 Input

| Parameter | Description |
|-----------|-------------|
| **Search query** | Keyword to search in ads, or advertiser name. Leave empty to browse all ads. |
| **Query type** | `Keyword in ad` searches ad text. `Advertiser name` auto-resolves the advertiser ID. |
| **Region** | Filter by country (33 EU regions available) or search across all regions. |
| **Date range** | Filter ads by date range. Accepts absolute dates (YYYY-MM-DD) or relative ("30 days"). |
| **Max results** | Limit the number of results. Start with 20 for testing. |
| **Include ad details** | Enable to get full targeting data (location, age, gender breakdowns). Slower but much richer output. |
| **Ad IDs** | Fetch specific ads by ID — skips all search parameters. |

### 📤 Output

#### Basic output (Include ad details OFF)

Each item in the dataset contains:

```json
{
  "adId": "1848112963098658",
  "adType": "video",
  "adVideoUrl": "https://library.tiktok.com/api/v1/cdn/...",
  "adVideoCover": "https://p21-ad-sg.ibyteimg.com/...",
  "adImageUrls": [],
  "adStartDate": "2025-11-07",
  "adEndDate": "2025-11-13",
  "adEstimatedAudience": "100K-200K",
  "adSpent": "",
  "adImpressions": 0,
  "advertiserName": "Nike"
}
````

#### Rich output (Include ad details ON)

Adds advertiser info, targeting, and audience breakdowns:

```json
{
  "adId": "1848112963098658",
  "adType": "video",
  "adVideoUrl": "https://library.tiktok.com/api/v1/cdn/...",
  "adVideoCover": "https://p21-ad-sg.ibyteimg.com/...",
  "adStartDate": "2025-11-07",
  "adEndDate": "2025-11-13",
  "adEstimatedAudience": "100K-200K",
  "advertiserId": "7345893407476285441",
  "advertiserName": "Nike",
  "advertiserLocation": "United States",
  "advertiserPaidForBy": "Nike Inc.",
  "adTotalRegions": 11,
  "targetingAudienceSize": "5.2M-6.4M",
  "targetingByLocation": [
    { "region": "FR", "impressions": "12K" },
    { "region": "DE", "impressions": "10K" }
  ],
  "targetingByAge": [
    { "region": "FR", "18-24": true, "25-34": true, "35-44": false }
  ],
  "targetingByGender": [
    { "region": "FR", "female": true, "male": true }
  ]
}
```

#### Advertiser discovery output

```json
{
  "advertiserId": "7345893407476285441",
  "advertiserName": "Nike"
}
```

#### Commercial content output

```json
{
  "contentId": "abc123",
  "creatorUsername": "creator_handle",
  "contentLabel": "paid_partnership",
  "brandNames": ["Nike"],
  "postedTime": "2025-06-01T12:00:00Z",
  "videoViews": "1.2M",
  "videoUrl": "https://...",
  "videoCover": "https://..."
}
```

### 💡 Tips for best results

- **Start small**: Use 20 max results for your first run to verify the output format.
- **Keyword vs Advertiser**: Use "Advertiser name" query type when you know the brand — it's more precise.
- **Date range matters**: TikTok limits results. Narrow date ranges return more relevant data.
- **Ad details are optional**: Skip them for 3× faster runs when you only need basic ad info.
- **No proxy needed**: The TikTok Ad Library API works without proxy from most locations. Only enable proxy if you experience rate limiting.

### ❓ FAQ

**How much does it cost to run?**
The Actor uses minimal compute (256 MB RAM, pure HTTP). A typical run of 100 ads without details costs ~$0.01-0.02 in platform usage.

**What's the maximum number of ads I can scrape?**
TikTok limits the Ad Library to ~3,600 ads per search (300 pages × 12 ads). Use narrower date ranges or region filters to get more coverage.

**Is a proxy required?**
No. The TikTok Ad Library API is public and works without proxy from most locations. Enable proxy only if you get rate-limited.

**Can I scrape ads outside the EU?**
TikTok's Ad Library currently only covers EU/EEA countries plus the UK, Turkey, and Switzerland (33 regions total).

**Can I schedule this Actor?**
Yes! Use Apify Schedules to run daily/weekly ad monitoring. Combine with integrations to push results to Google Sheets, Slack, or your database.

### 🔗 Related tools

- [Google Ads Transparency Scraper](https://apify.com/store?q=google+ads+transparency)
- [Meta Ad Library Scraper](https://apify.com/store?q=meta+ad+library)
- [TikTok Trends Scraper](https://apify.com/store?q=tiktok+trends)

### Pricing

$1.50 per 1,000 results.

# Actor input Schema

## `startUrl` (type: `string`):

Paste a URL from <a href='https://library.tiktok.com/ads' target='_blank'>TikTok Ad Library</a> and the actor will extract all parameters automatically.<br><br>Example: <code>https://library.tiktok.com/ads?region=ES\&search\_key=nike\&start\_time=...</code><br><br>⚠️ <b>If you use a URL, all manual fields below (query, region, dates…) are ignored.</b> Choose one or the other:<br>• Paste a URL here → all search config comes from the URL<br>• Leave this empty → use the manual fields below

## `mode` (type: `string`):

Choose what to scrape:<br>• <b>Search Ads</b> — search paid ads by keyword or advertiser name<br>• <b>Discover Advertisers</b> — find all advertisers via the suggestion API<br>• <b>Commercial Content</b> — search branded/organic promotional content

## `searchQuery` (type: `string`):

Type a keyword (e.g. <code>running shoes</code>) or an advertiser name (e.g. <code>Nike</code>).<br>Leave empty to browse all ads in the selected region.<br><br>⚡ <i>Ignored if a URL is provided above.</i>

## `queryType` (type: `string`):

How to interpret the search query.<br>• <b>Keyword</b>: searches in ad text and titles<br>• <b>Advertiser name</b>: finds the advertiser's business ID automatically<br><br>⚡ <i>Ignored if a URL is provided above.</i>

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

Filter ads shown in a specific country. Select 'All regions' to search across all 33 EU/EEA regions.<br><br>⚡ <i>Ignored if a URL is provided above.</i>

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

Maximum number of results to return.<br><b>Tip:</b> Start with 20 for your first test. TikTok limits searches to ~3,600 ads (300 pages × 12).

## `startDate` (type: `string`):

Only show ads first displayed after this date.<br>Accepts <code>YYYY-MM-DD</code> or relative like <code>30 days</code>. Default: 31 days ago.<br><br>⚡ <i>Ignored if a URL is provided above.</i>

## `endDate` (type: `string`):

Only show ads last displayed before this date. Default: today.<br><br>⚡ <i>Ignored if a URL is provided above.</i>

## `includeDetails` (type: `boolean`):

Fetch full details for each ad: advertiser info, targeting by location/age/gender, audience size, and sponsor data.<br><br>⚠️ <b>Slower:</b> Makes 1 extra request per ad. Leave OFF for fast runs, enable for rich competitive analysis.

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

Sort order for search results.

## `adIds` (type: `string`):

Paste comma-separated ad IDs to fetch them directly.<br>Example: <code>1848459287600130, 1820197122833570</code><br><br>⚡ When provided, all search parameters above are ignored.

## `advertiserIds` (type: `string`):

Optional comma-separated advertiser business IDs.<br>Use <b>Discover Advertisers</b> mode to find these, or copy from TikTok Ad Library URLs.<br><br>⚡ <i>Ignored if a URL is provided above.</i>

## `discoveryPrefixes` (type: `string`):

Only for <b>Discover Advertisers</b> mode.<br>Comma-separated prefixes to search (e.g. <code>a, b, nike, adi</code>).<br>Leave empty to use full alphabet + digits (slower but comprehensive).

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

Optional. The TikTok Ad Library API works without proxy from most locations.<br>Enable only if you experience rate limiting (HTTP 429).

## `requestDelay` (type: `integer`):

Delay between API requests in milliseconds. Increase to 1000-2000 if you get rate-limited.

## Actor input object example

```json
{
  "mode": "search_ads",
  "searchQuery": "nike",
  "queryType": "keyword",
  "region": "all",
  "maxResults": 20,
  "startDate": "31 days",
  "endDate": "0 days",
  "includeDetails": false,
  "sortBy": "last_shown_date,desc",
  "requestDelay": 500
}
```

# Actor output Schema

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

Dataset containing all scraped ads, advertisers, or commercial content.

# 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 = {
    "searchQuery": "nike",
    "maxResults": 20,
    "startDate": "31 days",
    "endDate": "0 days"
};

// Run the Actor and wait for it to finish
const run = await client.actor("rastriq/tiktok-ad-library-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 = {
    "searchQuery": "nike",
    "maxResults": 20,
    "startDate": "31 days",
    "endDate": "0 days",
}

# Run the Actor and wait for it to finish
run = client.actor("rastriq/tiktok-ad-library-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 '{
  "searchQuery": "nike",
  "maxResults": 20,
  "startDate": "31 days",
  "endDate": "0 days"
}' |
apify call rastriq/tiktok-ad-library-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TikTok Ad Library Scraper",
        "description": "Scrape ads, discover advertisers, and branded content from TikTok Ad Library.",
        "version": "0.1",
        "x-build-id": "gXvUj16GAauParRE5"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/rastriq~tiktok-ad-library-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-rastriq-tiktok-ad-library-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/rastriq~tiktok-ad-library-scraper/runs": {
            "post": {
                "operationId": "runs-sync-rastriq-tiktok-ad-library-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/rastriq~tiktok-ad-library-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-rastriq-tiktok-ad-library-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": {
                    "startUrl": {
                        "title": "TikTok Ad Library URL",
                        "type": "string",
                        "description": "Paste a URL from <a href='https://library.tiktok.com/ads' target='_blank'>TikTok Ad Library</a> and the actor will extract all parameters automatically.<br><br>Example: <code>https://library.tiktok.com/ads?region=ES&search_key=nike&start_time=...</code><br><br>⚠️ <b>If you use a URL, all manual fields below (query, region, dates…) are ignored.</b> Choose one or the other:<br>• Paste a URL here → all search config comes from the URL<br>• Leave this empty → use the manual fields below"
                    },
                    "mode": {
                        "title": "Scraping mode",
                        "enum": [
                            "search_ads",
                            "discover_advertisers",
                            "search_commercial_content"
                        ],
                        "type": "string",
                        "description": "Choose what to scrape:<br>• <b>Search Ads</b> — search paid ads by keyword or advertiser name<br>• <b>Discover Advertisers</b> — find all advertisers via the suggestion API<br>• <b>Commercial Content</b> — search branded/organic promotional content",
                        "default": "search_ads"
                    },
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Type a keyword (e.g. <code>running shoes</code>) or an advertiser name (e.g. <code>Nike</code>).<br>Leave empty to browse all ads in the selected region.<br><br>⚡ <i>Ignored if a URL is provided above.</i>"
                    },
                    "queryType": {
                        "title": "Query type",
                        "enum": [
                            "keyword",
                            "advertiser"
                        ],
                        "type": "string",
                        "description": "How to interpret the search query.<br>• <b>Keyword</b>: searches in ad text and titles<br>• <b>Advertiser name</b>: finds the advertiser's business ID automatically<br><br>⚡ <i>Ignored if a URL is provided above.</i>",
                        "default": "keyword"
                    },
                    "region": {
                        "title": "Region",
                        "enum": [
                            "all",
                            "AT",
                            "BE",
                            "BG",
                            "CH",
                            "CY",
                            "CZ",
                            "DE",
                            "DK",
                            "EE",
                            "ES",
                            "FI",
                            "FR",
                            "GB",
                            "GR",
                            "HR",
                            "HU",
                            "IE",
                            "IS",
                            "IT",
                            "LI",
                            "LT",
                            "LU",
                            "LV",
                            "MT",
                            "NL",
                            "NO",
                            "PL",
                            "PT",
                            "RO",
                            "SE",
                            "SI",
                            "SK",
                            "TR"
                        ],
                        "type": "string",
                        "description": "Filter ads shown in a specific country. Select 'All regions' to search across all 33 EU/EEA regions.<br><br>⚡ <i>Ignored if a URL is provided above.</i>",
                        "default": "all"
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of results to return.<br><b>Tip:</b> Start with 20 for your first test. TikTok limits searches to ~3,600 ads (300 pages × 12).",
                        "default": 100
                    },
                    "startDate": {
                        "title": "Start date",
                        "type": "string",
                        "description": "Only show ads first displayed after this date.<br>Accepts <code>YYYY-MM-DD</code> or relative like <code>30 days</code>. Default: 31 days ago.<br><br>⚡ <i>Ignored if a URL is provided above.</i>"
                    },
                    "endDate": {
                        "title": "End date",
                        "type": "string",
                        "description": "Only show ads last displayed before this date. Default: today.<br><br>⚡ <i>Ignored if a URL is provided above.</i>"
                    },
                    "includeDetails": {
                        "title": "Include ad details",
                        "type": "boolean",
                        "description": "Fetch full details for each ad: advertiser info, targeting by location/age/gender, audience size, and sponsor data.<br><br>⚠️ <b>Slower:</b> Makes 1 extra request per ad. Leave OFF for fast runs, enable for rich competitive analysis.",
                        "default": false
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "last_shown_date,desc",
                            "last_shown_date,asc",
                            "first_shown_date,desc",
                            "first_shown_date,asc"
                        ],
                        "type": "string",
                        "description": "Sort order for search results.",
                        "default": "last_shown_date,desc"
                    },
                    "adIds": {
                        "title": "Ad IDs (direct lookup)",
                        "type": "string",
                        "description": "Paste comma-separated ad IDs to fetch them directly.<br>Example: <code>1848459287600130, 1820197122833570</code><br><br>⚡ When provided, all search parameters above are ignored."
                    },
                    "advertiserIds": {
                        "title": "Advertiser IDs",
                        "type": "string",
                        "description": "Optional comma-separated advertiser business IDs.<br>Use <b>Discover Advertisers</b> mode to find these, or copy from TikTok Ad Library URLs.<br><br>⚡ <i>Ignored if a URL is provided above.</i>"
                    },
                    "discoveryPrefixes": {
                        "title": "Discovery prefixes",
                        "type": "string",
                        "description": "Only for <b>Discover Advertisers</b> mode.<br>Comma-separated prefixes to search (e.g. <code>a, b, nike, adi</code>).<br>Leave empty to use full alphabet + digits (slower but comprehensive)."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional. The TikTok Ad Library API works without proxy from most locations.<br>Enable only if you experience rate limiting (HTTP 429)."
                    },
                    "requestDelay": {
                        "title": "Request delay",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Delay between API requests in milliseconds. Increase to 1000-2000 if you get rate-limited.",
                        "default": 500
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
