# Telegram Channel Scraper — members, bio & invite links (`memo23/telegram-channel-scraper`) Actor

Turn any list of t.me links into structured channel intelligence — names, bios, avatars, live member counts, verified badges, content counters. Resolves private invite links without joining. Channels, groups, bots & users auto-detected. No API key, no login, no proxy needed.

- **URL**: https://apify.com/memo23/telegram-channel-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** Social media, Agents, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 channel 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 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

## Telegram Channel Scraper — channels, groups & bots from t.me links

Scrape **Telegram channel, group, and bot metadata** straight from t.me links — display name, bio, avatar, subscriber/member counts, verified badge, and content counters. Works with **public usernames AND private invite links** (`t.me/+...`), needs **no Telegram account, no API key, and no login**, and returns clean JSON/CSV you can plug into any workflow.

![How Telegram Channel Scraper works](https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/how-it-works-telegram-channel.png)

### Why use this scraper?

- **Invite links supported** — `t.me/+hash` and legacy `t.me/joinchat/...` links return the group/channel name, bio, avatar, and live member + online counts **without joining**.
- **Zero setup** — no Telegram API credentials, no phone number, no session files. Paste links, press Start.
- **Every entity type** — public channels, private groups, bots, and user profiles are auto-detected and typed (`channel` / `group` / `bot` / `user`).
- **Content counters** — public channels also get exact photos, videos, files, and links counts.
- **Forgiving input** — post URLs (`t.me/channel/123`), web previews (`t.me/s/channel`), `telegram.me` aliases, and bare `@usernames` are all normalized automatically.
- **Fast and parallel** — a sliding window of concurrent HTTP requests; hundreds of channels resolve in seconds.

### Overview

Give the actor any list of t.me links or usernames. For each one it fetches Telegram's public preview page, detects what kind of entity it is, and returns one structured row with the name, bio, avatar URL, member counts, and (for public channels) content counters. That's it — one row in, one row out, no padding.

### Supported inputs

| Input | Example | Result |
|---|---|---|
| Public channel | `https://t.me/telegram` | name, bio, avatar, subscribers, photo/video/link counters |
| Private invite link | `https://t.me/+Zt3-XNsQ5h9jYWE8` | name, bio, avatar, members + online, invite hash |
| Legacy invite link | `https://t.me/joinchat/AbCdEf123` | normalized to `t.me/+AbCdEf123` |
| Bot | `https://t.me/BotFather` | name, bio, avatar, monthly users |
| User profile | `https://t.me/durov` | name, bio, avatar |
| Post URL | `https://t.me/telegram/123` | normalized to the channel root |
| Web preview | `https://t.me/s/bloomberg` | normalized to the channel root |
| Bare handle | `@durov` or `durov` (via the *Usernames* field) | same as the full URL |

### Use cases

- **Channel discovery & vetting** — bulk-check member counts and bios before advertising, partnering, or joining.
- **Crypto / trading community intel** — resolve invite links shared on social media into named, sized communities.
- **Influencer & media monitoring** — track subscriber growth of news channels and creators over time (schedule the actor, diff the counts).
- **Lead enrichment** — turn t.me links found on websites into structured channel data for your CRM.
- **Trust & safety research** — catalogue channel metadata at scale from lists of invite links.
- **Bot market research** — monthly-user counts for competing Telegram bots.

### How it works

1. **Normalize** — every input (URL, invite link, post URL, `@handle`) is normalized to a canonical t.me preview URL and deduplicated.
2. **Fetch** — each preview page is fetched with browser-grade TLS fingerprints (impit) in a parallel sliding window. t.me has no anti-bot, so no proxy is needed.
3. **Parse** — display name, bio (line breaks preserved), avatar, verified badge, and counts are extracted; the entity type is detected from the page structure.
4. **Enrich** — for public channels, the `t.me/s/` web preview adds exact photos / videos / files / links counters (toggle with `channelStats`).
5. **Push** — one dataset row per entity, JSON or CSV.

### Input configuration

