# Discord Scraper — Servers & Channels (All-in-One) (`khadinakbar/discord-all-in-one-scraper`) Actor

Resolve any Discord invite URL/code/vanity to full server profile or search Disboard + Top.gg by keyword. Returns member count, online count, features, verification level, premium tier, banner, channels, emojis, stickers. Auth-free. MCP-ready.

- **URL**: https://apify.com/khadinakbar/discord-all-in-one-scraper.md
- **Developed by:** [Khadin Akbar](https://apify.com/khadinakbar) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 server resolveds

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

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### PlaywrightCrawler + Camoufox template

<!-- This is an Apify template readme -->

This template is a production-ready boilerplate for developing an [Actor](https://apify.com/actors) with `PlaywrightCrawler`. It has [Camoufox](https://github.com/daijro/camoufox) - a stealthy fork of Firefox - preinstalled. Note that Camoufox might consume more resources than the default Playwright-bundled Chromium or Firefox.

Use this template to bootstrap your projects using the most up-to-date code.

> We decided to split Apify SDK into two libraries, Crawlee and Apify SDK v3. Crawlee will retain all the crawling and scraping-related tools and will always strive to be the best [web scraping](https://apify.com/web-scraping) library for its community. At the same time, Apify SDK will continue to exist, but keep only the Apify-specific features related to building Actors on the Apify platform. Read the upgrading guide to learn about the changes.

### Resources

If you're looking for examples or want to learn more visit:

- [Crawlee + Apify Platform guide](https://crawlee.dev/docs/guides/apify-platform)
- [Documentation](https://crawlee.dev/api/playwright-crawler/class/PlaywrightCrawler) and [examples](https://crawlee.dev/docs/examples/playwright-crawler)
- [Node.js tutorials](https://docs.apify.com/academy/node-js) in Academy
- [Scraping single-page applications with Playwright](https://blog.apify.com/scraping-single-page-applications-with-playwright/)
- [How to scale Puppeteer and Playwright](https://blog.apify.com/how-to-scale-puppeteer-and-playwright/)
- [Integration with Zapier](https://apify.com/integrations), Make, GitHub, Google Drive and other apps
- [Video guide on getting data using Apify API](https://www.youtube.com/watch?v=ViYYDHSBAKM)
- A short guide on how to create Actors using code templates:

[web scraper template](https://www.youtube.com/watch?v=u-i-Korzf8w)


### Getting started

For complete information [see this article](https://docs.apify.com/platform/actors/development#build-actor-locally). To run the Actor use the following command:

```bash
apify run
````

### Deploy to Apify

#### Connect Git repository to Apify

If you've created a Git repository for the project, you can easily connect to Apify:

1. Go to [Actor creation page](https://console.apify.com/actors/new)
2. Click on **Link Git Repository** button

#### Push project on your local machine to Apify

You can also deploy the project on your local machine to Apify without the need for the Git repository.

1. Log in to Apify. You will need to provide your [Apify API Token](https://console.apify.com/account/integrations) to complete this action.

   ```bash
   apify login
   ```

2. Deploy your Actor. This command will deploy and build the Actor on the Apify Platform. You can find your newly created Actor under [Actors -> My Actors](https://console.apify.com/actors?tab=my).

   ```bash
   apify push
   ```

### Documentation reference

To learn more about Apify and Actors, take a look at the following resources:

- [Apify SDK for JavaScript documentation](https://docs.apify.com/sdk/js)
- [Apify SDK for Python documentation](https://docs.apify.com/sdk/python)
- [Apify Platform documentation](https://docs.apify.com/platform)
- [Join our developer community on Discord](https://discord.com/invite/jyEM2PRvMU)

# Actor input Schema

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

Which Discord data type to extract. 'resolve' takes invite URLs/codes/vanity slugs and returns full server profile via the public Discord Invite API (no auth, ~280k member counts confirmed). 'search' scrapes Disboard.org and Top.gg server directories by keyword or tag, then enriches each result via the Invite API. 'channels' lists channels for a server when the server's Discord widget is enabled. 'emojis' harvests custom emojis and stickers from invite previews and widget metadata. 'bulk' resolves a long list of invite URLs/codes in parallel. Defaults to 'resolve'.

## `inviteUrls` (type: `array`):

Discord invite URLs (https://discord.gg/xyz, https://discord.com/invite/xyz), bare invite codes (xyz), or vanity slugs (discord-developers). Used for modes 'resolve', 'channels', 'emojis', and 'bulk'. Example: \['discord-developers', 'https://discord.gg/python']. Ignored in 'search' mode. NOT a list of server IDs — Discord blocks unauth lookups by server ID alone; use the vanity slug or any active invite code instead.

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

Free-text keyword or tag used to query Disboard and Top.gg server directories. Examples: 'anime', 'crypto', 'ai art', 'minecraft'. Disboard treats single words as tags (disboard.org/servers/tag/<query>) and multi-word as keyword search. Used only in 'search' mode. Defaults to 'crypto'. NOT a server name lookup — for a specific server, use 'resolve' mode with its invite URL.

## `searchSources` (type: `array`):

Which third-party Discord server directories to scrape in 'search' mode. Top.gg (curated, ~100 servers per query, JS-rendered, very reliable) is enabled by default. Disboard.org (4M+ servers, tag-indexed) is supported but currently blocked by Cloudflare Enterprise Bot Management — enable it at your own risk, expect 0-results outcomes until v0.3 ships Smart Browser bypass. Ignored outside 'search' mode.

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

Upper bound on total servers returned. Each Discord server costs one 'server-resolved' event regardless of source. Keep this small for first runs to verify output shape before scaling up. Applies to 'search' (caps directory results) and 'bulk' (caps the inviteUrls list size). Defaults to 100. Max 10000.

## `enrichWithInviteApi` (type: `boolean`):

When true (default), every server discovered via 'search' mode is also resolved through the Discord Invite API for accurate live member counts, online counts, features list, and premium tier. Adds reliability but doubles request count. Disable only when you want raw directory listings without per-server enrichment.

## `includeChannels` (type: `boolean`):

When true, attempts to fetch each server's channel list via the public Discord Widget API. Returns nothing for servers with widget disabled (Discord's default — only ~10% of public servers enable it). Adds one extra request per server. Defaults to false.

## `includeEmojisStickers` (type: `boolean`):

When true, attempts to extract custom emojis and stickers via Discord's guild-preview endpoint. Best-effort: Discord requires authentication on this endpoint for most servers, so the field will typically be an empty array. Reliable emoji/sticker extraction requires a bot token (planned for a future v0.2 release). Defaults to false.

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

Apify Proxy settings. Residential proxies are recommended for directory scraping (Disboard is Cloudflare-protected). Leave default unless you have a specific reason to override.

## Actor input object example

```json
{
  "mode": "resolve",
  "inviteUrls": [
    "discord-developers",
    "python"
  ],
  "searchQuery": "crypto",
  "searchSources": [
    "topgg"
  ],
  "maxResults": 100,
  "enrichWithInviteApi": true,
  "includeChannels": false,
  "includeEmojisStickers": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "mode": "resolve",
    "inviteUrls": [
        "discord-developers",
        "python"
    ],
    "searchQuery": "crypto",
    "searchSources": [
        "topgg"
    ],
    "maxResults": 100,
    "enrichWithInviteApi": true,
    "includeChannels": false,
    "includeEmojisStickers": false,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("khadinakbar/discord-all-in-one-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 = {
    "mode": "resolve",
    "inviteUrls": [
        "discord-developers",
        "python",
    ],
    "searchQuery": "crypto",
    "searchSources": ["topgg"],
    "maxResults": 100,
    "enrichWithInviteApi": True,
    "includeChannels": False,
    "includeEmojisStickers": False,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("khadinakbar/discord-all-in-one-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 '{
  "mode": "resolve",
  "inviteUrls": [
    "discord-developers",
    "python"
  ],
  "searchQuery": "crypto",
  "searchSources": [
    "topgg"
  ],
  "maxResults": 100,
  "enrichWithInviteApi": true,
  "includeChannels": false,
  "includeEmojisStickers": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call khadinakbar/discord-all-in-one-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=khadinakbar/discord-all-in-one-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Discord Scraper — Servers & Channels (All-in-One)",
        "description": "Resolve any Discord invite URL/code/vanity to full server profile or search Disboard + Top.gg by keyword. Returns member count, online count, features, verification level, premium tier, banner, channels, emojis, stickers. Auth-free. MCP-ready.",
        "version": "0.4",
        "x-build-id": "2r6TE1O0YCaWFN5q3"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/khadinakbar~discord-all-in-one-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-khadinakbar-discord-all-in-one-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/khadinakbar~discord-all-in-one-scraper/runs": {
            "post": {
                "operationId": "runs-sync-khadinakbar-discord-all-in-one-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/khadinakbar~discord-all-in-one-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-khadinakbar-discord-all-in-one-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": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Scrape mode",
                        "enum": [
                            "resolve",
                            "search",
                            "channels",
                            "emojis",
                            "bulk"
                        ],
                        "type": "string",
                        "description": "Which Discord data type to extract. 'resolve' takes invite URLs/codes/vanity slugs and returns full server profile via the public Discord Invite API (no auth, ~280k member counts confirmed). 'search' scrapes Disboard.org and Top.gg server directories by keyword or tag, then enriches each result via the Invite API. 'channels' lists channels for a server when the server's Discord widget is enabled. 'emojis' harvests custom emojis and stickers from invite previews and widget metadata. 'bulk' resolves a long list of invite URLs/codes in parallel. Defaults to 'resolve'.",
                        "default": "resolve"
                    },
                    "inviteUrls": {
                        "title": "Invite URLs / codes / vanity slugs",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Discord invite URLs (https://discord.gg/xyz, https://discord.com/invite/xyz), bare invite codes (xyz), or vanity slugs (discord-developers). Used for modes 'resolve', 'channels', 'emojis', and 'bulk'. Example: ['discord-developers', 'https://discord.gg/python']. Ignored in 'search' mode. NOT a list of server IDs — Discord blocks unauth lookups by server ID alone; use the vanity slug or any active invite code instead.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchQuery": {
                        "title": "Search keyword or tag",
                        "type": "string",
                        "description": "Free-text keyword or tag used to query Disboard and Top.gg server directories. Examples: 'anime', 'crypto', 'ai art', 'minecraft'. Disboard treats single words as tags (disboard.org/servers/tag/<query>) and multi-word as keyword search. Used only in 'search' mode. Defaults to 'crypto'. NOT a server name lookup — for a specific server, use 'resolve' mode with its invite URL.",
                        "default": "crypto"
                    },
                    "searchSources": {
                        "title": "Directory sources to query",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Which third-party Discord server directories to scrape in 'search' mode. Top.gg (curated, ~100 servers per query, JS-rendered, very reliable) is enabled by default. Disboard.org (4M+ servers, tag-indexed) is supported but currently blocked by Cloudflare Enterprise Bot Management — enable it at your own risk, expect 0-results outcomes until v0.3 ships Smart Browser bypass. Ignored outside 'search' mode.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "disboard",
                                "topgg"
                            ],
                            "enumTitles": [
                                "Disboard.org (4M+ servers, tag-indexed)",
                                "Top.gg (curated, member-count sorted)"
                            ]
                        },
                        "default": [
                            "topgg"
                        ]
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Upper bound on total servers returned. Each Discord server costs one 'server-resolved' event regardless of source. Keep this small for first runs to verify output shape before scaling up. Applies to 'search' (caps directory results) and 'bulk' (caps the inviteUrls list size). Defaults to 100. Max 10000.",
                        "default": 100
                    },
                    "enrichWithInviteApi": {
                        "title": "Enrich directory results via Invite API",
                        "type": "boolean",
                        "description": "When true (default), every server discovered via 'search' mode is also resolved through the Discord Invite API for accurate live member counts, online counts, features list, and premium tier. Adds reliability but doubles request count. Disable only when you want raw directory listings without per-server enrichment.",
                        "default": true
                    },
                    "includeChannels": {
                        "title": "Include channel list (when widget enabled)",
                        "type": "boolean",
                        "description": "When true, attempts to fetch each server's channel list via the public Discord Widget API. Returns nothing for servers with widget disabled (Discord's default — only ~10% of public servers enable it). Adds one extra request per server. Defaults to false.",
                        "default": false
                    },
                    "includeEmojisStickers": {
                        "title": "Include custom emojis and stickers (best-effort)",
                        "type": "boolean",
                        "description": "When true, attempts to extract custom emojis and stickers via Discord's guild-preview endpoint. Best-effort: Discord requires authentication on this endpoint for most servers, so the field will typically be an empty array. Reliable emoji/sticker extraction requires a bot token (planned for a future v0.2 release). Defaults to false.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy settings. Residential proxies are recommended for directory scraping (Disboard is Cloudflare-protected). Leave default unless you have a specific reason to override.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
