# Youtube Video Downloader (`solid-scraper/youtube-video-downloader`) Actor

🎥✨ Download YouTube videos fast & safely with our YouTube Video Downloader. Save your favorite content in seconds—no hassle, great quality, easy controls. 🚀🔒 Perfect for creators, learners, and binge-watchers. Download now!

- **URL**: https://apify.com/solid-scraper/youtube-video-downloader.md
- **Developed by:** [SolidScraper](https://apify.com/solid-scraper) (community)
- **Categories:** Videos, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.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 Video Downloader 🎬

**YouTube Video Downloader** helps you download YouTube videos in your chosen resolution and get direct download links—plus optional storage upload for added convenience. Whether you’re looking to **download YouTube videos**, generate assets for content workflows, or build a repeatable **YouTube downloader online** pipeline, this actor streamlines the process with structured results you can reuse at scale.

---

### Why choose YouTube Video Downloader?

| Feature | Benefit |
|---|---|
| ✅ **Video URL list input** | Process multiple YouTube video URLs in a single run |
| ✅ **Choose your resolution** | Get the best available match for **8K**, **4K**, **2K**, **1080p**, **720p**, **480p**, or **360p** |
| ✅ **Direct downloadable links** | Outputs `downloadable_video_link` and `downloadable_audio_link` where available |
| ✅ **Resilient retries and fallbacks** | Handles failures with retries and fallback extraction strategies for better reliability |
| ✅ **Proxy support** | Built-in proxy configuration to improve consistency when downloading at scale |
| ✅ **Structured dataset output** | Writes a dataset with consistently labeled fields for easy analysis and exports |

---

### Key features

- 🎥 **Resolution-aware downloading**: Supports `8K`, `4K`, `2K`, `1080p`, `720p`, `480p`, and `360p` selections via `desired_resolution`
- 🔗 **Video and audio download links**: Returns `downloadable_video_link` and `downloadable_audio_link` when usable formats are found
- 🧾 **Complete video metadata**: Includes fields like `title`, `author`, `thumbnail`, `duration`, `channel`, and `video_type`
- 🛡️ **Reliability-focused handling**: Includes retries and fallback logic to improve success rate across different URLs
- 🌐 **Flexible input**: Accepts `video_urls` as a list, so you can run batch **download YouTube to MP4** and **download YouTube to MP3** style workflows (video/audio links depend on available formats)
- 💾 **Optional storage upload**: If you enable `upload_video_to_apify`, the actor uploads the 360p video to Apify Key-Value Store and returns `apify_storage_url`
- 📊 **Progressive format info for uploads**: When storage upload is enabled, it uses `best_progressive_format_info` to download the uploadable asset

---

### Input

Provide input via an `input.json` file. Example structure:

```json
{
  "video_urls": [
    {
      "url": "https://youtu.be/YZ84iQrbYjw?si=_8-Y64fWSGA82dOz"
    },
    {
      "url": "https://youtube.com/shorts/s9YG00vZ09c?si=fMtwzCARAHbcuJQu"
    }
  ],
  "desired_resolution": "2k",
  "upload_video_to_apify": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
````

#### Input Fields

| Field | Required | Description |
|---|---:|---|
| `video_urls` | ✅ | List of YouTube video URLs to process. This is the only required input. |
| `desired_resolution` | ❌ | Pick the resolution you want: `8K`, `4K`, `2K`, `1080p`, `720p`, `480p`, or `360p`. Default is `2k`. |
| `proxyConfiguration` | ❌ | Proxy settings (optional). If you don’t select a proxy, the actor automatically uses residential proxy as a recommended default approach. Only Residential (default) and Own proxies are available. |
| `upload_video_to_apify` | ❌ | If enabled, the actor uploads the **360p** video to Apify Key-Value Store and returns a download link. This may be slow. Default: `false`. |

***

### Output

The actor saves results in the Apify dataset as JSON records (one per input URL) via `await Actor.push_data(results_list)`.

Example output (single record):

```json
[
  {
    "original_url": "https://youtu.be/YZ84iQrbYjw?si=_8-Y64fWSGA82dOz",
    "requested_resolution": "2k",
    "provided_resolution": 1440,
    "download_type": "progressive",
    "downloadable_video_link": {
      "mp4": "https://example.com/video.mp4"
    },
    "downloadable_audio_link": "https://example.com/audio.m4a",
    "title": "N/A",
    "author": "N/A",
    "thumbnail": "N/A",
    "duration": "N/A",
    "channel": "N/A",
    "source": "youtube",
    "video_type": "Video",
    "note": "Requested 1440p found.",
    "prog_video_type": "Video+Audio",
    "prog_resolution": "1440p",
    "prog_video_format": "N/A",
    "prog_downloadable_link": {
      "url": "https://example.com/best-prog.mp4"
    },
    "best_progressive_format_info": {
      "resolution": 1440,
      "format": "mp4",
      "url": "https://example.com/best-prog.mp4",
      "format_id": "N/A",
      "bitrate_kbps": 0
    },
    "apify_storage_url": "https://example.com/apify-storage-link",
    "storage_note": "Upload successful",
    "status": "SUCCEEDED"
  }
]
```

#### Output Fields

| Field | Type | Description |
|---|---|---|
| `original_url` | string | The YouTube URL that was processed |
| `requested_resolution` | string | The resolution requested via `desired_resolution` |
| `provided_resolution` | number | The height actually provided for the downloadable video format |
| `download_type` | string | The download type chosen for `downloadable_video_link` (for example, whether it’s progressive or video-only) |
| `downloadable_video_link` | object | Direct downloadable video link (keyed by extension like `mp4`) |
| `downloadable_audio_link` | string | Direct downloadable audio link when available |
| `apify_storage_url` | string | null | Public URL to the uploaded video in Apify Key-Value Store (only when storage upload is enabled and succeeds) |
| `note` | string | A human-readable note about resolution selection (e.g., requested resolution found vs closest provided) |
| `prog_video_type` | string | Progressive download type label used for the progressive format info |
| `prog_resolution` | string | Progressive resolution label (e.g., `1440p`) |
| `prog_video_format` | string | Progressive format extension used for progressive downloading |
| `prog_downloadable_link` | object | Download link for the progressive format (`{"url": ...}`) |
| `title` | string | Video title |
| `author` | string | Video author/uploader |
| `thumbnail` | string | Thumbnail URL |
| `duration` | string | number | Duration formatted via `format_duration` |
| `channel` | string | Channel name (or uploader if `channel` is not present) |
| `source` | string | Data source label (`youtube`) |
| `video_type` | string | Either `Shorts` (duration < 61) or `Video` |
| `status` | string | Processing status: `SUCCEEDED` or failure marker depending on the run |
| `error` | string | Present on failures (when download/processing fails for a URL) |

> 💡 Export formats: In Apify, you can export the resulting dataset to common formats like JSON/CSV from the dataset UI (depending on your needs).

***

### How to use YouTube Video Downloader (via Apify Console)

1. **Open Apify Console**: Go to [console.apify.com](https://console.apify.com) and sign in.
2. **Find the actor**: Search for **YouTube Video Downloader** and open its actor page.
3. **Configure INPUT**: In the **INPUT** section, add your `video_urls` (a list of YouTube links).
4. **Choose resolution (optional)**: Set `desired_resolution` to one of: `8k`, `4k`, `2k`, `1080p`, `720p`, `480p`, `360p` (default is `2k`).
5. **Decide on storage upload (optional)**:\
   If you enable **Upload Video to Storage** (`upload_video_to_apify: true`), the actor uploads the **360p** video to Apify storage and returns `apify_storage_url`. Longer videos can take more time.
6. **(Optional) Proxy settings**: If you configure `proxyConfiguration`, use it when needed. If you don’t select a proxy, the actor uses residential as the recommended default approach.
7. **Run the actor**: Click **Run**. Watch the logs—if a download fails (especially for long videos), you can re-run with the failed URL(s).
8. **Access results**: When finished, open the dataset under **OUTPUT** and export your results (JSON/CSV) for your workflow.

No coding required—get direct **YouTube to MP4 downloader** and **YouTube MP3 downloader** style links in minutes.

***

### Advanced features & SEO optimization

- 🔍 **Engineered for YouTube video download workflows**: Built for recurring “download YouTube video” tasks where you want consistent output fields for downstream processing
- 📌 **Resolution selection with fallback**: If the exact requested height isn’t available, it provides the closest possible option and records it in `note` + `provided_resolution`
- 🛠️ **Storage-ready automation**: When you enable `upload_video_to_apify`, you get `apify_storage_url` to plug into content pipelines that prefer stored assets over transient links
- 🧠 **Metadata included automatically**: Helps you label assets quickly (title, author, thumbnail, duration, channel, and `video_type`)
- 🔄 **Resilience for long batches**: Retries and fallbacks are included to improve success when downloading lots of URLs, including Shorts and standard videos

***

### Best use cases

- 📈 **Content teams repurposing assets**: Download videos in a consistent resolution for editing, archiving, and batch publishing
- 🎯 **SEO and research workflows**: Build a structured dataset of video metadata plus direct downloadable links to speed up analysis
- 🎬 **Creator ops & media libraries**: Store 360p versions in Apify Key-Value Store using `upload_video_to_apify` for stable access
- 🧾 **Data analysts assembling link datasets**: Use dataset fields like `duration`, `channel`, `video_type`, and `provided_resolution` to categorize results
- 💻 **Automation pipelines for YouTube downloader online**: Integrate outputs into systems that require structured JSON for **YouTube video download** requests
- 🗂️ **Batch asset production**: Process many `video_urls` in one run to support scalable “download YouTube to MP4” style workflows

***

### Technical specifications

- **Supported Input Formats**
  - ✅ `video_urls` as a list (each item is a YouTube URL you want to process)
  - ✅ Optional `desired_resolution`
  - ✅ Optional `proxyConfiguration`
  - ✅ Optional `upload_video_to_apify` for storage upload (uploads the 360p video)

- **Proxy Support**
  - ✅ Uses the configured proxy setup from `proxyConfiguration`
  - ✅ Has an automatic recommended approach when no proxy is selected

- **Retry Mechanism**
  - ✅ Retries are used to improve reliability when processing/downloading fails

- **Dataset Structure**
  - ✅ One JSON record per input URL pushed via `Actor.push_data(results_list)`
  - ✅ Includes core metadata + direct link fields and (optionally) storage link fields

- **Limitations**
  - ❌ Storage upload may be slower, especially for longer videos
  - ❌ If a download fails, re-running with the failed URL(s) typically resolves it

***

### FAQ

#### Can I download YouTube videos in different qualities (HD / 4K / 8K)?

✅ Yes. Use `desired_resolution` to request `8k`, `4k`, `2k`, `1080p`, `720p`, `480p`, or `360p`. The output includes `provided_resolution` and a `note` explaining whether the exact resolution was found.

#### Will it also provide audio download links?

✅ It can. The actor outputs `downloadable_audio_link` when downloadable audio formats are available for the video.

#### What happens if I enable “Upload Video to Storage”?

✅ If `upload_video_to_apify` is enabled, the actor uploads the **360p** video to Apify storage and provides `apify_storage_url`. It may take longer for long videos.

#### Do I need to use a proxy?

✅ Not necessarily. If you don’t set `proxyConfiguration`, the actor uses a residential proxy approach as the recommended default. You can also configure proxies via `proxyConfiguration` when you need it.

#### How do I handle failed downloads?

✅ If a download fails (especially for long videos), simply re-run the actor with the failed URL(s). It usually works on the second try.

#### Where can I find the download links after the run?

✅ The direct links are returned in the dataset fields: `downloadable_video_link` and `downloadable_audio_link`. If storage upload is enabled, you’ll also get `apify_storage_url`.

#### Is this actor suitable for batch downloading?

✅ Yes. Provide multiple URLs in `video_urls` and the actor processes them in a loop, pushing results to the dataset at the end.

#### Can I export the results to JSON or CSV?

✅ Yes. After the run, you can open the dataset in Apify Console and export the data in formats supported by Apify’s dataset UI.

***

### Support & feature requests

Have feedback or ideas to improve this YouTube Video Downloader—especially for **download YouTube videos** at scale?

- 💡 **Feature Requests**: For example, CSV-ready outputs, additional format selection options, or tighter integration steps for “best YouTube video downloader” workflows. Share your ideas and we’ll consider them for future updates.
- 📧 **Contact**: Reach out via <dataforleads@gmail.com>.

User feedback directly shapes the roadmap for this **YouTube video downloader** actor.

***

### *YouTube Video Downloader* — Final thoughts

*The YouTube Video Downloader gives you structured, resolution-aware downloads and optional storage links in a format you can reuse instantly.* If you’re after the most practical **YouTube video download** workflow, run it with your `video_urls` and export clean JSON results.

***

### Disclaimer

**This actor accesses only publicly accessible sources**. It does not access private profiles, authenticated content, or password-protected pages.

You are responsible for complying with applicable laws (including GDPR/CCPA where relevant), privacy requirements, spam regulations, and each platform’s terms of service. For any data-removal requests, contact <dataforleads@gmail.com>.

Please use this tool responsibly, ethically, and for legitimate purposes only.

# Actor input Schema

## `video_urls` (type: `array`):

List of YouTube video URLs to process.

## `desired_resolution` (type: `string`):

Select the desired resolution: 8K, 4K, 2K, 1080p, 720p, 480p, or 360p.

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

Configure proxies for this Actor. If no proxy is selected, the actor will automatically use RESIDENTIAL proxy to bypass YouTube bot detection (recommended). Only Residential (default) and Own proxies are available.

## `upload_video_to_apify` (type: `boolean`):

Toggle this option to upload the 360p video to Apify storage (this may be slow).

## Actor input object example

```json
{
  "video_urls": [
    {
      "url": "https://youtu.be/YZ84iQrbYjw?si=_8-Y64fWSGA82dOz"
    },
    {
      "url": "https://youtu.be/aoBrCkinq88?si=WAzndltEQm531aAO"
    },
    {
      "url": "https://youtube.com/shorts/s9YG00vZ09c?si=fMtwzCARAHbcuJQu"
    }
  ],
  "desired_resolution": "2k",
  "upload_video_to_apify": 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 = {
    "video_urls": [
        {
            "url": "https://youtu.be/YZ84iQrbYjw?si=_8-Y64fWSGA82dOz"
        },
        {
            "url": "https://youtu.be/aoBrCkinq88?si=WAzndltEQm531aAO"
        },
        {
            "url": "https://youtube.com/shorts/s9YG00vZ09c?si=fMtwzCARAHbcuJQu"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("solid-scraper/youtube-video-downloader").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 = { "video_urls": [
        { "url": "https://youtu.be/YZ84iQrbYjw?si=_8-Y64fWSGA82dOz" },
        { "url": "https://youtu.be/aoBrCkinq88?si=WAzndltEQm531aAO" },
        { "url": "https://youtube.com/shorts/s9YG00vZ09c?si=fMtwzCARAHbcuJQu" },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("solid-scraper/youtube-video-downloader").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 '{
  "video_urls": [
    {
      "url": "https://youtu.be/YZ84iQrbYjw?si=_8-Y64fWSGA82dOz"
    },
    {
      "url": "https://youtu.be/aoBrCkinq88?si=WAzndltEQm531aAO"
    },
    {
      "url": "https://youtube.com/shorts/s9YG00vZ09c?si=fMtwzCARAHbcuJQu"
    }
  ]
}' |
apify call solid-scraper/youtube-video-downloader --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Youtube Video Downloader",
        "description": "🎥✨ Download YouTube videos fast & safely with our YouTube Video Downloader. Save your favorite content in seconds—no hassle, great quality, easy controls. 🚀🔒 Perfect for creators, learners, and binge-watchers. Download now!",
        "version": "1.3",
        "x-build-id": "TFJlbHQxUvnH8aSgZ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solid-scraper~youtube-video-downloader/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solid-scraper-youtube-video-downloader",
                "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/solid-scraper~youtube-video-downloader/runs": {
            "post": {
                "operationId": "runs-sync-solid-scraper-youtube-video-downloader",
                "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/solid-scraper~youtube-video-downloader/run-sync": {
            "post": {
                "operationId": "run-sync-solid-scraper-youtube-video-downloader",
                "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": [
                    "video_urls"
                ],
                "properties": {
                    "video_urls": {
                        "title": "YouTube Video URLs",
                        "type": "array",
                        "description": "List of YouTube video URLs to process.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "desired_resolution": {
                        "title": "Desired Resolution",
                        "enum": [
                            "8k",
                            "4k",
                            "2k",
                            "1080p",
                            "720p",
                            "480p",
                            "360p"
                        ],
                        "type": "string",
                        "description": "Select the desired resolution: 8K, 4K, 2K, 1080p, 720p, 480p, or 360p.",
                        "default": "2k"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration (Optional)",
                        "type": "object",
                        "description": "Configure proxies for this Actor. If no proxy is selected, the actor will automatically use RESIDENTIAL proxy to bypass YouTube bot detection (recommended). Only Residential (default) and Own proxies are available."
                    },
                    "upload_video_to_apify": {
                        "title": "Upload Video to Storage",
                        "type": "boolean",
                        "description": "Toggle this option to upload the 360p video to Apify storage (this may be slow).",
                        "default": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
