# Google Ads Transparency — Search/YouTube/Display Ad Spy (`dltik/google-ads-transparency`) Actor

Scrape Google's public Ad Transparency Center — every Google Search, YouTube and Display ad an advertiser runs. Search by keyword or advertiser ID. Get creative HTML, image/video URLs, dates, formats, variants. Pure HTTP, no Chromium. DSA-mandated public data.

- **URL**: https://apify.com/dltik/google-ads-transparency.md
- **Developed by:** [Walid](https://apify.com/dltik) (community)
- **Categories:** Marketing, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / 1,000 ad scrapeds

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

## Google Ads Transparency Scraper — Search/YouTube/Display Ad Spy

**Google Ads Transparency Scraper** extracts every Google Search, YouTube and Display ad an advertiser has run, straight from the **official Google Ad Transparency Center** (DSA-mandated public data). Search by keyword (auto-resolved to advertisers) or by advertiser ID. No login, no API key, no Chromium — pure HTTP, fast and cheap.

> ⭐ **Found this useful?** Click the **Bookmark** button at the top of [this page](https://apify.com/dltik/google-ads-transparency) — it's the single strongest signal that keeps this actor visible to others. Takes 1 click. No signup beyond your existing Apify account.

---

### What can Google Ads Transparency Scraper do?

- 🔍 **Search ads by keyword** — type a brand name, get top matching advertisers and their creatives
- 🎯 **Search ads by advertiser ID** — pull all ads from a specific advertiser (AR... ID from the Ad Transparency URL)
- 🌍 **Filter by region** — 13 countries supported (US, FR, GB, DE, IT, ES, CA, JP, BR, AU, MX, NL + numeric override for any)
- 🎬 **All formats covered** — Search ads, Display ads, YouTube video ads, plus image and text creatives
- 📅 **Dates included** — first shown / last shown timestamps per creative
- 🖼️ **Creative URLs** — embedded HTML, image URLs, video URLs (where present)
- ⚡ **Pure HTTP** — no browser, no Chromium, no proxy required by default. ~5s for 50 ads.

---

### What data can you extract from Google Ads Transparency Center?

| Field | Description |
|-------|-------------|
| `advertiser_name` | Verified advertiser name |
| `advertiser_id` | Google's internal advertiser ID (AR...) |
| `creative_id` | Unique creative ID (CR...) |
| `format` | text, image, video |
| `format_code` | Google's numeric format code (1=text, 2=image, 3/6=video) |
| `html` | Embedded creative HTML snippet |
| `image_url` | Extracted image URL (when applicable) |
| `video_url` | Video URL (when applicable) |
| `first_shown` | ISO timestamp the creative first ran |
| `last_shown` | ISO timestamp the creative last ran |
| `region` | ISO country where the creative was shown |
| `region_id` | Google's internal region code |
| `variant_count` | Number of variants per creative |
| `creative_url` | Direct link to view the creative on the Ad Transparency Center |

---

### How to spy on Google ads

1. **[Create a free Apify account](https://apify.com/sign-up)** — no credit card required
2. **Open [Google Ads Transparency Scraper](https://apify.com/dltik/google-ads-transparency)** in Apify Store
3. **Enter a keyword** (e.g. `nike`, `salesforce`, `shopify`) — or paste advertiser IDs directly
4. **Pick a region** (default `US`)
5. **Click Start** — creatives stream into the dataset within seconds
6. **Download** as JSON, CSV, or Excel

---

### How much does it cost to spy on Google ads?

**$0.001 per ad creative** ($1 per 1,000 ads). No surprise compute or proxy charges — the scraper is HTTP only and runs at 512 MB without any proxy.

| Run size | Creatives | Apify cost | Time |
|----------|-----------|------------|------|
| Quick test | 10 | ~$0.01 | ~5s |
| Standard | 50 | ~$0.05 | ~5s |
| Per advertiser | 100 | ~$0.10 | ~10s |
| Full sweep (5 brands × 100) | 500 | ~$0.50 | ~30s |

---

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `queries` | array | ❌* | — | Brand names to search via the autocomplete (e.g. `["nike","adidas"]`) |
| `advertiserIds` | array | ❌* | — | Direct advertiser IDs (e.g. `["AR02981058906626719745"]`) |
| `region` | string | ❌ | `US` | ISO country code (US, FR, GB, DE, …) or `ANYWHERE` |
| `regionId` | integer | ❌ | — | Advanced: override with Google's internal region ID |
| `topAdvertisersPerQuery` | integer | ❌ | `3` | Top N advertisers to scrape per keyword (autocomplete returns up to 10) |
| `maxResultsPerAdvertiser` | integer | ❌ | `50` | Cap on creatives per advertiser (Google's API caps at 100 per call) |
| `useResidentialProxy` | boolean | ❌ | `false` | Enable only if you hit rate limits on large runs |

> *Provide at least one of `queries` or `advertiserIds`.

---

### Output example

```json
{
  "advertiser_id": "AR16735076323512287233",
  "advertiser_name": "Nike, Inc.",
  "creative_id": "CR10068536946902171649",
  "format": "image",
  "format_code": 2,
  "html": "<img src=\"https://tpc.googlesyndication.com/archive/simgad/14056061733995238543\" height=\"511\" width=\"724\">",
  "image_url": "https://tpc.googlesyndication.com/archive/simgad/14056061733995238543",
  "video_url": null,
  "first_shown": "2025-08-12T00:00:00Z",
  "last_shown": "2025-12-05T00:00:00Z",
  "region": "US",
  "region_id": 2250,
  "variant_count": 2,
  "creative_url": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR10068536946902171649"
}
````

***

### Use cases

- **Competitor ad spy** — see every Google ad a brand has run in the last year
- **Agency reporting** — track competitor creatives across Search, YouTube, Display in one feed
- **Dropshipping research** — find winning creatives by searching product / brand keywords
- **DSA compliance research** — pull the official transparency record for any advertiser
- **AI training data** — collect labeled creatives (format, advertiser, region) at scale

***

### Use the actor via API

**Python:**

```python
import requests

run = requests.post(
    "https://api.apify.com/v2/acts/dltik~google-ads-transparency/runs",
    headers={"Authorization": "Bearer YOUR_APIFY_TOKEN"},
    json={
        "queries": ["nike", "adidas"],
        "region": "US",
        "topAdvertisersPerQuery": 3,
        "maxResultsPerAdvertiser": 50
    }
).json()
print("Run started:", run["data"]["id"])
```

**curl:**

```bash
curl -X POST "https://api.apify.com/v2/acts/dltik~google-ads-transparency/runs" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"queries":["nike"],"region":"US","maxResultsPerAdvertiser":50}'
```

***

### FAQ

**Do I need a Google account or API key?**
No. The Ad Transparency Center is a public DSA transparency tool. The scraper hits its internal RPC directly — no login, no cookies, no token.

**Why does the scraper return at most 100 ads per advertiser?**
That's the Google Ad Transparency API's per-call cap. The public cursor isn't exposed, so to cover larger advertisers run queries by additional regions or date filters.

**Can I find an advertiser ID without the autocomplete?**
Yes — open the advertiser on https://adstransparency.google.com and copy the `AR...` ID from the URL into `advertiserIds`.

**Does the scraper need a proxy?**
No. The endpoint is public and accepts cold requests from Apify datacenter IPs. The residential-proxy toggle is provided only for very large or repeated runs.

**What's the difference vs Google's official Ad Transparency search?**
This actor returns the same data the official search shows, but in machine-readable JSON ready for spreadsheets, CRMs, BI tools, or AI pipelines.

***

### Connect with Make, Zapier & n8n

This actor integrates with any automation platform via the Apify API.

#### Make (Integromat)

1. Add an **Apify module** in your Make scenario
2. Select **Run Actor** → choose this actor
3. Configure the input (paste your JSON)
4. Add a **Get Dataset Items** module to retrieve results
5. Send creatives to Google Sheets, HubSpot, Slack, or any downstream app

#### Zapier

1. Use the **Apify integration** on Zapier
2. Trigger: **Actor Run Finished**
3. Action: **Get Dataset Items**
4. Pipe results into your CRM, email tool, or spreadsheet

#### n8n

1. Add an **HTTP Request** node to call the Apify API
2. POST to `https://api.apify.com/v2/acts/dltik~google-ads-transparency/runs`
3. Wait for completion, then fetch dataset items
4. Route results into any n8n node

***

⭐ **Found this Google Ads Transparency Scraper useful? Bookmark it** — Apify ranks actors by bookmarks, so it's the strongest single signal for Store visibility. One click = directly helps this actor stay surfaced.

### Other scrapers by dltik

| Actor | What it does | Price |
|-------|-------------|-------|
| [Facebook Ads Library Scraper](https://apify.com/dltik/facebook-ads-scraper) | Meta (Facebook + Instagram) ad library spy with DSA detail enrichment | $0.75/1K |
| [LinkedIn Ad Library Scraper](https://apify.com/dltik/linkedin-ad-library) | B2B competitor ad spy from LinkedIn's public Ad Library, DSA impressions | $2/1K |
| [TikTok Scraper](https://apify.com/dltik/tiktok-scraper) | Profiles, videos, hashtags, search, trending | $8/1K |
| [Trustpilot Scraper](https://apify.com/dltik/trustpilot-scraper) | Reviews, ratings, company profiles with sentiment | $0.50/1K |

# Actor input Schema

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

Single search query — paste an advertiser name (e.g. 'Nike') or an advertiser ID (e.g. 'AR02981058906626719745'). Strings starting with 'AR' are treated as direct IDs; everything else is resolved via the autocomplete to the top matching advertisers.

## `queries` (type: `array`):

Advanced: multiple brand/advertiser names at once. Use this OR searchQuery, not both. Example: \['Nike','Adidas'].

## `advertiserIds` (type: `array`):

Advertiser IDs from the Ad Transparency Center (e.g. 'AR02981058906626719745'). Skips the keyword lookup and fetches creatives directly. Find them in the URL on adstransparency.google.com.

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

ISO country code to filter ads by where they were shown (US, FR, GB, DE, IT, ES, CA, JP, AU, BR, MX, NL). Use 'ANYWHERE' for any region.

## `regionId` (type: `integer`):

Advanced: Google's internal region ID (e.g. 2250 = US, 2012 = FR). Overrides the ISO mapping above when set — use this for regions the ISO mapping doesn't know yet.

## `platforms` (type: `array`):

Filter by Google platforms. Note: the string → numeric mapping is reverse-engineered and may need fixes — if the results don't match the platform you expect, use the numeric platformIds override below instead.

## `platformIds` (type: `array`):

Advanced: bypass the string mapping and pass Google's internal platform integers directly (subset of \[1,2,3,4,5]). Read them off the Ad Transparency Center URL when you apply a platform filter in the UI.

## `format` (type: `string`):

Only return ads of this creative format.

## `dateFrom` (type: `string`):

Only return ads shown on or after this date (YYYY-MM-DD). Leave empty for no lower bound.

## `dateTo` (type: `string`):

Only return ads shown on or before this date (YYYY-MM-DD). Leave empty for no upper bound.

## `topAdvertisersPerQuery` (type: `integer`):

When searching by keyword, how many top matching advertisers to scrape per query (autocomplete returns ~10).

## `maxResultsPerAdvertiser` (type: `integer`):

Cap on creatives per advertiser. Google's API caps at 100 per request and the public cursor isn't exposed, so values above 100 are treated as 100. For broader coverage of large advertisers, run separate queries per region.

## `useResidentialProxy` (type: `boolean`):

Enable only if Google rate-limits your runs — the Ad Transparency Center API works fine from Apify datacenter IPs (free, no rate limit observed). Residential rotation is available as a fallback for high-volume runs.

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

Advanced: override the proxy. Only honored when 'Use residential proxy' is enabled. Defaults to Apify residential when proxy is on.

## Actor input object example

```json
{
  "searchQuery": "nike",
  "region": "US",
  "format": "any",
  "topAdvertisersPerQuery": 3,
  "maxResultsPerAdvertiser": 50,
  "useResidentialProxy": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

List of creatives with advertiser, format, dates, region, and the embedded ad HTML.

# 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",
    "region": "US"
};

// Run the Actor and wait for it to finish
const run = await client.actor("dltik/google-ads-transparency").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",
    "region": "US",
}

# Run the Actor and wait for it to finish
run = client.actor("dltik/google-ads-transparency").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",
  "region": "US"
}' |
apify call dltik/google-ads-transparency --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Ads Transparency — Search/YouTube/Display Ad Spy",
        "description": "Scrape Google's public Ad Transparency Center — every Google Search, YouTube and Display ad an advertiser runs. Search by keyword or advertiser ID. Get creative HTML, image/video URLs, dates, formats, variants. Pure HTTP, no Chromium. DSA-mandated public data.",
        "version": "1.0",
        "x-build-id": "vMRitMCDwj069WIEK"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/dltik~google-ads-transparency/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-dltik-google-ads-transparency",
                "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/dltik~google-ads-transparency/runs": {
            "post": {
                "operationId": "runs-sync-dltik-google-ads-transparency",
                "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/dltik~google-ads-transparency/run-sync": {
            "post": {
                "operationId": "run-sync-dltik-google-ads-transparency",
                "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": {
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Single search query — paste an advertiser name (e.g. 'Nike') or an advertiser ID (e.g. 'AR02981058906626719745'). Strings starting with 'AR' are treated as direct IDs; everything else is resolved via the autocomplete to the top matching advertisers."
                    },
                    "queries": {
                        "title": "Search keywords (bulk)",
                        "type": "array",
                        "description": "Advanced: multiple brand/advertiser names at once. Use this OR searchQuery, not both. Example: ['Nike','Adidas'].",
                        "items": {
                            "type": "string"
                        }
                    },
                    "advertiserIds": {
                        "title": "Advertiser IDs",
                        "type": "array",
                        "description": "Advertiser IDs from the Ad Transparency Center (e.g. 'AR02981058906626719745'). Skips the keyword lookup and fetches creatives directly. Find them in the URL on adstransparency.google.com.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "region": {
                        "title": "Region",
                        "type": "string",
                        "description": "ISO country code to filter ads by where they were shown (US, FR, GB, DE, IT, ES, CA, JP, AU, BR, MX, NL). Use 'ANYWHERE' for any region.",
                        "default": "US"
                    },
                    "regionId": {
                        "title": "Region (numeric override)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Advanced: Google's internal region ID (e.g. 2250 = US, 2012 = FR). Overrides the ISO mapping above when set — use this for regions the ISO mapping doesn't know yet."
                    },
                    "platforms": {
                        "title": "Platforms (string aliases — best-guess mapping)",
                        "type": "array",
                        "description": "Filter by Google platforms. Note: the string → numeric mapping is reverse-engineered and may need fixes — if the results don't match the platform you expect, use the numeric platformIds override below instead.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "google_search",
                                "youtube",
                                "google_shopping",
                                "google_maps",
                                "google_play"
                            ],
                            "enumTitles": [
                                "Google Search",
                                "YouTube",
                                "Google Shopping",
                                "Google Maps",
                                "Google Play"
                            ]
                        }
                    },
                    "platformIds": {
                        "title": "Platform IDs (numeric override)",
                        "type": "array",
                        "description": "Advanced: bypass the string mapping and pass Google's internal platform integers directly (subset of [1,2,3,4,5]). Read them off the Ad Transparency Center URL when you apply a platform filter in the UI.",
                        "items": {
                            "type": "integer"
                        }
                    },
                    "format": {
                        "title": "Creative format",
                        "enum": [
                            "any",
                            "text",
                            "image",
                            "video"
                        ],
                        "type": "string",
                        "description": "Only return ads of this creative format.",
                        "default": "any"
                    },
                    "dateFrom": {
                        "title": "Date from",
                        "type": "string",
                        "description": "Only return ads shown on or after this date (YYYY-MM-DD). Leave empty for no lower bound."
                    },
                    "dateTo": {
                        "title": "Date to",
                        "type": "string",
                        "description": "Only return ads shown on or before this date (YYYY-MM-DD). Leave empty for no upper bound."
                    },
                    "topAdvertisersPerQuery": {
                        "title": "Top advertisers per keyword",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "When searching by keyword, how many top matching advertisers to scrape per query (autocomplete returns ~10).",
                        "default": 3
                    },
                    "maxResultsPerAdvertiser": {
                        "title": "Max creatives per advertiser",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Cap on creatives per advertiser. Google's API caps at 100 per request and the public cursor isn't exposed, so values above 100 are treated as 100. For broader coverage of large advertisers, run separate queries per region.",
                        "default": 50
                    },
                    "useResidentialProxy": {
                        "title": "Use residential proxy (optional)",
                        "type": "boolean",
                        "description": "Enable only if Google rate-limits your runs — the Ad Transparency Center API works fine from Apify datacenter IPs (free, no rate limit observed). Residential rotation is available as a fallback for high-volume runs.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Advanced: override the proxy. Only honored when 'Use residential proxy' is enabled. Defaults to Apify residential when proxy is on.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
