# Pornhub Video Downloader & Metadata Scraper (`trev0n/pornhub-video-downloader`) Actor

Extracts full metadata and direct M3U8 video download URLs from Pornhub video pages. Supports direct video URLs as well as search results, channel pages, pornstar pages, and category listings.

- **URL**: https://apify.com/trev0n/pornhub-video-downloader.md
- **Developed by:** [Paweł](https://apify.com/trev0n) (community)
- **Categories:** Videos, Developer tools, Automation
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$4.99 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## 🎬 Pornhub Video Downloader & Metadata Scraper

🎯 **Pull complete video metadata and direct download URLs from Pornhub — at scale, in a single click.**

This scraper turns any Pornhub video page, search query, channel, pornstar, or category into clean, structured JSON. Get titles, view counts, ratings, performers, categories, tags, channel data, thumbnails, and direct M3U8 streaming URLs — ready to import into your database, spreadsheet, or pipeline.

### 🚀 What Does It Do?

Feed it any Pornhub URL and it returns **structured, ready-to-use data** for every video. No browsing, no copy-paste — just set your URLs and hit Start.

💡 **Two modes of operation:**

1. **🎯 Direct Video Mode** — Provide a list of `view_video.php?viewkey=...` URLs and get a full record per video.
2. **🔍 Discovery Mode** — Provide a search results URL, channel page, pornstar profile, or category page. The scraper paginates through listings and extracts every video it finds, up to your configured limit.

### 👥 Who Is This For?

| 🏢 Use Case                      | 💬 How It Helps                                                                           |
| -------------------------------- | ----------------------------------------------------------------------------------------- |
| 📊 **Market Researchers**        | Track trending content, top performers, view-count distributions, and category popularity |
| 🎬 **Content Aggregators**       | Build niche video catalogs with titles, thumbnails, durations, and direct stream URLs     |
| 📈 **SEO & Affiliate Marketers** | Mine high-traffic titles, tags, and descriptions for keyword research                     |
| 🤖 **Dataset Builders**          | Generate structured training data with rich metadata and stable video IDs                 |
| 🔬 **Academic Researchers**      | Quantitative content analysis with reproducible, exportable datasets                      |
| 💾 **Personal Archivists**       | Save metadata and direct M3U8 URLs for offline reference                                  |

### ✨ Features

- 🎬 **Full Video Metadata** — Title, description, duration, upload date, thumbnail, embed URL
- 📊 **Engagement Stats** — Views, upvotes, downvotes, like percentage, favorites count
- 🔗 **Direct M3U8 URLs** — All available qualities (240p → 1080p+) plus the master HLS playlist
- 🌟 **Performer & Channel Info** — Pornstars, channel name, channel URL, subscriber count, channel video count
- 🏷️ **Rich Tagging** — Full categories list, tags list, production type (professional/amateur)
- 🔍 **Listing Discovery** — Feed it a search URL, pornstar page, channel, or category and let it paginate automatically
- 🧠 **Smart Deduplication** — Same video won't be scraped twice, even across multiple listing sources
- 🎛️ **Smart Filters** — Cap total results, toggle download URLs on/off, include or skip related videos
- ⚡ **Fast & Scalable** — Lightweight HTTP-only architecture, scales from 5 videos to 5,000 in a single run
- 📤 **Export Anywhere** — Download results as JSON, CSV, Excel, or push to Google Sheets, Zapier, Make, or your CRM

### 🎛️ Filters & Options

| Option                        | What It Does                                                                                                    |
| ----------------------------- | --------------------------------------------------------------------------------------------------------------- |
| 🔗 **Start URLs**             | List of Pornhub URLs — supports video pages, search results, channels, pornstars, models, users, and categories |
| 🔢 **Max Videos**             | Cap on the total number of videos to scrape per run                                                             |
| 🎞️ **Extract Download URLs**  | Toggle whether direct M3U8 URLs and quality variants are included in the output                                 |
| 🎯 **Include Related Videos** | Add the "next video" suggestion shown on each video page to the record                                          |
| ⚙️ **Max Concurrency**        | How many pages to fetch in parallel — lower if you hit rate limits                                              |
| 🔄 **Max Retries**            | Retry budget per failed request                                                                                 |
| 🌐 **Proxy Configuration**    | Residential proxies recommended for geo-restricted access and reliable throughput                               |

### 📦 What You Get (Output Fields)

Every video record includes:

#### Identity & URLs

| Field        | Example                                                          |
| ------------ | ---------------------------------------------------------------- |
| videoId      | `1857642371`                                                     |
| viewKey      | `ph5d7166bbcabc7`                                                |
| url          | `https://www.pornhub.com/view_video.php?viewkey=ph5d7166bbcabc7` |
| embedUrl     | `https://www.pornhub.com/embed/ph5d7166bbcabc7`                  |
| thumbnailUrl | `https://ci.phncdn.com/videos/.../thumb.jpg`                     |

#### Content Metadata

| Field             | Example                                              |
| ----------------- | ---------------------------------------------------- |
| title             | `Sunday Morning Yoga Routine - Full Session`         |
| description       | `Relaxing 20-minute morning flow recorded at home.`  |
| duration          | `1247`                                               |
| durationFormatted | `20:47`                                              |
| uploadDate        | `2024-08-12T00:00:00+00:00`                          |
| categories        | `["Amateur", "Couples", "Verified"]`                 |
| tags              | `["yoga", "morning", "homemade", "verified-couple"]` |
| pornstars         | `["Anna Smith"]`                                     |
| productionType    | `Homemade`                                           |

#### Engagement Stats

| Field       | Example   |
| ----------- | --------- |
| views       | `2843911` |
| upvotes     | `12453`   |
| downvotes   | `812`     |
| likePercent | `94`      |
| favorites   | `8721`    |

#### Channel

| Field               | Example                                     |
| ------------------- | ------------------------------------------- |
| channel.name        | `AnnaAndJohn`                               |
| channel.url         | `https://www.pornhub.com/users/annaandjohn` |
| channel.subscribers | `124000`                                    |
| channel.videoCount  | `87`                                        |

#### Download URLs

| Field         | Example                                                                                                                 |
| ------------- | ----------------------------------------------------------------------------------------------------------------------- |
| bestM3u8Url   | `https://cv.phncdn.com/.../1080P_4000K_index.m3u8`                                                                      |
| masterM3u8Url | `https://cv.phncdn.com/.../master.m3u8`                                                                                 |
| downloadUrls  | `[{ "quality": "1080", "format": "hls", "videoUrl": "..." }, { "quality": "720", "format": "hls", "videoUrl": "..." }]` |

### 📊 Example Output

```json
{
    "videoId": "1857642371",
    "viewKey": "ph5d7166bbcabc7",
    "url": "https://www.pornhub.com/view_video.php?viewkey=ph5d7166bbcabc7",
    "title": "Sunday Morning Yoga Routine - Full Session",
    "description": "Relaxing 20-minute morning flow recorded at home.",
    "duration": 1247,
    "durationFormatted": "20:47",
    "uploadDate": "2024-08-12T00:00:00+00:00",
    "thumbnailUrl": "https://ci.phncdn.com/videos/202408/12/abc123/original/thumb.jpg",
    "embedUrl": "https://www.pornhub.com/embed/ph5d7166bbcabc7",
    "views": 2843911,
    "upvotes": 12453,
    "downvotes": 812,
    "likePercent": 94,
    "favorites": 8721,
    "categories": ["Amateur", "Couples", "Verified"],
    "tags": ["yoga", "morning", "homemade", "verified-couple"],
    "pornstars": ["Anna Smith"],
    "productionType": "Homemade",
    "channel": {
        "name": "AnnaAndJohn",
        "url": "https://www.pornhub.com/users/annaandjohn",
        "subscribers": 124000,
        "videoCount": 87
    },
    "downloadUrls": [
        {
            "quality": "1080",
            "format": "hls",
            "videoUrl": "https://cv.phncdn.com/.../1080P_4000K_index.m3u8",
            "defaultQuality": true
        },
        {
            "quality": "720",
            "format": "hls",
            "videoUrl": "https://cv.phncdn.com/.../720P_1500K_index.m3u8",
            "defaultQuality": false
        },
        {
            "quality": "480",
            "format": "hls",
            "videoUrl": "https://cv.phncdn.com/.../480P_600K_index.m3u8",
            "defaultQuality": false
        },
        {
            "quality": "240",
            "format": "hls",
            "videoUrl": "https://cv.phncdn.com/.../240P_400K_index.m3u8",
            "defaultQuality": false
        }
    ],
    "bestM3u8Url": "https://cv.phncdn.com/.../1080P_4000K_index.m3u8",
    "masterM3u8Url": "https://cv.phncdn.com/.../master.m3u8",
    "nextVideo": null,
    "pageTitle": "Sunday Morning Yoga Routine - Pornhub.com",
    "pageDescription": "Watch Sunday Morning Yoga Routine on Pornhub.com...",
    "scrapedAt": "2026-05-03T10:24:18.452Z"
}
````

### 📋 Dataset Views

The Apify Console gives you **5 ready-made table views** to quickly browse your results:

| View                        | What It Shows                                                    |
| --------------------------- | ---------------------------------------------------------------- |
| 📊 **Overview**             | Title, video ID, views, like %, duration, upload date, URL       |
| 🌟 **Performers & Channel** | Title, performers, channel, production type, categories          |
| 🎞️ **Download URLs**        | Title, video ID, duration, best M3U8, master M3U8, all qualities |
| 📈 **Engagement Stats**     | Title, views, upvotes, downvotes, like %, favorites, upload date |
| 📋 **Full Details**         | Every single field — the complete dataset                        |

### ❓ FAQ

**🤔 Can I scrape an entire pornstar's filmography?**
Yes — paste their pornstar page URL (e.g. `https://www.pornhub.com/pornstar/...`) into Start URLs and set Max Videos high. The scraper will paginate through every page automatically.

**🤔 Will I get download URLs I can use?**
Yes — every record includes the direct M3U8 streaming URLs at every available quality, plus the master HLS playlist. These are the same URLs the Pornhub player uses internally.

**🤔 Does it work with private or members-only videos?**
No — the scraper only collects publicly available video pages. Anything behind a login or premium paywall is out of scope.

**🤔 What about geo-restricted regions?**
Pornhub blocks several regions (UK, parts of the US, etc.). Use Apify's residential proxies (recommended) — the scraper automatically routes through them so geo-blocking is bypassed transparently.

**🤔 Can I export the data?**
Yes — JSON, CSV, Excel, XML, HTML, RSS. You can also push data directly to Google Sheets, Zapier, Make, or any webhook/API endpoint.

**🤔 How often should I run this?**
For trending or freshly-uploaded content, run daily or weekly. You can schedule automatic runs on Apify with just a few clicks.

**🤔 Does it work with proxies?**
Yes — residential proxies are strongly recommended. The scraper works with Apify's built-in proxy service out of the box.

### 🛠️ Need Custom Filters or Features?

**I'm happy to customize this scraper for your specific needs!** 🤝

Whether you need:

- 🎯 Additional filters (minimum views, duration ranges, specific category combos, upload-date windows)
- 📊 Extra data fields or custom output formats
- 🔄 Integration with your CRM, Google Sheets, S3 bucket, or database
- 💾 Automatic M3U8 → MP4 download pipeline
- ⏰ Scheduled scraping with automatic deduplication against your existing dataset
- 🌐 Scraping from other adult tube platforms alongside Pornhub

👉 **Don't hesitate to reach out via private message** — I respond quickly and I'm always open to building exactly what you need. No request is too small or too specific!

### ⚖️ Legal & Ethical Use

This scraper collects **only publicly available information** from Pornhub video pages. It does not access private content, bypass authentication, or download copyrighted material. Please use the data responsibly and in compliance with applicable laws, copyright rules, and Pornhub's terms of service.

# Actor input Schema

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

Pornhub URLs to scrape. Supports direct video pages (view\_video.php?viewkey=...), search result pages (/video/search?search=...), pornstar pages (/pornstar/...), channel pages (/channels/...), user pages (/users/...), model pages (/model/...), and category pages (/categories/...).

## `maxItems` (type: `integer`):

Maximum number of videos to scrape. When using listing URLs (search/channel/pornstar), the scraper will paginate until this limit is reached.

## `extractDownloadUrls` (type: `boolean`):

Include direct M3U8 streaming URLs and quality variants in the output. Disable for metadata-only scraping.

## `includeRelatedVideos` (type: `boolean`):

Include the 'next video' suggestion shown on each video page in the output record.

## `maxConcurrency` (type: `integer`):

Maximum number of pages to scrape in parallel. Lower this if you hit rate limits.

## `maxRequestRetries` (type: `integer`):

Maximum number of retries per request before giving up.

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

Proxy settings. Residential proxies are required — Pornhub aggressively blocks datacenter IPs with captchas and soft-redirects.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.pornhub.com/"
    }
  ],
  "maxItems": 50,
  "extractDownloadUrls": true,
  "includeRelatedVideos": false,
  "maxConcurrency": 10,
  "maxRequestRetries": 3,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `videos` (type: `string`):

