# Download Videos from Any Website (`scrapepilot/download-videos-from-any-website`) Actor

Download videos from 1000+ websites including YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Vimeo and Twitch. Get direct MP4 download URLs, full metadata, thumbnails and all quality formats. Powered by . RESIDENTIAL proxy included

- **URL**: https://apify.com/scrapepilot/download-videos-from-any-website.md
- **Developed by:** [Scrape Pilot](https://apify.com/scrapepilot) (community)
- **Categories:** Videos, Automation, Developer tools
- **Stats:** 4 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$9.99/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

## 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

---
## 📥 Universal Video Downloader v1 — Powered by  (1000+ Sites)

**Extract metadata and direct download URLs from 1000+ video platforms** — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Vimeo, Dailymotion, Twitch, Pinterest, LinkedIn, Snapchat, and many more. Powered by `yt‑dlp`. No actual file download — just the links you need.

---

### 💡 What is Universal Video Downloader?

Universal Video Downloader is a powerful Apify actor that uses `` (the most advanced video extraction tool) to retrieve **metadata and direct video/audio URLs** from virtually any public video on the web. It does **not** download files to the Apify server — instead, it returns structured JSON with:

- Video title, original URL, platform name, duration, thumbnail.
- Direct `best_video_url` (highest quality mp4 with audio) and `best_audio_url` (m4a/mp3).
- Full list of available formats (resolution, codec, file size, etc.).
- Uploader info, view/like/comment counts, upload date, tags, and more.

Perfect for archiving, content repurposing, social media monitoring, and building your own video library.

---

### 🚀 Key Features

- **1000+ Supported Sites** – YouTube, TikTok, Instagram Reels, Facebook Watch, Twitter/X videos, Reddit, Threads, Vimeo, Dailymotion, Twitch clips, Pinterest, LinkedIn, Snapchat, and hundreds more (full list at [yt-dlp supported sites](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md)).
- **No Download, Only Links** – Extracts direct `https` URLs to the best available video and audio streams. Zero storage cost.
- **Playlist & Channel Support** – Extract all videos from a YouTube playlist, channel, or user profile (respecting `max_results`).
- **Quality Selection** – Choose `best`, `1080p`, `720p`, `480p`, or `audio_only`.
- **Rich Metadata** – Title, duration, thumbnail, uploader, view/like/comment counts, upload date, tags, categories, live status.
- **Formats Breakdown** – Returns up to 10 format variants with resolution, codec, file size, and direct URL.
- **Residential Proxy Ready** – Avoid geo‑restrictions and IP bans with Apify residential proxies (passed directly to `yt-dlp`).
- **Clean JSON Output** – Every field is sanitised and validated.

---

### 📦 What Data Can You Extract?

| 🧩 Data Type           | 📋 Description |
|------------------------|----------------|
| 🎬 Basic Info          | Title, original URL, webpage URL, video ID, platform (e.g., `youtube`, `tiktok`, `instagram`). |
| ⏱️ Duration            | In seconds and formatted string (e.g., `1:23:45`). |
| 🖼️ Thumbnail           | Direct image URL. |
| 📝 Description         | Up to 2000 characters, cleaned. |
| 👤 Uploader            | Channel or user name, plus profile URL. |
| 📊 Engagement          | View count, like count, comment count, repost count. |
| 📅 Date                | Upload date (YYYYMMDD) and formatted version. |
| 🏷️ Tags & Categories   | Array of tags and categories. |
| 🔴 Live Info           | `is_live`, `was_live`, age limit. |
| 📥 Direct Download URLs | `best_video_url` (mp4 with audio), `best_audio_url` (m4a/mp3). |
| 📁 All Formats         | List of up to 10 formats with resolution, codec, file size, URL. |
| 📀 Playlist Context    | For playlist/channel entries: `playlist_title`, `playlist_id`. |

---

### ⚙️ How It Works

1. You provide one or more video, playlist, or channel URLs.
2. The actor calls `yt-dlp` with the `--skip-download` flag, retrieving metadata only.
3. It parses the metadata, selects the best video and audio URLs, and structures the output.
4. Results are pushed to the Apify dataset. You can export as JSON, CSV, or Excel.

> **Important:** The actor does **not** download video files to Apify storage. It only returns URLs. You can use those URLs to download the video on your own infrastructure.

---

### 📥 Input Parameters

The actor accepts a JSON object with the following fields:

| Parameter            | Type                | Required | Default     | Description |
|----------------------|---------------------|----------|-------------|-------------|
| `urls`               | array or string     | No       | –           | List of video, playlist, or channel URLs. You can provide a comma‑ or newline‑separated string. |
| `url`                | string              | No       | –           | Single URL (alternative to `urls`). |
| `quality`            | string              | No       | `"best"`    | Preferred quality: `best`, `1080p`, `720p`, `480p`, `audio_only`. |
| `max_results`        | integer             | No       | `20`        | Maximum number of videos to return (per URL for playlists, total across multiple URLs). |
| `proxyConfiguration` | object              | No       | –           | Apify proxy configuration. Residential proxies are recommended for geo‑restricted content. |

#### Example Input (Single Video)

```json
{
  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
  "quality": "best"
}
````

#### Example Input (Multiple URLs + Playlist)

```json
{
  "urls": [
    "https://www.youtube.com/watch?v=abc123",
    "https://www.tiktok.com/@user/video/123456789",
    "https://www.youtube.com/playlist?list=PLabc123"
  ],
  "max_results": 30,
  "quality": "1080p",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

***

### 📤 Output Format

Each video is returned as a separate dataset item. For playlists/channels, each entry is a separate item.

#### Video Object Fields

| Field                    | Type    | Description |
|--------------------------|---------|-------------|
| `title`                  | string  | Video title. |
| `original_url`           | string  | The URL you provided. |
| `webpage_url`            | string  | Canonical URL of the video. |
| `platform`               | string  | e.g., `youtube`, `tiktok`, `instagram`. |
| `video_id`               | string  | Platform‑specific ID. |
| `duration_seconds`       | integer | Duration in seconds. |
| `duration`               | string  | Formatted duration (e.g., `1:23:45`). |
| `thumbnail`              | string  | Thumbnail image URL. |
| `description`            | string  | Video description (cleaned, up to 2000 chars). |
| `uploader`               | string  | Channel or user name. |
| `uploader_url`           | string  | Channel/profile URL. |
| `upload_date`            | string  | `YYYYMMDD` format. |
| `upload_date_formatted`  | string  | `YYYY-MM-DD` format. |
| `timestamp`              | integer | Unix timestamp. |
| `view_count`             | integer | Number of views. |
| `like_count`             | integer | Number of likes (if available). |
| `comment_count`          | integer | Number of comments. |
| `repost_count`           | integer | Reposts / shares. |
| `age_limit`              | integer | Age restriction (if any). |
| `is_live`                | boolean | Currently live. |
| `was_live`               | boolean | Was a live stream. |
| `categories`             | array   | List of categories. |
| `tags`                   | array   | List of tags (max 20). |
| `best_video_url`         | string  | Direct URL to best mp4 video + audio. |
| `best_audio_url`         | string  | Direct URL to best audio (m4a/mp3). |
| `formats_available`      | array   | Up to 10 formats (see below). |
| `playlist_title`         | string  | (Only for playlist items) Playlist name. |
| `playlist_id`            | string  | (Only for playlist items) Playlist ID. |

#### `formats_available` Item Fields

| Field        | Type    | Description |
|--------------|---------|-------------|
| `format_id`  | string  | yt-dlp format code. |
| `ext`        | string  | File extension (e.g., `mp4`, `webm`). |
| `resolution` | string  | e.g., `1920x1080`. |
| `fps`        | integer | Frames per second. |
| `vcodec`     | string  | Video codec. |
| `acodec`     | string  | Audio codec. |
| `filesize`   | integer | Size in bytes. |
| `tbr`        | integer | Total bitrate (kbps). |
| `url`        | string  | Direct download URL. |

#### Example Output (YouTube Video)

```json
[
  {
    "title": "Rick Astley - Never Gonna Give You Up (Official Music Video)",
    "original_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "webpage_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "platform": "youtube",
    "video_id": "dQw4w9WgXcQ",
    "duration_seconds": 212,
    "duration": "3:32",
    "thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg",
    "description": "Rick Astley's official music video for 'Never Gonna Give You Up'...",
    "uploader": "Rick Astley",
    "uploader_url": "https://www.youtube.com/@RickAstleyYT",
    "upload_date": "20091025",
    "upload_date_formatted": "2009-10-25",
    "view_count": 1234567890,
    "like_count": 1234567,
    "comment_count": 12345,
    "is_live": false,
    "was_live": false,
    "categories": ["Music"],
    "tags": ["Rick Astley", "Never Gonna Give You Up", "80s"],
    "best_video_url": "https://rr4---sn-4g5e6nsz.googlevideo.com/...",
    "best_audio_url": "https://rr4---sn-4g5e6nsz.googlevideo.com/...",
    "formats_available": [
      {
        "format_id": "137",
        "ext": "mp4",
        "resolution": "1920x1080",
        "fps": 30,
        "vcodec": "avc1.640028",
        "acodec": "mp4a.40.2",
        "filesize": 12345678,
        "tbr": 2500,
        "url": "https://..."
      }
    ]
  }
]
```

#### Example Output (TikTok Video)

```json
[
  {
    "title": "#funny #viral",
    "original_url": "https://www.tiktok.com/@user/video/123456789",
    "platform": "tiktok",
    "duration": "0:15",
    "thumbnail": "https://...",
    "uploader": "@user",
    "view_count": 1000000,
    "like_count": 50000,
    "comment_count": 1200,
    "repost_count": 3000,
    "best_video_url": "https://...",
    "best_audio_url": null
  }
]
```

***

### 🛠 How to Use on Apify

1. **Create a task** with this actor.
2. **Provide input** – one or more video/playlist/channel URLs.
3. **Choose quality** – `best` is usually fine, but you can limit to `1080p` to save bandwidth when downloading later.
4. **Configure proxies** – optional but recommended for geo‑restricted content or large volumes.
5. **Run** – the actor will extract metadata and push results to the Dataset.
6. **Export** – download as JSON, CSV, or Excel. The `best_video_url` can be used with `wget`, `curl`, or a download manager.

#### Running via API

```bash
curl -X POST "https://api.apify.com/v2/acts/your-username~universal-video-downloader/runs" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
    "urls": ["https://www.youtube.com/watch?v=abc123", "https://www.tiktok.com/@user/video/123"],
    "quality": "720p"
  }'
```

***

### 🎯 Use Cases

- **Content Archiving** – Save direct links to your own videos or public content before it disappears.
- **Social Media Monitoring** – Extract metadata and download videos from competitors or trending topics.
- **Repurposing Content** – Get high‑quality video files from TikTok/Instagram to repost on YouTube Shorts.
- **Data Analysis** – Collect view counts, likes, comments over time.
- **Personal Media Server** – Automatically fetch new videos from YouTube channels you follow.
- **Educational** – Download lecture videos for offline study.

***

### ❓ Frequently Asked Questions

#### Q1. Does the actor download the video file?

No. It only returns direct download URLs. You need to download the file separately using `wget`, `curl`, or your own script.

#### Q2. Are the download URLs permanent?

Most platforms (YouTube, Vimeo) generate temporary URLs that expire after a few hours. You should download the file soon after extraction.

#### Q3. Why do I need residential proxies?

Some platforms (TikTok, Instagram, Twitter) block datacenter IPs. Residential proxies mimic real users and allow reliable access.

#### Q4. Can I extract from age‑restricted YouTube videos?

Yes, but you may need to provide cookies or authentication (not supported in this actor). For public age‑restricted videos, it usually works without extra steps.

#### Q5. Does it support YouTube Shorts?

Yes. Shorts are treated as regular videos.

#### Q6. What happens if a video is private or deleted?

The actor will log a warning and skip that URL. The run continues.

#### Q7. How many formats are returned?

Up to 10 formats (filtered to exclude HLS/DASH manifests). You can change this by modifying the code.

#### Q8. What about live streams?

The actor returns metadata and may return a URL that works for the live stream (if available). For ongoing streams, the URL may be short‑lived.

***

### 🔍 SEO Keywords

`video downloader`, `yt-dlp actor`, `YouTube video scraper`, `TikTok video extractor`, `Instagram video download`, `Facebook video URL`, `Twitter video scraper`, `Reddit video download`, `universal video scraper`, `Apify video tool`, `direct video URL`

***

URL

### 🔗 Related Actors

You might also find these useful:

- **[Facebook Video Downloader (HD/SD + Audio + Metadata)](https://apify.com/scrapepilot/facebook-video-downloader-hd-sd-audio-metadata-extractor)**
- **[Instagram Reels Video Downloader (MP4 + Likes + Captions)](https://apify.com/scrapepilot/instagram-reels-video-downloader----mp4-likes-captions)**
- **[TikTok Video Downloader (No Watermark, Direct MP4)](https://apify.com/scrapepilot/tiktok-video-downloader----no-watermark-direct-mp4)**
- **[YouTube Video Scraper v2 (Search, Channel, Playlist, Video)](http://apify.com/scrapepilot/youtube-video-scraper-v2-search-channel-playlist-video)**

***

# Actor input Schema

## `url` (type: `string`):

Single video URL from any supported platform. E.g: https://www.youtube.com/watch?v=xxx OR https://www.tiktok.com/@user/video/xxx

## `urls` (type: `string`):

Process multiple video URLs at once — one URL per line. Supports mixing different platforms.

## `quality` (type: `string`):

Preferred video quality for download URLs

## `max_results` (type: `integer`):

Maximum videos to extract from playlists or channels

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

RESIDENTIAL proxy recommended for TikTok, Instagram and Facebook. Not required for YouTube.

## Actor input object example

```json
{
  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
  "quality": "best",
  "max_results": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapepilot/download-videos-from-any-website").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 = {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapepilot/download-videos-from-any-website").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 '{
  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call scrapepilot/download-videos-from-any-website --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapepilot/download-videos-from-any-website",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Download Videos from Any Website",
        "description": "Download videos from 1000+ websites including YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Vimeo and Twitch. Get direct MP4 download URLs, full metadata, thumbnails and all quality formats. Powered by . RESIDENTIAL proxy included",
        "version": "0.0",
        "x-build-id": "NnDyWjXt92Mhnh7g7"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapepilot~download-videos-from-any-website/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapepilot-download-videos-from-any-website",
                "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/scrapepilot~download-videos-from-any-website/runs": {
            "post": {
                "operationId": "runs-sync-scrapepilot-download-videos-from-any-website",
                "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/scrapepilot~download-videos-from-any-website/run-sync": {
            "post": {
                "operationId": "run-sync-scrapepilot-download-videos-from-any-website",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "url": {
                        "title": "Video URL",
                        "type": "string",
                        "description": "Single video URL from any supported platform. E.g: https://www.youtube.com/watch?v=xxx OR https://www.tiktok.com/@user/video/xxx"
                    },
                    "urls": {
                        "title": "Multiple URLs (batch)",
                        "type": "string",
                        "description": "Process multiple video URLs at once — one URL per line. Supports mixing different platforms."
                    },
                    "quality": {
                        "title": "Video Quality",
                        "enum": [
                            "best",
                            "1080p",
                            "720p",
                            "480p",
                            "audio_only"
                        ],
                        "type": "string",
                        "description": "Preferred video quality for download URLs",
                        "default": "best"
                    },
                    "max_results": {
                        "title": "Max Results (for playlists/channels)",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum videos to extract from playlists or channels",
                        "default": 20
                    },
                    "proxyConfiguration": {
                        "title": "Proxy (RESIDENTIAL Recommended)",
                        "type": "object",
                        "description": "RESIDENTIAL proxy recommended for TikTok, Instagram and Facebook. Not required for YouTube."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