```json
{
    "startUrls": [
        "https://t.me/telegram",
        "https://t.me/+Zt3-XNsQ5h9jYWE8"
    ],
    "usernames": ["@durov"],
    "channelStats": true,
    "maxItems": 1000
}
````

| Field | Type | Default | Description |
|---|---|---|---|
| `startUrls` | array | — | t.me / telegram.me links — any mix of channels, groups, bots, invite links |
| `usernames` | array | `[]` | Bare handles as an alternative to full URLs |
| `channelStats` | boolean | `true` | Fetch photo/video/file/link counters for public channels (1 extra request each) |
| `maxItems` | integer | `1000` | Hard cap on entities scraped in the run |
| `maxConcurrency` | integer | `10` | Parallel requests |
| `proxy` | object | none | Optional — t.me needs no proxy; direct is fastest |

### Output overview

One row per Telegram entity:

```json
{
    "url": "https://t.me/+Zt3-XNsQ5h9jYWE8",
    "username": null,
    "fullName": "SOLANA SUMMER",
    "bio": "Com : https://t.me/+Zt3-XNsQ5h9jYWE8\n\nChannel : https://t.me/Solanasummmers",
    "avatarUrl": "https://cdn4.telesco.pe/file/NFdH2M17pF...jpg",
    "memberCounts": 456,
    "type": "group",
    "subscribers": null,
    "members": 456,
    "online": 80,
    "monthlyUsers": null,
    "verified": false,
    "inviteHash": "Zt3-XNsQ5h9jYWE8",
    "scrapedAt": "2026-07-15T21:13:58.521Z"
}
```

Public channels additionally include:

```json
{
    "fullName": "Telegram News",
    "username": "telegram",
    "type": "channel",
    "subscribers": 10075225,
    "memberCounts": 10075225,
    "verified": true,
    "photos": 13,
    "videos": 222,
    "files": null,
    "links": 367
}
```

### Key output fields

| Field | Description |
|---|---|
| `fullName` | Display name of the channel / group / bot / user |
| `username` | Public handle; `null` for private invite-link entities |
| `bio` | Description text with line breaks preserved |
| `avatarUrl` | Profile photo on Telegram's CDN (`telesco.pe`) |
| `memberCounts` | Headline count — subscribers (channels), members (groups), monthly users (bots) |
| `type` | `channel` / `group` / `bot` / `user` — auto-detected |
| `subscribers` / `members` / `online` / `monthlyUsers` | Granular counts; only the ones the entity exposes are set |
| `verified` | Telegram's blue-check verification badge |
| `inviteHash` | The `+hash` part of invite links; `null` for public entities |
| `photos` / `videos` / `files` / `links` | Content counters (public channels with `channelStats: true`) |

### FAQ

**Do I need a Telegram account or API key?**
No. The actor reads Telegram's public t.me preview pages — no account, no `api_id`/`api_hash`, no phone number, no session string.

**Does it work with private invite links?**
Yes — that's a headline feature. `t.me/+hash` links return the entity's name, bio, avatar, member count, and online count without joining. The `username` field is `null` for these because Telegram doesn't expose it pre-join.

**Can it scrape channel messages/posts?**
No — this actor is for channel *metadata*. Message scraping is a different (and much heavier) problem. If you paste a post URL, the actor resolves it to the channel and returns the channel's data.

**Can it search for channels by keyword?**
No — Telegram has no public channel search. Feed it links or usernames from your own sources (websites, social media, directories).

**Are member counts exact?**
Yes for the headline counts — they come from the live page (e.g. `10 075 225 subscribers`). The photo/video/link counters for very large channels are Telegram's own values.

**What happens with dead or invalid links?**
Unrecognizable inputs are reported and skipped at the start; deleted/invalid entities are logged and skipped without producing a row. You only pay for actual results.

**Does it expose emails or phone numbers?**
No — Telegram doesn't publish these on preview pages, so the actor can't (and doesn't pretend to) return them.

### Support

- **Issues tab** — fastest way to report a problem or request a field; I typically respond within 24 hours.
- The actor sends me automatic failure alerts, so broken runs are usually being fixed before you write in.

### Additional services

Need a custom pipeline (channel-growth tracking, invite-link resolution at scale, integration with your CRM), a private variant of this actor, or a scraper for another platform? Reach out via the Issues tab or my Apify profile — custom work is available.

### Explore more scrapers

Check my Apify profile for more scrapers — jobs (LinkedIn, Indeed, Glassdoor, Upwork), real estate (Zillow, Realtor, Rightmove, ImmoScout24, Idealista), reviews (Trustpilot, Glassdoor), travel (Expedia), and many more directory and listing sites.

### ⚠️ Disclaimer

This actor collects only **publicly available data** from Telegram's public t.me preview pages — the same information any logged-out visitor sees in a browser. It does not access private content, does not join groups or channels, does not read messages, and does not bypass any authentication. You are responsible for how you use the data: comply with Telegram's Terms of Service, applicable data-protection laws (GDPR, CCPA), and platform policies in your jurisdiction. This actor is not affiliated with or endorsed by Telegram.

### SEO Keywords

telegram channel scraper, telegram scraper, scrape telegram channel, telegram channel info, telegram members count scraper, telegram invite link resolver, t.me scraper, telegram group scraper, telegram bot scraper, telegram channel metadata, telegram subscriber count, telegram channel analytics, extract telegram channel data, telegram channel details api, telegram osint, telegram channel lookup, bulk telegram channel checker, telegram channel export, telegram data extraction, scrape t.me links

# Actor input Schema

## `startUrls` (type: `array`):

Full t.me URLs — one channel, group, bot, or user per link. Private invite links (t.me/+hash) are supported: they return the entity's name, bio, avatar, and member count without joining.

## `usernames` (type: `array`):

Bare Telegram handles, with or without the @ — e.g. `@telegram` or `durov`. Merged with the URL list above and deduplicated.

## `channelStats` (type: `boolean`):

For public channels, also fetch the t.me/s/ web preview to add exact photos, videos, files, and links counters to the output. Adds one extra HTTP call per public channel. Groups, bots, and invite-link entities are unaffected.

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

Hard cap on the number of Telegram entities scraped in this run. Use it to limit billing on large link lists.

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

Maximum number of t.me pages processed in parallel.

## `minConcurrency` (type: `integer`):

Minimum number of t.me pages processed in parallel.

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

Number of retries before a failed request is given up.

## `proxy` (type: `object`):

t.me is served from Telegram's edge with no anti-bot, so no proxy is needed — direct connections are fastest. Configure a proxy here only if your infrastructure requires one.

## Actor input object example

```json
{
  "startUrls": [
    "https://t.me/telegram",
    "https://t.me/durov"
  ],
  "usernames": [],
  "channelStats": true,
  "maxItems": 1000,
  "maxConcurrency": 10,
  "minConcurrency": 1,
  "maxRequestRetries": 5,
  "proxy": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "startUrls": [
        "https://t.me/telegram",
        "https://t.me/durov"
    ],
    "usernames": [],
    "proxy": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/telegram-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 = {
    "startUrls": [
        "https://t.me/telegram",
        "https://t.me/durov",
    ],
    "usernames": [],
    "proxy": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("memo23/telegram-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 '{
  "startUrls": [
    "https://t.me/telegram",
    "https://t.me/durov"
  ],
  "usernames": [],
  "proxy": {
    "useApifyProxy": false
  }
}' |
apify call memo23/telegram-channel-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Telegram Channel Scraper — members, bio & invite links",
        "description": "Turn any list of t.me links into structured channel intelligence — names, bios, avatars, live member counts, verified badges, content counters. Resolves private invite links without joining. Channels, groups, bots & users auto-detected. No API key, no login, no proxy needed.",
        "version": "0.0",
        "x-build-id": "x7aND2oFzcAbd9PL3"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/memo23~telegram-channel-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-memo23-telegram-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/memo23~telegram-channel-scraper/runs": {
            "post": {
                "operationId": "runs-sync-memo23-telegram-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/memo23~telegram-channel-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-memo23-telegram-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",
                "properties": {
                    "startUrls": {
                        "title": "t.me URLs",
                        "type": "array",
                        "description": "Full t.me URLs — one channel, group, bot, or user per link. Private invite links (t.me/+hash) are supported: they return the entity's name, bio, avatar, and member count without joining.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "usernames": {
                        "title": "Usernames (alternative to URLs)",
                        "type": "array",
                        "description": "Bare Telegram handles, with or without the @ — e.g. `@telegram` or `durov`. Merged with the URL list above and deduplicated.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "channelStats": {
                        "title": "Fetch channel content counters (photos / videos / files / links)",
                        "type": "boolean",
                        "description": "For public channels, also fetch the t.me/s/ web preview to add exact photos, videos, files, and links counters to the output. Adds one extra HTTP call per public channel. Groups, bots, and invite-link entities are unaffected.",
                        "default": true
                    },
                    "maxItems": {
                        "title": "Maximum items to scrape",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Hard cap on the number of Telegram entities scraped in this run. Use it to limit billing on large link lists.",
                        "default": 1000
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of t.me pages processed in parallel.",
                        "default": 10
                    },
                    "minConcurrency": {
                        "title": "Min concurrency",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Minimum number of t.me pages processed in parallel.",
                        "default": 1
                    },
                    "maxRequestRetries": {
                        "title": "Max request retries",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Number of retries before a failed request is given up.",
                        "default": 5
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "t.me is served from Telegram's edge with no anti-bot, so no proxy is needed — direct connections are fastest. Configure a proxy here only if your infrastructure requires one.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
