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

Want to find viral Shorts faster? This actor scrapes all Shorts from a YouTube channel and returns a structured dataset with titles, view counts, thumbnails, and Shorts links. Ideal for creators, agencies, marketers, and researchers.

- **URL**: https://apify.com/igview-owner/youtube-shorts-scraper.md
- **Developed by:** [Sachin Kumar Yadav](https://apify.com/igview-owner) (community)
- **Categories:** Social media, Videos, Developer tools
- **Stats:** 25 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.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

Extract all YouTube Shorts from any channel with comprehensive metadata including titles, view counts, thumbnails, dimensions, and URLs. Perfect for YouTube Shorts analytics, trending analysis, content research, and viral content monitoring.

### Table of Contents

- [Features](#features)
- [How to Use](#how-to-use)
- [Input Parameters](#input-parameters)
- [Output Data](#output-data)
- [Best Practices](#best-practices)
- [FAQ](#faq)

---

### Features

| Feature | Description |
|---------|-------------|
| **Channel Username Support** | Extract Shorts using YouTube channel username (@YouTube, @MrBeast, etc.) |
| **Complete Shorts Metadata** | Get Short titles, view counts, thumbnails, and dimensions |
| **High-Quality Thumbnails** | Vertical format thumbnail URLs (1080x1920 or 720x1280) |
| **Sorting Options** | Sort by newest, popular, or oldest Shorts |
| **Flexible Limits** | Control how many Shorts to scrape (0-5000) |
| **Channel Information** | Get channel metadata including subscriber count and video count |
| **Pagination Support** | Automatic pagination to fetch all available Shorts |
| **Localization Support** | Choose from 30+ countries and languages for localized content |
| **Clean Table Views** | Organized data views with thumbnails for easy browsing |
| **Fast & Reliable** | Built-in error handling with user-friendly messages |

---

### How to Use

#### Step 1: Find YouTube Channel Username

To find a YouTube channel username:
1. Visit the YouTube channel
2. Look at the URL or channel handle (e.g., `@YouTube`, `@MrBeast`, `@NASA`)
3. Copy the username without the `@` symbol

**Note:** Not all channels have Shorts. Make sure the channel you're scraping has Shorts content.

#### Step 2: Configure Input

**Basic Example:**
```json
{
  "channelUsername": "YouTube",
  "sortBy": "newest",
  "maxShorts": 50,
  "geo": "US",
  "lang": "en"
}
````

**Scrape Popular Shorts:**

```json
{
  "channelUsername": "MrBeast",
  "sortBy": "popular",
  "maxShorts": 100,
  "geo": "IN",
  "lang": "hi"
}
```

**Scrape All Available Shorts:**

```json
{
  "channelUsername": "YouTube",
  "sortBy": "newest",
  "maxShorts": 0
}
```

#### Step 3: Run the Actor

Click "Start" and the actor will extract Shorts from the channel.

***

### Input Parameters

| Parameter | Type | Required | Description | Default | Example |
|-----------|------|----------|-------------|---------|---------|
| `channelUsername` | String | | YouTube channel username (without @) | - | `"YouTube"` |
| `sortBy` | String | | Sort Shorts by newest, popular, or oldest | `"newest"` | `"popular"` |
| `maxShorts` | Integer | | Maximum Shorts to scrape (0 for unlimited) | `30` | `100` |
| `geo` | String | | Country/region code (ISO 3166-2) | `"US"` | `"IN"` |
| `lang` | String | | Language code for localized results | `"en"` | `"hi"` |

#### Input Details

**channelUsername** (Required)

- YouTube channel username without the `@` symbol
- Examples: `YouTube`, `MrBeast`, `NASA`, `Veritasium`
- This is the handle that appears in the channel URL
- Make sure the channel has Shorts content

**sortBy** (Optional)

- Sort Shorts by:
  - `newest`: Latest Shorts first (default)
  - `popular`: Most viewed Shorts first
  - `oldest`: Earliest Shorts first

**maxShorts** (Optional)

- Maximum number of Shorts to scrape
- Range: 0-5000 Shorts
- Default: 30 Shorts
- Set to 0 for unlimited (scrape all available Shorts)
- Each page returns approximately 12-30 Shorts

**geo** (Optional)

- Select from 31 countries including:
  - United States, United Kingdom, Canada, India, Australia
  - Germany, France, Japan, Brazil, Mexico
  - And 21 more countries
- Affects which Shorts and content are shown based on regional availability and trending topics

**lang** (Optional)

- Select from 30 languages including:
  - English, Hindi, Spanish, French, German
  - Italian, Portuguese, Japanese, Korean, Chinese
  - And 20 more languages including regional Indian languages

***

### Output Data

#### Sample Channel Metadata Output

```json
{
  "itemType": "channel_metadata",
  "channelId": "UCBR8-60-B28hp2BmDPdntcQ",
  "title": "YouTube",
  "description": "like & subscribe",
  "channelHandle": "@YouTube",
  "avatar": "https://yt3.googleusercontent.com/3s6evpqAiDU9tQR4sC2siJippbH2RWVPnwHgyl4V0th2iuQz0VDQZbUhQBGmsxLYo-mjG6TqZQ=s160-c-k-c0x00ffffff-no-rj",
  "banner": "https://yt3.googleusercontent.com/P8mZnDuGAB-OQBE70IPiTQ-8-h9Ye6AU2pcTxc-Il4c_GQk0n_sHGuVRmm9g_sgnZ7KdIu4TlQ=w2560-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj",
  "subscriberCountText": "44.3M",
  "videosCountText": "1.2K videos"
}
```

#### Sample Short Output

```json
{
  "itemType": "short",
  "videoId": "8Cdx6rR6x_U",
  "title": "you've been upgraded ✈️ by Veo in Shorts",
  "viewCountText": "16K views",
  "thumbnail": "https://i.ytimg.com/vi/8Cdx6rR6x_U/frame0.jpg",
  "thumbnails": [
    {
      "url": "https://i.ytimg.com/vi/8Cdx6rR6x_U/frame0.jpg",
      "width": 720,
      "height": 1280
    }
  ],
  "width": 720,
  "height": 1280,
  "isOriginalAspectRatio": true,
  "channelId": "UCBR8-60-B28hp2BmDPdntcQ",
  "channelTitle": "YouTube",
  "channelHandle": "@YouTube",
  "shortUrl": "https://www.youtube.com/shorts/8Cdx6rR6x_U"
}
```

#### Output Fields

##### Channel Metadata Fields

| Field | Type | Description |
|-------|------|-------------|
| `itemType` | String | Type of item (`channel_metadata`) |
| `channelId` | String | Unique YouTube channel ID |
| `title` | String | Channel name |
| `description` | String | Channel description |
| `channelHandle` | String | Channel handle (e.g., @YouTube) |
| `avatar` | String | Channel avatar/profile picture URL |
| `banner` | String | Channel banner image URL |
| `subscriberCountText` | String | Formatted subscriber count (e.g., "27M") |
| `videosCountText` | String | Formatted video count (e.g., "5.4K videos") |

##### Short Fields

| Field | Type | Description |
|-------|------|-------------|
| `itemType` | String | Type of item (`short`) |
| `videoId` | String | Unique YouTube video ID |
| `title` | String | Short title |
| `viewCountText` | String | Formatted view count (e.g., "16K views") |
| `thumbnail` | String | Short thumbnail URL (vertical format) |
| `thumbnails` | Array | Array of thumbnail objects with different sizes |
| `width` | Integer | Thumbnail width (typically 720 or 1080) |
| `height` | Integer | Thumbnail height (typically 1280 or 1920) |
| `isOriginalAspectRatio` | Boolean | Whether thumbnail maintains original aspect ratio |
| `channelId` | String | Channel ID |
| `channelTitle` | String | Channel name |
| `channelHandle` | String | Channel handle (e.g., @YouTube) |
| `shortUrl` | String | Direct URL to the Short (youtube.com/shorts/...) |

***

### Best Practices

#### Do's

- Use correct channel usernames (without @ symbol)
- Verify the channel has Shorts content before scraping
- Select appropriate geo/lang for your target audience
- Export data immediately after extraction
- Use pagination to get all available Shorts (set maxShorts to 0)
- Check the clean table view with thumbnails

#### Don'ts

- Don't include @ symbol in channel username
- Don't ignore error messages
- Don't expect data from channels without Shorts
- Don't expect data from deleted/suspended channels
- Don't forget to check data completeness

***

### FAQ

#### How do I find a YouTube channel username?

Visit the YouTube channel and look at the URL or the channel handle displayed on the page. It's usually shown as `@ChannelName`. Copy just the name part without the `@` symbol.

#### What's the difference between geo and lang?

- **geo**: Controls which Shorts are shown based on regional availability and trending topics (some Shorts may be restricted in certain countries)
- **lang**: Controls the language of UI elements and localized content

#### Can I extract from private or unlisted channels?

No, only public YouTube channels are supported. The actor cannot access private or unlisted content.

#### How long does extraction take?

Typically 10-60 seconds depending on the number of Shorts being scraped and network conditions. More Shorts take longer to extract. Pagination adds approximately 2-3 seconds per page.

#### What data formats are supported?

The actor outputs data in JSON format, which can be exported to CSV, Excel, or other formats from the Apify platform.

#### How many Shorts can I scrape?

You can scrape from 0 to 5000 Shorts per run. Set the `maxShorts` parameter to control the limit. Set it to 0 for unlimited scraping (all available Shorts). The actor will extract Shorts based on your selected sorting option (newest, popular, or oldest).

#### Can I run this actor multiple times?

Yes, you can run the actor as many times as needed. Each run is independent.

***

### 🏷️ Tags

**YouTube Scraper** • **YouTube Shorts Scraper** • **YouTube Shorts Data Extractor** • **YouTube Shorts Analytics** • **Channel Shorts Metadata Extractor** • **YouTube Video Scraper** • **Shorts Social Media Analytics** • **Content Research Tool** • **YouTube Automation** • **Channel Monitoring** • **YouTube Intelligence** • **Video Analytics** • **YouTube SEO** • **Content Strategy Tool** • **Shorts Competitive Analysis** • **YouTube Shorts Research** • **Channel Analytics** • **YouTube Shorts Data Mining** • **Social Listening** • **Brand Monitoring**

***

### Get Started Now

**Ready to extract YouTube Shorts data?**

1. Enter the **YouTube channel username** (without @)
2. Set **maxShorts** (0 for unlimited)
3. Select your preferred **sorting**, **region**, and **language**
4. Click "Start" to run the actor
5. View results in clean table views with thumbnails
6. Export data in your preferred format
7. Click ["Try for free"](https://apify.com?fpr=ykgg9c) to test the actor

**If this actor helps your workflow, please give it a star!**

Looking for more YouTube data? Check out these complementary actors:

- **[YouTube Video Downloader](https://apify.com/igview-owner/youtube-video-downloader-api)**
- **[YouTube Comment Scraper](https://apify.com/igview-owner/youtube-comment-finder)**
- **[YouTube Search Scraper](https://apify.com/igview-owner/youtube-search-scraper)**
- **[YouTube Video Scraper](https://apify.com/igview-owner/youtube-video-details-scraper)**
- **[YouTube Subtitles Scraper](https://apify.com/igview-owner/youtube-subtitles-scraper)**
- **[YouTube Transcript Scraper](https://apify.com/igview-owner/youtube-transcript-scraper)**
- **[YouTube Channel Videos Scraper](https://apify.com/igview-owner/youtube-channel-videos-scraper)**

***

*Built with ❤️ by Sachin Kumar Yadav using Apify Platform*

# Actor input Schema

## `channelUsername` (type: `string`):

🔤 Enter the channel username (e.g., YouTube, MrBeast, NASA, etc.). Must be 3-30 characters, can contain letters, numbers, underscores, hyphens, periods. Cannot start or end with symbols. Do not include '@' symbol.

## `sortBy` (type: `string`):

🔄 Choose how to sort the Shorts. Newest shows latest Shorts first, Popular shows most viewed Shorts, Oldest shows earliest Shorts first.

## `maxShorts` (type: `integer`):

📦 Maximum number of Shorts to scrape. Set to 0 for unlimited (scrape all available Shorts). Recommended: 30-100 for faster results. Each page returns approximately 12-30 Shorts.

## `geo` (type: `string`):

🗺️ Select the country/region for localized content. Different regions may show different Shorts based on availability and regional trends.

## `lang` (type: `string`):

🌐 Select the language for localized results. This affects Shorts titles and metadata language.

## Actor input object example

```json
{
  "channelUsername": "YouTube",
  "sortBy": "newest",
  "maxShorts": 30,
  "geo": "US",
  "lang": "en"
}
```

# Actor output Schema

## `overview` (type: `string`):

Complete overview of all extracted items including channel metadata and all Shorts with thumbnails, titles, views, and URLs.

# 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 = {
    "channelUsername": "YouTube",
    "sortBy": "newest",
    "maxShorts": 30,
    "geo": "US",
    "lang": "en"
};

// Run the Actor and wait for it to finish
const run = await client.actor("igview-owner/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 = {
    "channelUsername": "YouTube",
    "sortBy": "newest",
    "maxShorts": 30,
    "geo": "US",
    "lang": "en",
}

# Run the Actor and wait for it to finish
run = client.actor("igview-owner/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 '{
  "channelUsername": "YouTube",
  "sortBy": "newest",
  "maxShorts": 30,
  "geo": "US",
  "lang": "en"
}' |
apify call igview-owner/youtube-shorts-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "YouTube Shorts Scraper",
        "description": "Want to find viral Shorts faster? This actor scrapes all Shorts from a YouTube channel and returns a structured dataset with titles, view counts, thumbnails, and Shorts links. Ideal for creators, agencies, marketers, and researchers.",
        "version": "1.0",
        "x-build-id": "KHSVVXsXkQPIvc5ly"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/igview-owner~youtube-shorts-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-igview-owner-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/igview-owner~youtube-shorts-scraper/runs": {
            "post": {
                "operationId": "runs-sync-igview-owner-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/igview-owner~youtube-shorts-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-igview-owner-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": [
                    "channelUsername"
                ],
                "properties": {
                    "channelUsername": {
                        "title": "📺 YouTube Channel Username",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{1,28}[A-Za-z0-9]$",
                        "minLength": 3,
                        "maxLength": 30,
                        "type": "string",
                        "description": "🔤 Enter the channel username (e.g., YouTube, MrBeast, NASA, etc.). Must be 3-30 characters, can contain letters, numbers, underscores, hyphens, periods. Cannot start or end with symbols. Do not include '@' symbol.",
                        "default": "YouTube"
                    },
                    "sortBy": {
                        "title": "📊 Sort Shorts By",
                        "enum": [
                            "newest",
                            "popular",
                            "oldest"
                        ],
                        "type": "string",
                        "description": "🔄 Choose how to sort the Shorts. Newest shows latest Shorts first, Popular shows most viewed Shorts, Oldest shows earliest Shorts first.",
                        "default": "newest"
                    },
                    "maxShorts": {
                        "title": "🎯 Maximum Shorts to Scrape",
                        "minimum": 0,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "📦 Maximum number of Shorts to scrape. Set to 0 for unlimited (scrape all available Shorts). Recommended: 30-100 for faster results. Each page returns approximately 12-30 Shorts.",
                        "default": 30
                    },
                    "geo": {
                        "title": "🌍 Geographic Region",
                        "enum": [
                            "US",
                            "GB",
                            "CA",
                            "IN",
                            "AU",
                            "DE",
                            "FR",
                            "JP",
                            "BR",
                            "MX",
                            "ES",
                            "IT",
                            "NL",
                            "SE",
                            "NO",
                            "DK",
                            "FI",
                            "PL",
                            "RU",
                            "TR",
                            "SA",
                            "AE",
                            "KR",
                            "SG",
                            "MY",
                            "TH",
                            "PH",
                            "ID",
                            "VN",
                            "ZA",
                            "AR"
                        ],
                        "type": "string",
                        "description": "🗺️ Select the country/region for localized content. Different regions may show different Shorts based on availability and regional trends."
                    },
                    "lang": {
                        "title": "🗣️ Language Code",
                        "enum": [
                            "en",
                            "hi",
                            "es",
                            "fr",
                            "de",
                            "it",
                            "pt",
                            "ja",
                            "ko",
                            "zh",
                            "ar",
                            "ru",
                            "tr",
                            "nl",
                            "sv",
                            "no",
                            "da",
                            "fi",
                            "pl",
                            "th",
                            "vi",
                            "id",
                            "ms",
                            "tl",
                            "bn",
                            "ta",
                            "te",
                            "mr",
                            "gu",
                            "kn"
                        ],
                        "type": "string",
                        "description": "🌐 Select the language for localized results. This affects Shorts titles and metadata language."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
