# YouTube Shorts Scraper (`scrapevanta/youtube-shorts-scraper`) Actor

YouTube Shorts Scraper extracts Shorts data including titles, descriptions, views, likes, comments, publish dates, hashtags, channel details, and video URLs. Ideal for content research, trend analysis, competitor monitoring, influencer discovery, and social media analytics.

- **URL**: https://apify.com/scrapevanta/youtube-shorts-scraper.md
- **Developed by:** [ScrapeVanta](https://apify.com/scrapevanta) (community)
- **Categories:** Automation, Lead generation, Videos
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.99 / 1,000 results

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

### YouTube Shorts Scraper 🚀

Copying YouTube Shorts details from creators one by one is slow—and it breaks your workflow when you need batch metadata fast. **YouTube Shorts Scraper** pulls Shorts URLs and structured video + channel data from YouTube Shorts at scale. This YouTube shorts scraper is perfect when you’re building a creator list, researching engagement, or preparing inputs for a YouTube Shorts video downloader–style pipeline. It’s built for marketers, data analysts, and researchers who need clean results without manual copy-paste. In one run, you can collect up to a configurable limit per channel in minutes.

---

### See the Data: Sample Output

Here's a real record from a single run:

```json
{
  "title": "How I Edit Shorts in 30 Minutes",
  "type": "shorts",
  "id": "dQw4w9WgXcQ",
  "url": "https://www.youtube.com/shorts/dQw4w9WgXcQ",
  "thumbnailUrl": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg",
  "viewCount": 1283400,
  "date": "2025-02-14",
  "likes": 21450,
  "channelName": "Creator Studio Lab",
  "channelUrl": "https://www.youtube.com/channel/UC1234567890ABCDEF",
  "channelUsername": "@creatorstudiolab",
  "channelDescription": "Weekly tips on making better Shorts. Follow for edits, templates, and experiments.",
  "channelAvatarUrl": "https://i.ytimg.com/vi/dQw4w9WgXcQ/default.jpg",
  "channelTotalVideos": 312,
  "channelTotalViews": 48291000,
  "numberOfSubscribers": 256000,
  "isChannelVerified": false,
  "inputChannelUrl": "https://www.youtube.com/@creatorstudiolab/shorts",
  "isAgeRestricted": false,
  "duration": "00:00:45",
  "commentsCount": 1820,
  "order": 1,
  "commentsTurnedOff": false,
  "hashtags": [
    "#shorts",
    "#editing",
    "#creator"
  ],
  "isPaidContent": false,
  "status": "success"
}
````

| Field | Type | What It Tells You |
|---|---|---|
| `title` | string | The Shorts title—useful for filtering and reporting themes. |
| `type` | string | Identifies the record type as `"shorts"` for consistent downstream processing. |
| `id` | string | The Shorts video ID for linking, deduping, or building URLs. |
| `url` | string | Direct link to the Shorts page for manual review or sharing. |
| `thumbnailUrl` | string | A ready-to-use thumbnail image URL for dashboards and creative reviews. |
| `viewCount` | number | Views at scrape time to quickly gauge reach and performance. |
| `date` | string | Upload/publish date so you can analyze trends over time. |
| `likes` | number | Like count for engagement scoring and creator comparison. |
| `channelName` | string | Creator name to label your dataset and summarize findings. |
| `channelUrl` | string | Channel link for verification and quick navigation. |
| `channelUsername` | string | The channel handle (when available) for cleaner display and matching. |
| `channelDescription` | string | Bio/description text for context, segmentation, and research notes. |
| `numberOfSubscribers` | number | Audience size indicator for ranking creators and lead tiers. |
| `duration` | string | Shorts length (when available) to group performance by format. |
| `commentsCount` | number | Conversation volume for engagement depth analysis. |
| `hashtags` | array | Hashtag extraction from the description/title for topical clustering. |
| `order` | number | The Shorts position within the processed set for that start URL. |
| `status` | string | Indicates whether the record was scraped successfully (or if you need to handle errors). |

Export your full dataset as JSON, CSV, or Excel from the Apify dashboard.

***

### Setting It Up

Drop this into your `input.json` and you're ready to go:

```json
{
  "startUrls": [
    "https://www.youtube.com/@AIDIGICHAOS/shorts"
  ],
  "limit": 30
}
```

| Parameter | Required | What It Does |
|---|---|---|
| `startUrls` | ✅ | List of YouTube channel Shorts URLs (a single short URL is also accepted). |
| `limit` | ⬜ | Maximum number of shorts to scrape per channel (minimum `1`, default `30`). |

***

### What It Does

YouTube Shorts Scraper collects Shorts URLs from the provided channel pages, then pulls structured metadata for each Shorts entry.

#### Shorts metadata extracted into structured records

For each Shorts URL, it returns fields like `title`, `url`, `thumbnailUrl`, `viewCount`, `date`, `likes`, `duration`, and `commentsCount` so you can analyze performance without re-scraping manually.

#### Channel context included with each record

Alongside the video fields, the actor includes channel-level info such as `channelName`, `channelUrl`, `channelUsername`, `channelDescription`, `numberOfSubscribers`, and other channel metrics when available—helpful for segmentation and reporting.

#### Hashtags are derived from Shorts text content

It extracts hashtags into the `hashtags` array from the combined description/title content, making it easier to build a topical map for your viral YouTube Shorts scraper workflow.

#### Built-in batch controls for YouTube Shorts scraping tool runs

Using your `startUrls` list and `limit`, you can control how many Shorts get processed per channel, which is ideal for a YouTube Shorts data scraper pipeline feeding analytics, outreach lists, or content research.

#### Output is ready to plug into your workflow

Every processed Shorts generates a consistent JSON object that you can export directly from the Apify dataset—use it as input for a YouTube Shorts video downloader workflow, reporting dashboards, or research exports.

Overall, this YouTube shorts scraper turns scattered publicly available Shorts pages into clean, integration-friendly data.

***

### Why YouTube Shorts Scraper?

There are plenty of ways to pull data from YouTube Shorts—here’s why YouTube Shorts Scraper stands out.

#### Designed for quick batch results per channel

Instead of scraping one Short at a time, the actor works from your `startUrls` and pulls up to `limit` Shorts per channel, so you can move from discovery to analysis faster.

#### Structured output with clear linkage fields

Each record includes both the Shorts `url` and the `id`, plus channel fields like `channelUrl` and `channelUsername`, so it’s straightforward to dedupe, enrich, or join with other datasets later.

#### Uses your provided inputs to control scope

By supplying channel Shorts URLs (or a single short URL) and setting `limit`, you define exactly what to scrape, which makes the YouTube Shorts API scraper approach practical even for smaller research batches.

***

### Real-World Use Cases

Here's how different teams put YouTube Shorts Scraper to work:

**Marketing teams** use it to build a creator research list by pulling Shorts performance signals like `viewCount`, `likes`, and `commentsCount` and then enriching the same dataset with channel context such as `numberOfSubscribers` and `channelDescription`.

**Sales and lead researchers** run YouTube Shorts scraping tool batches to compare creator audiences and engagement depth, then export the dataset to CSV/Excel for segmentation and outreach prioritization.

**Content analysts** use the `date`, `duration`, and extracted `hashtags` to study what formats and topics correlate with higher views—without manually collecting metadata across many Shorts.

**Automation specialists** integrate the results into their pipelines by triggering runs, then consuming the dataset output programmatically through Apify so the extracted Shorts metadata becomes a reliable upstream feed for their dashboards.

**Freelance researchers** use the consistent fields (`title`, `url`, `thumbnailUrl`, `channelUrl`) to produce repeatable research deliverables for clients, even when the creator roster changes week to week.

***

### How to Run It

No code required. Here's how to get your first results in under 5 minutes:

1. **Open the actor on Apify** — go to the actor page at [console.apify.com](https://console.apify.com).
2. **Enter your inputs** — add your channel Shorts URL(s) in `startUrls` and set `limit` (default is `30`, minimum is `1`).
3. **Configure proxy settings (if needed)** — enable proxy support for reliability on larger batches.
4. **Start the run** — monitor progress in the live logs.
5. **Open the Dataset tab** — you’ll see Shorts records saved as the run processes videos.
6. **Export your data** — download JSON/CSV/Excel from the dataset tab when the run finishes.

The whole setup takes under 5 minutes — results start appearing within seconds of launch.

***

### Export & Integration Options

Once your data is collected, YouTube Shorts Scraper fits directly into your existing workflow.

You can export results from the Apify dashboard as JSON, CSV, or Excel. If you’re building a YouTube Shorts downloader–style pipeline, the dataset already contains direct `url` links plus `id` values for easy downstream use.

For automation and system integration, you can connect runs to your workflow using Apify’s API and automation options such as webhooks, Zapier, or Make (depending on your preferred stack). You can also schedule runs for ongoing research and periodic refreshes.

***

### Pricing

YouTube Shorts Scraper runs on Apify, which includes a **free tier** — no credit card needed to start. Free usage typically covers several real test runs, which is great for validating your limit and start URL list before scaling up. For larger workloads, you’ll pay as you go based on Apify compute units (CU), and Apify offers plans for heavier ongoing usage. Start free at [apify.com](https://apify.com) — scale up when you need to.

***

### Reliability & Limitations

| What We Handle | How |
|---|---|
| Retries & fallbacks | Retries are built in for network fetches to improve resilience. |
| Proxy support | Includes built-in proxy support for more reliable scraping runs. |
| Partial progress | Results are pushed to the dataset as videos are processed. |
| Missing data | If a field can’t be found, it may be missing or set to `null` in the returned record. |

**Limitations:** The actor works on data available from publicly accessible YouTube content. If a Shorts page or channel page is not accessible as expected, some fields may be unavailable for that specific record. Private or login-gated content is out of scope.

For enterprise-scale needs or custom configurations, reach out and we’ll help.

***

### Frequently Asked Questions

#### Is there a free plan?

Yes. Apify provides a free tier with usage credits so you can run YouTube Shorts Scraper and test your inputs before committing to paid usage.

#### Do I need to log in or create an account on YouTube?

No. The actor is designed to scrape publicly available YouTube Shorts data from the URLs you provide in `startUrls`.

#### How accurate is the extracted data?

Accuracy depends on what’s publicly visible on each Shorts and channel page at the time of the run. The actor extracts the metadata fields it can detect and stores them in the dataset output.

#### How many results can I get per run?

You control the number of Shorts per channel using the `limit` input. The actor targets up to `limit` shorts for each provided channel start URL.

#### How fresh is the data?

Data is as fresh as the scrape time. If you need updated view/like counts or recent Shorts, schedule recurring runs and re-export the dataset.

#### Is this legal? Does it comply with GDPR / CCPA?

The actor works with **publicly available data** from YouTube Shorts pages. It’s your responsibility to comply with GDPR, CCPA, YouTube’s Terms of Service, and any local regulations when collecting, storing, or using the dataset.

#### Can I export to Google Sheets or Excel?

Yes. You can export from the Apify dataset tab as JSON, CSV, or Excel, then import into Google Sheets or other tools that accept those formats.

#### Can I schedule this to run automatically?

Yes. Use Apify scheduling (via the platform) to run YouTube Shorts Scraper automatically on a recurring schedule.

#### Can I access results via the API?

Yes. Results are saved to the Apify dataset, and you can retrieve them programmatically using the Apify API.

#### What happens when the actor encounters an error?

The run continues to the extent possible and pushes successful results to the dataset. For Shorts where data can’t be fetched or parsed, fields may be missing or the record may not be produced.

***

### Get Help & Use Responsibly

Got a question about YouTube Shorts Scraper or a feature you'd like added? Reach out at <dataforleads@gmail.com>. We’re actively maintaining the actor and can help with ideas like better filtering for batch YouTube Shorts metadata scraper runs or adding more structured fields for your research outputs.

\*\* public available data\*\* on YouTube Shorts pages. It does not access private accounts, login-gated pages, or password-protected content. You’re responsible for GDPR, CCPA, and YouTube’s Terms of Service when using the results. For data removal requests, contact <dataforleads@gmail.com>. Use responsibly, ethically, and only for lawful purposes.

# Actor input Schema

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

List of YouTube channel shorts URLs (e.g., https://www.youtube.com/@AIDIGICHAOS/shorts or a single short URL).

## `limit` (type: `integer`):

Maximum number of shorts to scrape per channel.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.youtube.com/@AIDIGICHAOS/shorts"
    }
  ],
  "limit": 30
}
```

# 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": [
        {
            "url": "https://www.youtube.com/@AIDIGICHAOS/shorts"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapevanta/youtube-shorts-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": [{ "url": "https://www.youtube.com/@AIDIGICHAOS/shorts" }] }

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "YouTube Shorts Scraper",
        "description": "YouTube Shorts Scraper extracts Shorts data including titles, descriptions, views, likes, comments, publish dates, hashtags, channel details, and video URLs. Ideal for content research, trend analysis, competitor monitoring, influencer discovery, and social media analytics.",
        "version": "1.0",
        "x-build-id": "OoFTGdSrshWGP5QIG"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapevanta~youtube-shorts-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapevanta-youtube-shorts-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/scrapevanta~youtube-shorts-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapevanta-youtube-shorts-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/scrapevanta~youtube-shorts-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapevanta-youtube-shorts-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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "YouTube Channel Shorts URLs",
                        "type": "array",
                        "description": "List of YouTube channel shorts URLs (e.g., https://www.youtube.com/@AIDIGICHAOS/shorts or a single short URL).",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "limit": {
                        "title": "Limit",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of shorts to scrape per channel.",
                        "default": 30
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