Dataset with scraped Pornhub video records

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.pornhub.com/"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("trev0n/pornhub-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 = {
    "startUrls": [{ "url": "https://www.pornhub.com/" }],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("trev0n/pornhub-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 '{
  "startUrls": [
    {
      "url": "https://www.pornhub.com/"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call trev0n/pornhub-video-downloader --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Pornhub Video Downloader & Metadata Scraper",
        "description": "Extracts full metadata and direct M3U8 video download URLs from Pornhub video pages. Supports direct video URLs as well as search results, channel pages, pornstar pages, and category listings.",
        "version": "1.0",
        "x-build-id": "BnRGDxUktYSeCJCoN"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/trev0n~pornhub-video-downloader/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-trev0n-pornhub-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/trev0n~pornhub-video-downloader/runs": {
            "post": {
                "operationId": "runs-sync-trev0n-pornhub-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/trev0n~pornhub-video-downloader/run-sync": {
            "post": {
                "operationId": "run-sync-trev0n-pornhub-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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Pornhub URLs to scrape. Supports direct video pages (view_video.php?viewkey=...), search result pages (/video/search?search=...), pornstar pages (/pornstar/...), channel pages (/channels/...), user pages (/users/...), model pages (/model/...), and category pages (/categories/...).",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Max Videos",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of videos to scrape. When using listing URLs (search/channel/pornstar), the scraper will paginate until this limit is reached.",
                        "default": 50
                    },
                    "extractDownloadUrls": {
                        "title": "Extract Download URLs",
                        "type": "boolean",
                        "description": "Include direct M3U8 streaming URLs and quality variants in the output. Disable for metadata-only scraping.",
                        "default": true
                    },
                    "includeRelatedVideos": {
                        "title": "Include Related Videos",
                        "type": "boolean",
                        "description": "Include the 'next video' suggestion shown on each video page in the output record.",
                        "default": false
                    },
                    "maxConcurrency": {
                        "title": "Max Concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum number of pages to scrape in parallel. Lower this if you hit rate limits.",
                        "default": 10
                    },
                    "maxRequestRetries": {
                        "title": "Max Request Retries",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Maximum number of retries per request before giving up.",
                        "default": 3
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. Residential proxies are required — Pornhub aggressively blocks datacenter IPs with captchas and soft-redirects."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
