# YouTube Channel Scraper (`mighty_monk/youtube-channel-scraper`) Actor

Scrape YouTube channel metadata and recent videos from channel / about / videos pages via ytInitialData. Ideal for content research, affiliate research, and AI training datasets.

- **URL**: https://apify.com/mighty\_monk/youtube-channel-scraper.md
- **Developed by:** [Harsh](https://apify.com/mighty_monk) (community)
- **Categories:** Social media, Videos
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 channel or video results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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

## YouTube Channel Scraper

**Scrape YouTube channel metadata and recent videos** for content research, affiliate research, competitor analysis, and AI training datasets. Built with **TypeScript** and **Crawlee CheerioCrawler** (HTTP-first, no browser) by parsing embedded `ytInitialData` JSON from channel About and Videos pages.

Run it on the [Apify platform](https://apify.com) for scheduling, API access, **proxy rotation**, monitoring, and dataset exports (JSON, CSV, Excel).

> **Legal / ToS notice:** This Actor is intended for **publicly available data only**. Respect [YouTube Terms of Service](https://www.youtube.com/t/terms), robots rules, and applicable privacy laws (GDPR/CCPA). Do not use this tool to bypass authentication, scrape private content, or violate platform policies. You are responsible for how you use the data.

### What does YouTube Channel Scraper do?

Given one or more **channel URLs** (`@handle`, `/channel/UC…`, `/c/`, `/user/`), this Actor:

1. Normalizes and deduplicates channel URLs
2. Optionally loads each channel **About** tab for metadata (title, description, subscribers, total views, video count, country)
3. Loads the **Videos** tab and extracts recent video listings up to `maxVideos`
4. Parses `window["ytInitialData"]` / `var ytInitialData` embedded in the HTML
5. Handles **consent walls**, **captchas / unusual traffic**, and **not-found** pages gracefully (dataset row with `error`)
6. Pushes structured dataset items (`type: "channel"` and `type: "video"`)
7. Writes **SUMMARY.md** to the key-value store

### Why use YouTube Channel Scraper?

- **Content research** — discover what top channels post and how often
- **Affiliate / niche research** — collect public stats before outreach
- **AI / ML datasets** — bulk channel + video metadata for training or ranking features
- **Competitor monitoring** — track public channel growth signals and new uploads
- **Automation-ready** — JSON dataset + Apify API, webhooks, and schedules

### How to scrape YouTube channels

1. Open the Actor in [Apify Console](https://console.apify.com)
2. Paste channel URLs (e.g. `https://www.youtube.com/@MrBeast`)
3. Set **max videos per channel** (e.g. `20`)
4. Keep **include channel info** enabled if you need About-tab stats
5. Enable **Apify Proxy** if you hit consent or rate-limit pages
6. Click **Start**
7. Download results from the **Dataset** tab (JSON / CSV / Excel) or read `SUMMARY.md` from the key-value store

### Input

| Field | Type | Default | Description |
| ----- | ---- | ------- | ----------- |
| `channelUrls` | string[] | MrBeast + Google Developers | YouTube channel URLs |
| `maxVideos` | integer | `20` | Max recent videos per channel (`0` = channel info only) |
| `includeChannelInfo` | boolean | `true` | Scrape About-tab channel metadata |
| `maxConcurrency` | integer | `3` | Concurrent HTTP requests |
| `maxRequestRetries` | integer | `3` | Retries on failure / soft blocks |
| `requestDelayMs` | integer | `1000` | Used for max requests/minute rate limiting |
| `proxyConfiguration` | object | Apify Proxy on | Proxy settings |

Example:

```json
{
    "channelUrls": [
        "https://www.youtube.com/@MrBeast",
        "https://www.youtube.com/@GoogleDevelopers"
    ],
    "maxVideos": 10,
    "includeChannelInfo": true,
    "maxConcurrency": 3,
    "maxRequestRetries": 3,
    "requestDelayMs": 1000,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
}
````

See [`examples/input.json`](examples/input.json).

### Output

#### Channel record

```json
{
    "type": "channel",
    "channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA",
    "title": "MrBeast",
    "description": "SUBSCRIBE FOR A COOKIE! …",
    "subscriberCount": 391000000,
    "videoCount": 841,
    "viewCount": 80123456789,
    "channelUrl": "https://www.youtube.com/@MrBeast",
    "country": "United States",
    "scrapedAt": "2026-07-18T12:00:00.000Z",
    "error": null
}
```

#### Video record

```json
{
    "type": "video",
    "videoId": "dQw4w9WgXcQ",
    "title": "I Spent 50 Hours Buried Alive",
    "description": "I spent 50 hours buried alive...",
    "viewCount": 312456789,
    "likeCount": null,
    "publishedAt": "2 years ago",
    "duration": "15:42",
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "channelTitle": "MrBeast",
    "thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg",
    "channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA",
    "channelUrl": "https://www.youtube.com/@MrBeast",
    "scrapedAt": "2026-07-18T12:00:00.000Z",
    "error": null
}
```

You can download the dataset in various formats such as **JSON, HTML, CSV, or Excel**.

### Data fields

| Field | Channel | Video | Description |
| ----- | ------- | ----- | ----------- |
| `type` | yes | yes | `"channel"` or `"video"` |
| `channelId` | yes | yes\* | UC… channel id |
| `title` | yes | yes | Channel or video title |
| `description` | yes | yes | About text / snippet |
| `subscriberCount` | yes | — | Subscribers |
| `videoCount` | yes | — | Total videos on channel |
| `viewCount` | yes | yes | Lifetime channel views or video views |
| `channelUrl` | yes | yes\* | Canonical channel URL |
| `country` | yes | — | Country when present on About |
| `videoId` | — | yes | 11-char video id |
| `likeCount` | — | yes | Often null on list pages |
| `publishedAt` | — | yes | Relative time (e.g. "2 years ago") |
| `duration` | — | yes | e.g. `15:42` |
| `url` | — | yes | Watch URL |
| `channelTitle` | — | yes | Owning channel name |
| `thumbnail` | — | yes | Thumbnail image URL |
| `scrapedAt` | yes | yes | ISO scrape time |
| `error` | yes | yes | Set on failures / blocks |

\* optional enrichment on video rows when channel context is known.

### How it works (technical)

- **CheerioCrawler** fetches About and Videos HTML over HTTP
- **ytInitialData** is extracted via regex + brace-balanced JSON parse
- Channel stats come from `channelMetadataRenderer`, `c4TabbedHeaderRenderer`, `aboutChannelViewModel`, and `channelAboutFullMetadataRenderer`
- Videos come from `videoRenderer` / `gridVideoRenderer` / `richItemRenderer` trees
- Fallbacks: Open Graph meta tags, DOM subscriber text, and `a[href*="watch?v="]` anchors
- Graceful handling for consent walls, captchas, 403/429, and missing channels

### Pricing / cost estimation

This Actor uses **Pay-per-event (PPE)** pricing at about **$0.003 per dataset result** (channel or video row), plus a tiny actor-start fee. How much does it cost to scrape YouTube channels?

| Scenario | Approx. results | Est. cost |
| -------- | --------------- | --------- |
| 10 channels, info only | ~10 | ~$0.03 |
| 10 channels × 20 videos + info | ~210 | ~$0.63 |
| 100 channels × 10 videos + info | ~1,100 | ~$3.30 |

Platform free-tier and compute unit usage still apply when running on Apify. Enable proxy only when needed to control proxy costs.

### Tips

- Prefer **Apify Proxy** (residential if you see consent / unusual traffic pages)
- Keep `maxConcurrency` at **2–5** for stable extractions
- Set `maxVideos` only as high as you need — list pages return first-screen results without infinite scroll pagination in this HTTP version
- `likeCount` is often **null** on Videos-tab listings (YouTube does not always embed likes there)
- Use `@handle` URLs for stability when custom `/c/` paths change

### FAQ, disclaimers, and support

**Is scraping YouTube legal?**\
Scraping publicly available pages for legitimate research is a gray area that depends on jurisdiction, purpose, and ToS. This tool does not bypass logins or access private data. Consult legal counsel for your use case.

**Why do I get consent or empty results?**\
Some regions show a cookie consent wall without `ytInitialData`. Use proxies (often US residential) and retries.

**Does this use the official YouTube Data API?**\
No. It parses public HTML / embedded JSON. For API-quota-based access, use Google’s YouTube Data API instead.

**Need a custom solution?**\
Open an issue on the Actor’s **Issues** tab in Apify Console, or request a custom scraper for deeper pagination, Shorts-only mode, or comment extraction.

### Output example file

See [`examples/output.json`](examples/output.json) for a full sample payload.

# Actor input Schema

## `channelUrls` (type: `array`):

YouTube channel URLs to scrape. Supports @handle, /channel/UC…, /c/, and /user/ forms.

## `maxVideos` (type: `integer`):

Maximum number of recent videos to extract per channel (from the Videos tab). 0 = channel info only (when includeChannelInfo is true).

## `includeChannelInfo` (type: `boolean`):

When true, scrape channel About metadata (title, description, subscribers, total views, country) in addition to videos.

## `maxConcurrency` (type: `integer`):

Maximum concurrent HTTP requests. Keep moderate for YouTube (2–5).

## `maxRequestRetries` (type: `integer`):

How many times to retry a failed or blocked request before giving up.

## `requestDelayMs` (type: `integer`):

Approximate delay between requests used for rate limiting (max requests per minute).

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

Apify Proxy settings. Residential proxies help avoid consent walls and geo blocks.

## Actor input object example

```json
{
  "channelUrls": [
    "https://www.youtube.com/@MrBeast",
    "https://www.youtube.com/@GoogleDevelopers"
  ],
  "maxVideos": 20,
  "includeChannelInfo": true,
  "maxConcurrency": 3,
  "maxRequestRetries": 3,
  "requestDelayMs": 1000,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

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

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "channelUrls": [
        "https://www.youtube.com/@MrBeast",
        "https://www.youtube.com/@GoogleDevelopers"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("mighty_monk/youtube-channel-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 = { "channelUrls": [
        "https://www.youtube.com/@MrBeast",
        "https://www.youtube.com/@GoogleDevelopers",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("mighty_monk/youtube-channel-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 '{
  "channelUrls": [
    "https://www.youtube.com/@MrBeast",
    "https://www.youtube.com/@GoogleDevelopers"
  ]
}' |
apify call mighty_monk/youtube-channel-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "YouTube Channel Scraper",
        "description": "Scrape YouTube channel metadata and recent videos from channel / about / videos pages via ytInitialData. Ideal for content research, affiliate research, and AI training datasets.",
        "version": "1.0",
        "x-build-id": "1de9JybdcgBVZxRZV"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/mighty_monk~youtube-channel-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-mighty_monk-youtube-channel-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/mighty_monk~youtube-channel-scraper/runs": {
            "post": {
                "operationId": "runs-sync-mighty_monk-youtube-channel-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/mighty_monk~youtube-channel-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-mighty_monk-youtube-channel-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": [
                    "channelUrls"
                ],
                "properties": {
                    "channelUrls": {
                        "title": "Channel URLs",
                        "type": "array",
                        "description": "YouTube channel URLs to scrape. Supports @handle, /channel/UC…, /c/, and /user/ forms.",
                        "default": [
                            "https://www.youtube.com/@MrBeast",
                            "https://www.youtube.com/@GoogleDevelopers"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxVideos": {
                        "title": "Max videos per channel",
                        "minimum": 0,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum number of recent videos to extract per channel (from the Videos tab). 0 = channel info only (when includeChannelInfo is true).",
                        "default": 20
                    },
                    "includeChannelInfo": {
                        "title": "Include channel info",
                        "type": "boolean",
                        "description": "When true, scrape channel About metadata (title, description, subscribers, total views, country) in addition to videos.",
                        "default": true
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum concurrent HTTP requests. Keep moderate for YouTube (2–5).",
                        "default": 3
                    },
                    "maxRequestRetries": {
                        "title": "Max request retries",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "How many times to retry a failed or blocked request before giving up.",
                        "default": 3
                    },
                    "requestDelayMs": {
                        "title": "Request delay (ms)",
                        "minimum": 0,
                        "maximum": 60000,
                        "type": "integer",
                        "description": "Approximate delay between requests used for rate limiting (max requests per minute).",
                        "default": 1000
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy settings. Residential proxies help avoid consent walls and geo blocks.",
                        "default": {
                            "useApifyProxy": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
