# TikTok Ads Library Scraper (`thenetaji/tiktok-ads-library-scraper`) Actor

Find public TikTok ads from brands and competitors. Search by keyword or advertiser, choose a country and date range, and export ad text, delivery dates, audience estimates, impressions, and creative URLs. Optionally add targeting details or an advertiser activity report.

- **URL**: https://apify.com/thenetaji/tiktok-ads-library-scraper.md
- **Developed by:** [The Netaji](https://apify.com/thenetaji) (community)
- **Categories:** Social media, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.60 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

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

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

**Search TikTok's public Ads Library, follow copied public URLs, and turn competitor ad activity into structured records.**

I built this Actor around the research workflow I actually want: discover ads first, then spend extra requests only on the results that deserve deeper inspection.

### Search by market question or reuse a public URL

Use free text for category discovery, exact phrases for messaging checks, keywords for focused themes, or advertiser mode for a known brand. A copied Ads Library search, ad-detail, or report URL can supply the starting context directly.

#### Search public ads

Search by free text, exact phrase, keyword, or advertiser across a region and date range.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `query` | string | No | Brand, product, message, or phrase to find in TikTok's public Ads Library. |
| `search_type` | string | No | Choose how TikTok should interpret the search query. Use Free text for broad research, Advertiser for one brand, Keyword for a topic, or Exact phrase for matching wording. |
| `advertiser_id` | string | No | Optional numeric advertiser ID for Advertiser searches. Leave it empty to let the Actor find a unique exact match from the advertiser name in Search query. |
| `region` | string | No | Two-letter country code that selects which public Ads Library market to search, such as GB, DE, FR, or ES. |
| `start_time` | string | No | Oldest ad activity date to include. Leave empty to search the 30 days before End date. |
| `end_time` | string | No | Newest ad activity date to include. Leave empty to use today. |
| `sort` | string | No | Choose whether newest, oldest, or highest-impression ads appear first. |
| `maxItems` | integer | No | Maximum number of Ads Library results to save. Set 0 to continue until TikTok returns no more pages. |

#### Continue from a public URL

Paste a TikTok Ads Library search, ad detail, or advertiser report URL.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `startUrl` | string | No | Optional shortcut: paste a public Ads Library search, ad-detail, or advertiser-report URL. The Actor reads the search settings from the URL; values entered below override matching URL settings. |
| `maxItems` | integer | No | Maximum number of Ads Library results to save. Set 0 to continue until TikTok returns no more pages. |

#### Add research depth

Optionally add full ad details per result and one advertiser report for advertiser searches.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `enrichAdDetails` | boolean | No | For each saved ad, make one extra request for advertiser information, targeting, reach, campaign objective, and complete creative metadata. Each successful detail request has an enrichment charge. |
| `includeAdvertiserReport` | boolean | No | Only for Advertiser searches: save one report with regional ad distribution and daily publication counts in the run output. A successful report request has an enrichment charge. |

#### Example market scan

```json
{
  "query": "running shoes",
  "search_type": "free_text",
  "region": "GB",
  "start_time": "2026-07-01",
  "end_time": "2026-07-24",
  "maxItems": 25,
  "enrichAdDetails": false
}
````

### One row per public ad

The base record keeps identity, delivery dates, audience signals, and creative URLs together. Optional detail enrichment adds advertiser, targeting, objective, and the full detail payload without changing the base workflow.

#### 📦 Ad identity

| Field | Type | Description |
| --- | --- | --- |
| `ad_id` | string | Unique public Ads Library ad ID. |
| `advertiser_name` | string | Advertiser name shown for an Ads Library result. |
| `advertiser_id` | string | Advertiser business ID when detail enrichment supplies it. |
| `title` | string | Ads Library creative title or caption. |
| `ad_detail_url` | string | Public TikTok Ads Library detail URL. |

#### 📊 Delivery

| Field | Type | Description |
| --- | --- | --- |
| `region` | string | Ads Library region used for the search. |
| `first_shown_at` | string | First date the ad was shown. |
| `last_shown_at` | string | Most recent date the ad was shown. |
| `estimated_audience` | string | Estimated audience range reported by the Ads Library. |
| `impressions` | number | Impression value reported for the ad. |
| `spend` | string | Spend value reported for the ad when available. |

#### 🎬 Creative

| Field | Type | Description |
| --- | --- | --- |
| `video_urls` | array | Direct video URLs exposed for the Ads Library creative. |
| `cover_image_urls` | array | Video cover image URLs. |
| `image_urls` | array | Image creative URLs. |

#### 🔍 Optional detail

| Field | Type | Description |
| --- | --- | --- |
| `advertising_objective` | string | Advertising objective returned by detail enrichment. |
| `advertiser` | object | Full advertiser object returned by optional detail enrichment. |
| `targeting` | object | Targeting and reach information returned by optional detail enrichment. |
| `details` | object | Full detail payload, present only when the workflow fetches it. |

#### Shortened result

```json
{
  "ad_id": "1871426970960898",
  "advertiser_name": "Example Brand",
  "title": "Discover the new collection",
  "region": "GB",
  "first_shown_at": "2026-07-10T00:00:00.000Z",
  "video_urls": [
    "https://example.com/ad.mp4"
  ]
}
```

### Practical competitor-research loop

- Start broad with enrichment disabled.
- Save the strongest advertiser names and ad IDs.
- Re-run a narrow date window with details or an advertiser report enabled.
- Compare repeated runs to see which messages and creatives remain active.

### Pricing follows saved ads and selected add-ons

This Actor uses Apify pay-per-event pricing. Dataset results are the primary charge. Optional enrichment is charged only after the requested extra data is returned successfully; disabled enrichments make no add-on calls.

Apify's free credits may cover small validation runs within the free usage allowance shown on the Actor pricing tab.

Start with a low Max results value and leave enrichment off until the discovery query returns the creatives you want.

### Public advertising data and responsible use

This Actor collects public advertising transparency and Creative Center data. It does not access private TikTok accounts or private user data. You are responsible for complying with applicable privacy laws, advertising rules, TikTok terms, and the rights of people or organizations represented in your results. Consult a qualified lawyer if you are unsure.

### Run from code

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_API_TOKEN")
run = client.actor("thenetaji/tiktok-ads-library-scraper").call(run_input={
    "query": "running shoes",
    "search_type": "free_text",
    "region": "GB",
    "start_time": "2026-07-01",
    "end_time": "2026-07-24",
    "maxItems": 25,
    "enrichAdDetails": false
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

#### Node.js

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

const client = new ApifyClient({ token: "YOUR_APIFY_API_TOKEN" });
const run = await client.actor("thenetaji/tiktok-ads-library-scraper").call({
  "query": "running shoes",
  "search_type": "free_text",
  "region": "GB",
  "start_time": "2026-07-01",
  "end_time": "2026-07-24",
  "maxItems": 25,
  "enrichAdDetails": false
});

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

### Continue the research

- [TikTok Top Ads Scraper & Creative Analyzer](https://apify.com/thenetaji/tiktok-top-ads-scraper) — Find high-performing public TikTok ads in Creative Center. Search ranked ads, browse TikTok's Spotlight picks, or analyze known ads by URL or ID. Export videos and engagement metrics, then optionally add details, per-second performance, benchmarks, and similar creatives.
- [Facebook Ads Library Scrape](https://apify.com/thenetaji/meta-facebook-ads-scraper) — Scrape public Facebook and Instagram ads from Meta Ad Library: search by keyword or Ad Library URL, browse every ad from a known advertiser Page, or find a Page's ID by brand name. Filter by country, status, category, format, platform, and date, and optionally enrich each ad with full details.

### Ask me about a run

Use the Issues tab on the Actor page to report a failing public URL, missing field, or workflow request. Include the run ID and a redacted example input.

# Actor input Schema

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

Optional shortcut: paste a public Ads Library search, ad-detail, or advertiser-report URL. The Actor reads the search settings from the URL; values entered below override matching URL settings.

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

Brand, product, message, or phrase to find in TikTok's public Ads Library.

## `search_type` (type: `string`):

Choose how TikTok should interpret the search query. Use Free text for broad research, Advertiser for one brand, Keyword for a topic, or Exact phrase for matching wording.

## `advertiser_id` (type: `string`):

Optional numeric advertiser ID for Advertiser searches. Leave it empty to let the Actor find a unique exact match from the advertiser name in Search query.

## `maxItems` (type: `integer`):

Maximum number of Ads Library results to save. Set 0 to continue until TikTok returns no more pages.

## `enrichAdDetails` (type: `boolean`):

For each saved ad, make one extra request for advertiser information, targeting, reach, campaign objective, and complete creative metadata. Each successful detail request has an enrichment charge.

## `includeAdvertiserReport` (type: `boolean`):

Only for Advertiser searches: save one report with regional ad distribution and daily publication counts in the run output. A successful report request has an enrichment charge.

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

Two-letter country code that selects which public Ads Library market to search, such as GB, DE, FR, or ES.

## `start_time` (type: `string`):

Oldest ad activity date to include. Leave empty to search the 30 days before End date.

## `end_time` (type: `string`):

Newest ad activity date to include. Leave empty to use today.

## `sort` (type: `string`):

Choose whether newest, oldest, or highest-impression ads appear first.

## Actor input object example

```json
{
  "startUrl": "https://library.tiktok.com/ads?region=GB&start_time=1782864000&end_time=1785455999&adv_name=running%20shoes&query_type=1",
  "query": "running shoes",
  "search_type": "free_text",
  "advertiser_id": "7536115608476188689",
  "maxItems": 10,
  "enrichAdDetails": false,
  "includeAdvertiserReport": false,
  "region": "GB",
  "start_time": "2026-07-01",
  "end_time": "2026-07-24",
  "sort": "last_shown_desc"
}
```

# Actor output Schema

## `dataset` (type: `string`):

Dataset containing all scraped data

## `files` (type: `string`):

Key-value store containing generated files

# 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 = {
    "query": "running shoes",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("thenetaji/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 = {
    "query": "running shoes",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("thenetaji/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 '{
  "query": "running shoes",
  "maxItems": 10
}' |
apify call thenetaji/tiktok-ads-library-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TikTok Ads Library Scraper",
        "description": "Find public TikTok ads from brands and competitors. Search by keyword or advertiser, choose a country and date range, and export ad text, delivery dates, audience estimates, impressions, and creative URLs. Optionally add targeting details or an advertiser activity report.",
        "version": "0.1",
        "x-build-id": "as965S1VlBSjBXmpS"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/thenetaji~tiktok-ads-library-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-thenetaji-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/thenetaji~tiktok-ads-library-scraper/runs": {
            "post": {
                "operationId": "runs-sync-thenetaji-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/thenetaji~tiktok-ads-library-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-thenetaji-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",
                "properties": {
                    "startUrl": {
                        "title": "TikTok Ads Library URL",
                        "type": "string",
                        "description": "Optional shortcut: paste a public Ads Library search, ad-detail, or advertiser-report URL. The Actor reads the search settings from the URL; values entered below override matching URL settings."
                    },
                    "query": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Brand, product, message, or phrase to find in TikTok's public Ads Library.",
                        "default": "running shoes"
                    },
                    "search_type": {
                        "title": "Search type",
                        "enum": [
                            "free_text",
                            "advertiser",
                            "keyword",
                            "exact_phrase"
                        ],
                        "type": "string",
                        "description": "Choose how TikTok should interpret the search query. Use Free text for broad research, Advertiser for one brand, Keyword for a topic, or Exact phrase for matching wording.",
                        "default": "free_text"
                    },
                    "advertiser_id": {
                        "title": "Advertiser ID",
                        "type": "string",
                        "description": "Optional numeric advertiser ID for Advertiser searches. Leave it empty to let the Actor find a unique exact match from the advertiser name in Search query."
                    },
                    "maxItems": {
                        "title": "Max results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of Ads Library results to save. Set 0 to continue until TikTok returns no more pages.",
                        "default": 10
                    },
                    "enrichAdDetails": {
                        "title": "Add full details to every ad",
                        "type": "boolean",
                        "description": "For each saved ad, make one extra request for advertiser information, targeting, reach, campaign objective, and complete creative metadata. Each successful detail request has an enrichment charge.",
                        "default": false
                    },
                    "includeAdvertiserReport": {
                        "title": "Add advertiser activity report",
                        "type": "boolean",
                        "description": "Only for Advertiser searches: save one report with regional ad distribution and daily publication counts in the run output. A successful report request has an enrichment charge.",
                        "default": false
                    },
                    "region": {
                        "title": "Country",
                        "pattern": "^[A-Za-z]{2}$",
                        "type": "string",
                        "description": "Two-letter country code that selects which public Ads Library market to search, such as GB, DE, FR, or ES.",
                        "default": "GB"
                    },
                    "start_time": {
                        "title": "Start date",
                        "type": "string",
                        "description": "Oldest ad activity date to include. Leave empty to search the 30 days before End date."
                    },
                    "end_time": {
                        "title": "End date",
                        "type": "string",
                        "description": "Newest ad activity date to include. Leave empty to use today."
                    },
                    "sort": {
                        "title": "Sort ads",
                        "enum": [
                            "last_shown_desc",
                            "last_shown_asc",
                            "published_desc",
                            "published_asc",
                            "impressions_desc",
                            "impressions_asc"
                        ],
                        "type": "string",
                        "description": "Choose whether newest, oldest, or highest-impression ads appear first.",
                        "default": "last_shown_desc"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
