# Tiktok Ads Library Scraper (`automly/tiktok-ads-library-scraper`) Actor

Pull every ad TikTok has shown in the EU, UK, and Turkey — with filters, dates, and creative URLs — straight into a dataset.

- **URL**: https://apify.com/automly/tiktok-ads-library-scraper.md
- **Developed by:** [Automly](https://apify.com/automly) (community)
- **Categories:** Social media, E-commerce, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.005 / actor start

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

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.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 Ads Library Scraper

![TikTok Ads Library Scraper hero](https://i.imgur.com/w93yonE.png)

Extract ad records from the public **TikTok Ads Library** (EU, UK, and Turkey) — no login, no cookies, no browser required. Filter by region, date range, advertiser ID, or keyword and get a flat dataset with pre-signed media URLs ready for download or analysis.

---

### What does TikTok Ads Library Scraper do?

The [TikTok Ads Library](https://library.tiktok.com/ads) is a transparency portal mandated by the EU Digital Services Act (DSA). It exposes **all ads served to EU member state audiences, UK audiences, and Turkey** — including video URLs, cover images, estimated audience sizes, impression counts, and flight dates.

This actor calls the library's public API, paginates through results, and delivers a **clean, flat dataset** for each matching ad. Use it for competitive research, brand monitoring, regulatory compliance tracking, or academic study of political advertising.

---

### Features

- **Scrape TikTok EU Ads Library** without an account or cookies
- **Filter TikTok ads by country** across all EU member states, UK, and Turkey
- **Search TikTok ads by keyword** against advertiser name and ad content
- **Filter by advertiser business ID** to monitor specific brands
- **Extract TikTok video ad URLs** and cover images with pre-signed CDN links
- **Filter TikTok ads by date range** using ISO 8601 dates or unix timestamps
- **Filter by ad type** — video, image, or all creative formats
- **Sort results** by first shown or last shown date, ascending or descending
- **Export TikTok ads data** as JSON, CSV, or Excel via Apify datasets
- **Extract targeting and sponsor data** — per-region age/gender targeting, target audience size, advertiser sponsor name, and registered country, fetched concurrently via the detail endpoint
- Runs on **datacenter proxies** — no residential proxy required

---

### How to use

1. Open the actor in Apify Console and click **Try for free**.
2. Set **Regions** — enter one or more ISO country codes (e.g. `DE`, `FR`, `GB`) or leave as `all` to cover every supported region.
3. Set **Start date** and **End date** to define the flight window (e.g. `2025-01-01` to `2025-12-31`).
4. Optionally enter a **Search query** to filter by keyword, or add **Advertiser business IDs** to target specific brands.
5. Set **Max results** to cap total records (default 1,000).
6. Click **Save & Run**. Results appear in the **Dataset** tab as the actor paginates.

---

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `regions` | array | Yes | `["all"]` | ISO country codes or `["all"]`. Supported: EU member states, `GB`, `TR`. |
| `startDate` | string | Yes | — | ISO 8601 date (`2025-01-01`) or unix ms. Start of the ad flight window. |
| `endDate` | string | Yes | — | ISO 8601 date or unix ms. Must be after `startDate`. |
| `query` | string | No | `""` | Free-text search against advertiser name and ad content. |
| `advertiserBusinessIds` | array | No | `[]` | Limit results to these advertiser IDs. |
| `adType` | enum | No | `"all"` | `all`, `video`, or `image`. Note: TikTok's `image` filter returns video-dominant results in practice; the actor passes the value through as-is. |
| `sortOrder` | enum | No | `"last_shown_date,desc"` | One of: `last_shown_date,desc` · `last_shown_date,asc` · `first_shown_date,desc` · `first_shown_date,asc`. |
| `maxResults` | integer | No | `1000` | Hard cap on total records returned. Minimum 1. |
| `fetchDetails` | boolean | No | `true` | When enabled, makes one extra request per ad to fetch sponsor, targeting, and audience size data. Adds ~60 s for a 1,000-ad run via concurrent fetching (semaphore of 10). Disable to reduce latency when targeting data is not needed. |
| `proxyConfiguration` | object | No | Apify proxy | Standard Apify proxy config. Datacenter proxies are sufficient. |

#### Example input

```json
{
  "regions": ["DE", "FR", "GB"],
  "startDate": "2025-01-01",
  "endDate": "2025-12-31",
  "query": "skincare",
  "adType": "video",
  "sortOrder": "last_shown_date,desc",
  "maxResults": 500,
  "proxyConfiguration": { "useApifyProxy": true }
}
````

***

### Output example

Each record in the dataset is a flat object. Media URLs are pre-signed CDN links — download them promptly, as they expire approximately 6 hours after the run.

```json
{
  "id": "1863026687376529",
  "advertiser": "WONDERSKIN EUROPE LTD",
  "type": "video",
  "first_shown": "2026-04-19T08:30:06+00:00",
  "last_shown": "2026-04-19T08:30:06+00:00",
  "video_urls": [
    "https://library.tiktok.com/api/v1/cdn/.../a780febf-11a7-411c-b8b0-0913254efa91?VExpiration=1776744539&VSignature=..."
  ],
  "cover_urls": [
    "https://p16-common-sign.tiktokcdn.com/tos-no1a-p-0037-no/sample.jpg?x-expires=1776744539&x-signature=..."
  ],
  "image_urls": [],
  "estimated_audience": "0-1K",
  "spent": "",
  "impression": 0,
  "audit_status": "1",
  "region": "DE",
  "scraped_at": "2026-04-21T10:00:00+00:00",
  "ad_detail_url": "https://library.tiktok.com/ads/detail/?ad_id=1863026687376529",
  "sponsor": "WONDERSKIN EUROPE LTD",
  "registry_location": "Germany",
  "advertiser_business_id": "7228917820455878658",
  "target_audience_size": "22.0M-26.9M",
  "audience_interest": "",
  "age_targeting": [
    {"region": "DE", "13-17": false, "18-24": true, "25-34": true, "35-44": true, "45-54": true, "55+": true}
  ],
  "gender_targeting": [
    {"region": "DE", "female": true, "male": true, "unknown": true}
  ],
  "location_impressions": [
    {"region": "DE", "impressions": "0-1K"}
  ]
}
```

#### Output fields

| Field | Type | Description |
|-------|------|-------------|
| `id` | string | Unique ad identifier from TikTok |
| `advertiser` | string | Advertiser business name |
| `type` | string | Creative category: `video`, `image`, or `unknown` |
| `first_shown` | string | ISO 8601 UTC — when the ad first ran |
| `last_shown` | string | ISO 8601 UTC — when the ad last ran |
| `video_urls` | array | Pre-signed video CDN URLs (expires ~6 h) |
| `cover_urls` | array | Pre-signed cover image URLs for video ads |
| `image_urls` | array | Pre-signed image URLs for image-only ads |
| `estimated_audience` | string | TikTok's audience size bucket (e.g. `"1K-10K"`) |
| `spent` | string | Spend range if disclosed by TikTok (often empty) |
| `impression` | integer | Impression count if disclosed |
| `audit_status` | string | TikTok internal audit status code |
| `region` | string | ISO country code the record was fetched under |
| `scraped_at` | string | ISO 8601 UTC timestamp of the scrape |
| `ad_detail_url` | string | Direct link to the ad's detail page on TikTok Ads Library |
| `sponsor` | string | Sponsor name declared by the advertiser (from detail endpoint) |
| `registry_location` | string | Advertiser's registered country/location (from detail endpoint) |
| `advertiser_business_id` | string | TikTok advertiser business ID (from detail endpoint) |
| `target_audience_size` | string | Estimated target audience size range, e.g. `"22.0M-26.9M"` |
| `audience_interest` | string | Interest-based targeting categories, if disclosed |
| `age_targeting` | array | Per-region age group targeting booleans |
| `gender_targeting` | array | Per-region gender targeting booleans |
| `location_impressions` | array | Per-region impression bucket breakdown |

***

### How much does it cost?

This actor runs on **Apify's Pay-Per-Event** or subscription plans. A typical run scraping 1,000 ads from three countries completes in under two minutes and consumes minimal compute units — well within the free trial allocation.

For volume workloads, the **Scale plan** is recommended. Scraping 10,000 ads across all EU regions costs approximately $0.10–0.30 in compute units depending on API response latency.

The `fetchDetails` option (enabled by default) makes one additional lightweight request per ad to the TikTok detail endpoint. These requests run concurrently (up to 10 at a time) and have minimal cost impact — typically adding less than 10% to total compute for most run sizes.

**Tips to control costs:**

- Set `maxResults` to cap the run before it starts.
- Narrow `regions` to the specific countries you need — covering `"all"` fetches from 29 regions sequentially.
- Use `startDate` / `endDate` to limit the time window rather than relying solely on `maxResults`.

***

### FAQ

**Which regions are supported?**

All EU member states (Austria, Belgium, Bulgaria, Croatia, Cyprus, Czechia, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Poland, Portugal, Romania, Slovakia, Slovenia, Spain, Sweden), plus the United Kingdom (`GB`) and Turkey (`TR`). This matches TikTok's own transparency scope under the EU Digital Services Act.

**Does it need login, cookies, or an API key?**

No. The TikTok Ads Library endpoint is publicly accessible without authentication. The actor makes standard HTTPS requests — no browser, no session tokens, no cookies required.

**Can it scrape US ads or other regions?**

No. TikTok's Ads Library is limited to EU/UK/TR by TikTok's own policy. The US, Asia-Pacific, and other markets are not included in the transparency portal and cannot be scraped through this interface.

**How fresh are the media URLs?**

Video and image URLs returned by the API are **pre-signed CDN links that expire approximately 6 hours after generation**. If you need the media files, download them during or immediately after the run. The actor stores the raw URLs in the dataset — it does not download or re-host media.

**What about rate limits?**

TikTok's Ads Library API is relatively lenient. The actor paginates in series (one page at a time per region) with brief delays between requests. For large result sets, use `maxResults` to cap the run rather than relying on the API to throttle gracefully.

**Why does the `image` ad type filter return mostly video results?**

This reflects TikTok's own API behavior — the `image` filter does not exclusively return carousel/image ads in practice. The actor passes the filter value through as-is and derives the `type` field in the output from the actual media arrays present in each record (`video_urls` vs. `image_urls`).

**Is this legal to use?**

The TikTok Ads Library exists specifically to fulfill transparency obligations under the EU Digital Services Act (DSA) and equivalent regional regulations. The data is publicly disclosed. That said, you are responsible for ensuring your use complies with TikTok's Terms of Service, applicable data protection regulations (GDPR, UK GDPR, etc.), and any restrictions in your jurisdiction. This actor is provided for legitimate research, compliance, and journalism use cases.

***

### Supported regions reference

| Code | Country | Code | Country |
|------|---------|------|---------|
| `AT` | Austria | `IT` | Italy |
| `BE` | Belgium | `LV` | Latvia |
| `BG` | Bulgaria | `LT` | Lithuania |
| `HR` | Croatia | `LU` | Luxembourg |
| `CY` | Cyprus | `MT` | Malta |
| `CZ` | Czechia | `NL` | Netherlands |
| `DK` | Denmark | `PL` | Poland |
| `EE` | Estonia | `PT` | Portugal |
| `FI` | Finland | `RO` | Romania |
| `FR` | France | `SK` | Slovakia |
| `DE` | Germany | `SI` | Slovenia |
| `GR` | Greece | `ES` | Spain |
| `HU` | Hungary | `SE` | Sweden |
| `IE` | Ireland | `GB` | United Kingdom |
| — | — | `TR` | Turkey |

***

### Related actors

- **Facebook Ad Library Scraper** — extract ads from Meta's transparency library
- **Google Ads Transparency Scraper** — search Google's political and election ad reports
- **YouTube Ad Scraper** — collect video ad data from YouTube

# Actor input Schema

## `regions` (type: `array`):

ISO country codes of the TikTok Ads Library regions to scrape, or \['all']. Only EU countries, UK, and Turkey are supported by TikTok.

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

ISO 8601 date (e.g. 2025-01-01) or unix ms.

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

ISO 8601 date or unix ms. Must be after startDate.

## `query` (type: `string`):

Free-text search against advertiser name / ad content.

## `advertiserBusinessIds` (type: `array`):

Limit results to these advertiser IDs.

## `adType` (type: `string`):

Filter by creative type.

## `sortOrder` (type: `string`):

Sort results by date field and order.

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

Hard cap on the total number of ads returned.

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

Apify proxy settings. Datacenter is sufficient for this API.

## `fetchDetails` (type: `boolean`):

When enabled, makes one extra call per ad to fetch advertiser sponsor, targeting (age/gender per region), target audience size, and the ad detail URL. Adds ~60s for a 1000-ad run due to concurrent fetching. Default: true.

## Actor input object example

```json
{
  "regions": [
    "all"
  ],
  "startDate": "2025-01-01",
  "endDate": "2025-12-31",
  "query": "",
  "advertiserBusinessIds": [],
  "adType": "all",
  "sortOrder": "last_shown_date,desc",
  "maxResults": 1000,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "fetchDetails": true
}
```

# Actor output Schema

## `ads` (type: `string`):

All scraped ad records. Each row includes advertiser, creative URLs, region, and timestamps.

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

Dataset presented via the Overview view defined in the dataset schema.

# 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 = {
    "regions": [
        "all"
    ],
    "startDate": "2025-01-01",
    "endDate": "2025-12-31",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("automly/tiktok-ads-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 = {
    "regions": ["all"],
    "startDate": "2025-01-01",
    "endDate": "2025-12-31",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("automly/tiktok-ads-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 '{
  "regions": [
    "all"
  ],
  "startDate": "2025-01-01",
  "endDate": "2025-12-31",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call automly/tiktok-ads-library-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Tiktok Ads Library Scraper",
        "description": "Pull every ad TikTok has shown in the EU, UK, and Turkey — with filters, dates, and creative URLs — straight into a dataset.",
        "version": "0.1",
        "x-build-id": "ikJHKqsIx3UXiyWrJ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automly~tiktok-ads-library-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automly-tiktok-ads-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/automly~tiktok-ads-library-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automly-tiktok-ads-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/automly~tiktok-ads-library-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automly-tiktok-ads-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",
                "required": [
                    "regions",
                    "startDate",
                    "endDate"
                ],
                "properties": {
                    "regions": {
                        "title": "Regions",
                        "type": "array",
                        "description": "ISO country codes of the TikTok Ads Library regions to scrape, or ['all']. Only EU countries, UK, and Turkey are supported by TikTok.",
                        "default": [
                            "all"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "startDate": {
                        "title": "Start date",
                        "type": "string",
                        "description": "ISO 8601 date (e.g. 2025-01-01) or unix ms."
                    },
                    "endDate": {
                        "title": "End date",
                        "type": "string",
                        "description": "ISO 8601 date or unix ms. Must be after startDate."
                    },
                    "query": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Free-text search against advertiser name / ad content.",
                        "default": ""
                    },
                    "advertiserBusinessIds": {
                        "title": "Advertiser business IDs",
                        "type": "array",
                        "description": "Limit results to these advertiser IDs.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "adType": {
                        "title": "Ad type",
                        "enum": [
                            "all",
                            "video",
                            "image"
                        ],
                        "type": "string",
                        "description": "Filter by creative type.",
                        "default": "all"
                    },
                    "sortOrder": {
                        "title": "Sort order",
                        "enum": [
                            "last_shown_date,desc",
                            "last_shown_date,asc",
                            "first_shown_date,desc",
                            "first_shown_date,asc"
                        ],
                        "type": "string",
                        "description": "Sort results by date field and order.",
                        "default": "last_shown_date,desc"
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Hard cap on the total number of ads returned.",
                        "default": 1000
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy settings. Datacenter is sufficient for this API."
                    },
                    "fetchDetails": {
                        "title": "Fetch per-ad details",
                        "type": "boolean",
                        "description": "When enabled, makes one extra call per ad to fetch advertiser sponsor, targeting (age/gender per region), target audience size, and the ad detail URL. Adds ~60s for a 1000-ad run due to concurrent fetching. Default: true.",
                        "default": true
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
