# YouTube Video Downloader (`scrapedrift/youtube-video-downloader`) Actor

YouTube Video Downloader extracts and downloads publicly accessible YouTube videos with metadata including titles, descriptions, thumbnails, view counts, publish dates, channel details, and video URLs. Ideal for content archiving, research, analysis, and workflow automation.

- **URL**: https://apify.com/scrapedrift/youtube-video-downloader.md
- **Developed by:** [ScrapeDrift](https://apify.com/scrapedrift) (community)
- **Categories:** Automation, Lead generation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.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 🚀 — Download YouTube videos fast with direct links
Struggling to grab usable video files (or audio) from YouTube URLs one by one is a huge time sink. **YouTube Video Downloader** turns a list of YouTube video URLs into direct downloadable links plus clean metadata—so you can move from “need it” to “got it” quickly. You’ll also get output that’s perfect for folks building workflows with a YouTube video downloader online, downloading YouTube videos in bulk, or setting up a YouTube to MP4 downloader pipeline. This is ideal for marketers, analysts, and researchers who need reliable downloads and structured results in one run. In practice, you can process multiple links and start exporting results within seconds of launching.

---

### See the Data: Sample Output
Here's a real record from a single run:

```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?param=abc"
  },
  "downloadable_audio_link": "https://example.com/audio.m4a?param=xyz",
  "title": "Sample Video Title",
  "author": "Sample Author",
  "thumbnail": "https://example.com/thumb.jpg",
  "duration": "8m 14s",
  "channel": "Sample Channel",
  "source": "youtube",
  "video_type": "Video",
  "note": "Requested 1440p found.",
  "prog_video_type": "Video+Audio",
  "prog_resolution": "1440p",
  "prog_video_format": "mp4",
  "prog_downloadable_link": {
    "url": "https://example.com/video_best.mp4?param=def"
  },
  "best_progressive_format_info": {
    "resolution": 1440,
    "format": "mp4",
    "url": "https://example.com/video_best.mp4?param=def",
    "format_id": "137",
    "bitrate_kbps": 2435
  },
  "apify_storage_url": null,
  "storage_note": null,
  "status": "SUCCEEDED"
}
````

| Field | Type | What It Tells You |
|---|---|---|
| `status` | string | Whether the actor marked the input as `SUCCEEDED` or failed it during processing |
| `original_url` | string | The YouTube URL you submitted, preserved for traceability |
| `requested_resolution` | string | The resolution you asked for (from `desired_resolution`) |
| `provided_resolution` | number | The resolution actually selected for the downloadable video link |
| `download_type` | string | Indicates whether the selected download is `progressive` or `video_only` |
| `downloadable_video_link` | object | Direct link(s) for the downloadable video (keyed by extension like `mp4`) |
| `downloadable_audio_link` | string | Direct link for downloadable audio (when available) |
| `title` | string | Video title pulled from the source metadata |
| `author` | string | Video uploader / author name |
| `thumbnail` | string | Thumbnail URL for quick previews or UI thumbnails |
| `duration` | string | Human-readable duration (formatted by the actor) |
| `channel` | string | Channel name associated with the upload |
| `video_type` | string | `Shorts` or `Video` based on video duration |
| `note` | string | A human-readable note about resolution selection and fallback behavior |
| `apify_storage_url` | string | null | If upload is enabled, this becomes the public link to the uploaded file in Apify storage |
| `storage_note` | string | null | A status note for upload outcome (or why upload didn’t happen) |
| `error` | string (only on failures) | Error text returned when processing fails |

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
{
  "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
}
```

| Parameter | Required | What It Does |
|---|---:|---|
| `video_urls` | ✅ | A list of YouTube video URLs for the actor to process |
| `desired_resolution` | ⬜ | Selects the desired output resolution: `8K`, `4K`, `2K`, `1080p`, `720p`, `480p`, or `360p` |
| `proxyConfiguration` | ⬜ | Optional proxy settings to help with reliable access during downloads |
| ↳ `proxy support` | ⬜ | If set, routes requests through Apify Proxy (when enabled via `proxyConfiguration`) |
| ↳ `proxy support` | ⬜ | Proxy group selection used by Apify Proxy when `proxy support` is enabled |
| ↳ `apifyProxyCountry` | ⬜ | Sets the country for the proxy location when a residential fallback is applied |
| `upload_video_to_apify` | ⬜ | When enabled, the actor uploads the 360p video to Apify storage and returns a download link (can be slow) |

***

### What It Does

This actor downloads YouTube videos and returns direct downloadable links along with structured metadata.

#### Get direct downloadable video and audio links

For each `video_urls` entry, it selects formats based on your `desired_resolution` and returns `downloadable_video_link` and (when available) `downloadable_audio_link`. You also get a clear `note` explaining what was selected.

#### YouTube Video Downloader output that’s easy to use downstream

Each run produces consistent JSON records with key fields like `title`, `author`, `thumbnail`, `duration`, `channel`, and `video_type`. That makes it straightforward to feed results into reporting, asset pipelines, or content archiving workflows.

#### Optional storage upload for shareable download links

If you enable `upload_video_to_apify`, the actor uploads the 360p video to Apify storage and returns the resulting `apify_storage_url`. This is ideal when you want a stable link you can reuse without re-downloading.

#### Built-in resilience for longer batches

The actor includes fallback behavior and multiple attempts for download/upload steps to improve success rate across runs. If a download fails (especially for long videos), you can re-run the actor with the failed URLs.

#### Structured “best format” details for progressive workflows

When available, it exposes `best_progressive_format_info` and progressive-specific fields like `prog_video_type`, `prog_resolution`, `prog_video_format`, and `prog_downloadable_link`. That’s useful if your process prefers a single progressive download path.

Overall, the YouTube Video Downloader gives you dependable, export-ready results in bulk—video links, audio links, and metadata—so your workflow moves faster.

***

### Why YouTube Video Downloader?

There are plenty of ways to pull data from YouTube—here’s why **YouTube Video Downloader** stands out.

#### Downloads you can act on immediately

Instead of only metadata, you get direct downloadable links for both video and (when available) audio—perfect for anyone who needs download YouTube videos assets quickly.

#### Works cleanly with HD-to-SD resolution expectations

You select your target in `desired_resolution`, and the actor returns `provided_resolution` plus a `note` when your requested quality isn’t available. This makes it easier to plan output quality for a YouTube video download HD workflow.

#### Optional storage upload when you want shareable links

When you enable storage upload, you get `apify_storage_url` and `storage_note`, which makes a YouTube MP4 downloader workflow more convenient for teams sharing files internally.

***

### Real-World Use Cases

Here's how different teams put YouTube Video Downloader to work:

**Marketing Teams**\
Your campaign manager collects a list of creator videos and needs consistent assets for edits, thumbnails, or ad previews. They run the YouTube video downloader, export the dataset, and quickly grab direct links (and optional storage links) to keep production moving without manual downloads.

**Content Ops & Media Libraries**\
A media coordinator maintains an archive and wants metadata plus downloadable files in one place. They use the YouTube video download software output fields like `title`, `duration`, `thumbnail`, and direct links to populate their asset pipeline.

**Researchers & Analysts**\
A research group needs reproducible datasets for study: video length, type (Shorts vs Video), and links to retrieve media. They run the actor with a curated list of YouTube video URLs, export the JSON/CSV/Excel results, and keep everything traceable via `original_url`.

**Automation Specialists (Developers / Data Engineers)**\
You’re building an ETL job that turns a list of URLs into usable media endpoints. YouTube Video Downloader returns structured JSON records per input, including progressive format details and optional `apify_storage_url`, so it fits neatly into your downstream automation.

**Agencies Running Multiple Clients**\
An agency juggles batches for different clients and wants a consistent workflow every time. By running YouTube to MP4 downloader jobs in bulk and exporting from the Apify dashboard, they reduce repetitive manual steps and speed up client turnaround.

***

### How to Run It

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

1. **Go to the actor page on Apify**\
   Open the actor on [console.apify.com](https://console.apify.com).

2. **Enter your inputs**\
   Add your list in `video_urls` (required). Optionally set `desired_resolution` and `upload_video_to_apify`.

3. **Choose proxy settings (if needed)**\
   If you want proxy control, configure `proxyConfiguration` (otherwise the actor will use its default behavior).

4. **Start the run and watch the live log**\
   The actor processes each URL and tracks success per video.

5. **Open the Dataset tab to see results immediately**\
   You’ll see fields like `downloadable_video_link`, `downloadable_audio_link`, `title`, `duration`, and `status`.

6. **Export in your preferred format**\
   Download as JSON, CSV, or Excel from the Apify dashboard.

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

***

### Export & Integration Options

Once your data is collected, YouTube Video Downloader fits directly into your existing workflow.

Export formats are available directly from the Apify dataset tab, including JSON, CSV, and Excel. If you prefer pushing data into tools like CRMs or spreadsheets, use Apify’s native integrations or connect via Zapier/Make.

You can also access results programmatically via the Apify API and trigger downstream actions using webhooks when a run completes. For continuous workflows, you can schedule runs on a cron schedule through Apify.

***

### Pricing

YouTube Video Downloader runs on Apify, which includes a **free tier** — no credit card needed to start. The free tier provides $5 platform credits on sign-up, which is typically enough for several real test runs.

When you scale up, billing is pay-as-you-go based on Apify Actor compute unit (CU) usage—there’s no monthly fee lock-in just to use the actor. For heavier workloads, use Apify subscription plans and pricing options available on the Apify pricing page.

Start free at [apify.com](https://apify.com) — scale up when you need.

***

### Reliability & Limitations

| What We Handle | How |
|---|---|
| Rate-limit issues and bot detection challenges | Uses proxy support and includes resilience logic during access and downloads |
| Download robustness | Multiple attempts with fallback behavior to improve success rate |
| Upload reliability (when enabled) | Retries uploads a limited number of times and records outcomes in `storage_note` |
| Per-video failure visibility | Failed items are returned with `status` and error details in the dataset |
| Partial run recovery | You keep results generated up to the point of failure since each item is processed independently |

Limitations: the actor is designed for publicly accessible YouTube content and may fail for inputs that are unavailable or blocked at download time. Storage upload can be slow, especially for longer videos.

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

***

### Frequently Asked Questions

#### Is there a free plan?

Yes. Apify offers a free tier with monthly usage credits so you can run small YouTube video download jobs before scaling.

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

No. You don’t need to log in to use this actor. You only provide `video_urls`, and the actor returns downloadable links and metadata.

#### How accurate is the extracted data?

The actor returns metadata and downloadable links derived from the selected video formats. Fields like `title`, `author`, `thumbnail`, `duration`, and `video_type` are populated from the downloaded source information.

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

You can submit multiple items in `video_urls`. The actor processes your list and pushes results for each processed entry into the dataset.

#### How fresh is the data?

Each run retrieves information at execution time for the URLs you provide. If you need updated resolution availability or links, re-run the actor with your URLs.

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

This actor works with **publicly available data**. Whether your use case complies with GDPR, CCPA, platform ToS, or other laws depends on how you store and use the resulting video links and metadata—so it’s on you to ensure lawful use.

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

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

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

Yes. On Apify, you can schedule actor runs for automation workflows using Apify’s scheduling features.

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

Yes. You can access results programmatically using the Apify API to integrate the YouTube video downloader into your pipelines.

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

If processing fails for a specific URL, the actor records a failed entry with `status` and an `error` field (or similar error details). Successful items still get pushed into the dataset, so you can continue with partial results.

***

### Get Help & Use Responsibly

Got a question about YouTube Video Downloader or a feature you'd like added? Reach out at <dataforleads@gmail.com> — we’re happy to help with practical improvements like adding batch playlist-style inputs or expanding resolution selection handling.

**Disclaimer:** This actor collects **publicly available data**. It does not access private accounts, login-gated pages, or password-protected content. You are responsible for GDPR, CCPA, platform ToS, and any applicable local regulations. For data-removal requests, contact <dataforleads@gmail.com>. Use responsibly, ethically, and only for lawful purposes.

# 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("scrapedrift/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("scrapedrift/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 scrapedrift/youtube-video-downloader --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "YouTube Video Downloader",
        "description": "YouTube Video Downloader extracts and downloads publicly accessible YouTube videos with metadata including titles, descriptions, thumbnails, view counts, publish dates, channel details, and video URLs. Ideal for content archiving, research, analysis, and workflow automation.",
        "version": "1.3",
        "x-build-id": "EzDaEyTP0V4cT55gL"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapedrift~youtube-video-downloader/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapedrift-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/scrapedrift~youtube-video-downloader/runs": {
            "post": {
                "operationId": "runs-sync-scrapedrift-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/scrapedrift~youtube-video-downloader/run-sync": {
            "post": {
                "operationId": "run-sync-scrapedrift-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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
