# Twitter (X.com) Video Post Scraper (`scrapers-hub/twitter-x-video-post-scraper`) Actor

🚀 twitter-x-video-post-scraper extracts Twitter (X.com) video post data fast—captions, links, media details & metadata. 📈 Perfect for social analytics, content research & brand monitoring. 📊 Automate insights, save time!

- **URL**: https://apify.com/scrapers-hub/twitter-x-video-post-scraper.md
- **Developed by:** [Scrapers Hub](https://apify.com/scrapers-hub) (community)
- **Categories:** Social media, Videos, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### 🚀 Twitter (X.com) Video Post Scraper: The Ultimate Professional Solution for High-Fidelity Video Extraction 🎥

Welcome to the definitive, high-capacity guide for the **Twitter (X.com) Video Post Scraper**. As the digital world shifts more towards video-first content, the necessity for a reliable, professional-grade tool to archive and extract video media from X.com (formerly Twitter) has never been greater. The **Twitter (X.com) Video Post Scraper** was built specifically to bridge this gap, offering a powerful, scalable, and extremely robust way to capture video content in multiple resolutions and formats.

Whether you are building a media library, conducting academic research on viral trends, or performing competitive social media analysis, the **Twitter (X.com) Video Post Scraper** provides the technical backbone you need for success. 🌟

#### 🌟 Why the Twitter (X.com) Video Post Scraper is the Industry Leader

The **Twitter (X.com) Video Post Scraper** isn't just a basic downloader; it is a sophisticated media intelligence tool. It bypasses the standard limitations of simple scrapers by interacting directly with the platform's media protocols, ensuring that you get the highest quality stream available every time.

##### 💎 Multi-Resolution Video Extraction
Unlike many tools that only grab a single, often low-quality version of a video, the **Twitter (X.com) Video Post Scraper** is designed to identify and extract all available resolutions. From standard 480p up to high-definition 720p or 1080p, the **Twitter (X.com) Video Post Scraper** gives you the choice and the quality you deserve for your projects.

##### 🛡️ Advanced Anti-Blocking Technology
The **Twitter (X.com) Video Post Scraper** is built to survive in a hostile scraping environment. Twitter employs some of the most advanced bot-detection systems in the world. The **Twitter (X.com) Video Post Scraper** counters this by utilizing Apify's Residential Proxy network, rotating your identity for every single request. This makes the **Twitter (X.com) Video Post Scraper** virtually invisible to the platform's defensive systems.

#### 📁 Section 3: Comprehensive Input and Output Technical Guide 🛠️

This section provides the essential technical documentation for the **Twitter (X.com) Video Post Scraper**. To ensure a successful run, it is vital to understand the schema and the data structures used by the **Twitter (X.com) Video Post Scraper**.

##### 📥 Input Configuration for Twitter (X.com) Video Post Scraper

The **Twitter (X.com) Video Post Scraper** accepts a flexible input format that can handle anything from a single status link to massive batches of viral content.

| Parameter | Type | Required | Description |
| :--- | :--- | :--- | :--- |
| `post_urls` | Array | Yes | A list of Twitter status URLs. The **Twitter (X.com) Video Post Scraper** can handle both direct strings and structured objects. |
| `key_value` | Boolean | No | If true, the **Twitter (X.com) Video Post Scraper** generates simulated Key-Value Store URLs for the extracted video files. |
| `proxyConfiguration` | Object | No | Configures the network path. For the **Twitter (X.com) Video Post Scraper**, we recommend Residential IPs. |

###### 📄 Example Input JSON
```json
{
  "post_urls": [
    { "url": "https://x.com/iamsrk/status/1662506616317693952" }
  ],
  "key_value": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
````

##### 📤 Output Specification for Twitter (X.com) Video Post Scraper

The **Twitter (X.com) Video Post Scraper** produces highly structured JSON output that is ready for database ingestion or spreadsheet analysis.

| Field | Type | Description |
| :--- | :--- | :--- |
| `success` | Boolean | Status of the extraction by the **Twitter (X.com) Video Post Scraper**. |
| `tweet_url` | String | The source link processed by the **Twitter (X.com) Video Post Scraper**. |
| `metadata` | Object | Rich data including the `title`, `twitter_id`, and `available_resolutions`. |
| `videos` | Array | A list of video objects, each containing `quality`, `height`, `width`, and the `url`. |

###### 📄 Example Output JSON

```json
[
  {
    "success": true,
    "tweet_url": "https://x.com/iamsrk/status/1662506616317693952",
    "metadata": {
      "title": "Shah Rukh Khan - Viral Post Analysis",
      "twitter_id": "1662506616317693952",
      "video_count": 1,
      "available_resolutions": ["720p", "480p", "360p"],
      "available_formats": ["mp4"]
    },
    "videos": [
      {
        "format": "mp4",
        "codec": "avc1",
        "height": 720,
        "width": 1280,
        "quality": "720p",
        "kv_store_url": "https://api.apify.com/v2/key-value-stores/S7ck9Be6Re5acAAr9/records/twitter_video_xyz_720p.mp4?token=..."
      }
    ]
  }
]
```

#### 📈 Wide-Ranging Use Cases for the Twitter (X.com) Video Post Scraper

The **Twitter (X.com) Video Post Scraper** is a multi-purpose tool that serves a variety of professional needs. Here we explore how the **Twitter (X.com) Video Post Scraper** can transform your workflow.

##### 🕵️ Use Case 1: Digital News Gathering and Verification

Journalists around the world use the **Twitter (X.com) Video Post Scraper** to quickly archive video evidence from breaking news events. In a fast-moving news cycle, videos are often deleted or removed. The **Twitter (X.com) Video Post Scraper** ensures that you have a high-resolution local copy for verification and fact-checking.

##### 📊 Use Case 2: Marketing and Trend Analysis

Social media agencies leverage the **Twitter (X.com) Video Post Scraper** to monitor the performance of video campaigns. By extracting the highest quality versions of viral videos, the **Twitter (X.com) Video Post Scraper** allows teams to analyze production quality, editing styles, and viewer engagement cues across thousands of posts.

##### 📚 Use Case 3: Academic Social Science Research

Researchers studying the spread of misinformation or viral culture use the **Twitter (X.com) Video Post Scraper** to build massive datasets. The **Twitter (X.com) Video Post Scraper**'s ability to extract clean metadata along with the video files makes it an ideal tool for large-scale quantitative and qualitative analysis.

##### 🎥 Use Case 4: Content Archiving and Curation

Video curators and digital historians use the **Twitter (X.com) Video Post Scraper** to preserve the internet's most important video moments. The **Twitter (X.com) Video Post Scraper** provides the reliability needed for high-volume archiving projects, ensuring that no historical footage is lost due to link rot.

#### 🧠 Advanced Optimization and Performance Strategy ⚡

To achieve 100% success rates with the **Twitter (X.com) Video Post Scraper**, it is important to utilize its advanced features correctly.

##### 🔄 Smart IP Rotation and User-Agent Spoofing

The **Twitter (X.com) Video Post Scraper** doesn't just rotate proxies; it rotates its entire digital footprint. For every request, the **Twitter (X.com) Video Post Scraper** selects a new Residential IP and pairs it with a modern User-Agent string. This combination is a core feature of the **Twitter (X.com) Video Post Scraper** that keeps you one step ahead of the platform's detection algorithms.

##### 🛡️ Robust Fault Tolerance with the Twitter (X.com) Video Post Scraper

Internet connections are inherently unstable. The **Twitter (X.com) Video Post Scraper** includes a sophisticated retry engine. If a proxy returns a 503 or 429 error, the **Twitter (X.com) Video Post Scraper** automatically waits, switches to a new IP, and retries the request. This "never-say-die" attitude of the **Twitter (X.com) Video Post Scraper** ensures your tasks finish successfully.

##### 🛁 Data Cleaning and Normalization

Raw Twitter data is often messy. The **Twitter (X.com) Video Post Scraper** includes a sanitization layer that:

1. **Normalizes Titles:** Removes the annoying "- X" or "- Twitter" tags.
2. **Cleans Descriptions:** Strips away non-essential characters and standardizes whitespace.
3. **Formats IDs:** Ensures the Twitter ID is always extracted as a stable string.

#### 🛠️ Detailed Installation and Deployment Walkthrough

Whether you are running the **Twitter (X.com) Video Post Scraper** in the cloud or locally, the process is designed to be seamless.

##### ☁️ Running on Apify Cloud (The Standard Way)

1. **Actor Search:** Navigate to the **Twitter (X.com) Video Post Scraper** page in the Apify Store.
2. **Input Configuration:** Enter your URLs in the "Post URLs" field.
3. **Proxy Selection:** For the best results with the **Twitter (X.com) Video Post Scraper**, ensure you have "Residential" proxies enabled.
4. **Execute:** Hit Start. The **Twitter (X.com) Video Post Scraper** will begin processing immediately.

##### 💻 Local Execution for the Twitter (X.com) Video Post Scraper

1. **Prerequisites:** Install the Apify CLI (`npm install -g apify-cli`).
2. **Project Setup:** Clone the **Twitter (X.com) Video Post Scraper** repository.
3. **Credentials:** Run `apify login`.
4. **Start:** Run `apify run` to execute the **Twitter (X.com) Video Post Scraper** in your local environment.

#### 🧐 Frequently Asked Questions (FAQ)

##### ❓ Does the Twitter (X.com) Video Post Scraper support 1080p?

Yes! If the source video was uploaded in 1080p, the **Twitter (X.com) Video Post Scraper** will find it and provide the direct download link.

##### ❓ Can the Twitter (X.com) Video Post Scraper handle GIF files?

Absolutely. Twitter stores most GIFs as mp4 files, and the **Twitter (X.com) Video Post Scraper** extracts them just like any other video.

##### ❓ Why should I use the Twitter (X.com) Video Post Scraper instead of a free web downloader?

Most free downloaders are filled with ads, have poor resolution support, and often break. The **Twitter (X.com) Video Post Scraper** is a professional tool with proxy support, structured output, and a dedicated maintenance team.

##### ❓ How do I handle 503 Upstream Errors in the Twitter (X.com) Video Post Scraper?

These errors are handled automatically by the **Twitter (X.com) Video Post Scraper**'s built-in retry logic. If they persist, ensure your Residential Proxy balance is healthy.

##### ❓ Does the Twitter (X.com) Video Post Scraper require my Twitter password?

No. The **Twitter (X.com) Video Post Scraper** only works with public tweets and does not require any account credentials.

#### 🛡️ Ethical Scraping and Compliance Guidelines

We believe in the responsible use of the **Twitter (X.com) Video Post Scraper**. Please follow these best practices:

- **Respect Copyright:** Use the **Twitter (X.com) Video Post Scraper** only for data you have a right to access or for legitimate research/archival purposes.
- **Don't Spam:** The **Twitter (X.com) Video Post Scraper** is powerful; use it with respect for the platform's resources.
- **Data Protection:** Always handle the data extracted by the **Twitter (X.com) Video Post Scraper** in accordance with privacy laws like GDPR.

#### 🔧 Troubleshooting the Twitter (X.com) Video Post Scraper

###### ❌ Error: "Unable to extract info"

This often means the tweet has been deleted or the account was made private. The **Twitter (X.com) Video Post Scraper** will log this and move to the next URL in your list.

###### ❌ Issue: Proxy connection timed out

Twitter might be having a moment, or your proxy IP was slow. The **Twitter (X.com) Video Post Scraper** will retry with a new IP automatically.

###### ❌ Issue: Output is missing certain resolutions

The **Twitter (X.com) Video Post Scraper** can only extract resolutions that Twitter has generated. If the original video was low-res, the **Twitter (X.com) Video Post Scraper** will only find those low-res versions.

#### 📝 Final Thoughts: The Future of the Twitter (X.com) Video Post Scraper

The **Twitter (X.com) Video Post Scraper** is the gold standard for video extraction on X.com. We are constantly updating the **Twitter (X.com) Video Post Scraper** to ensure it remains the most reliable tool on the market. Whether you're a single user or a large enterprise, the **Twitter (X.com) Video Post Scraper** is here to handle your most challenging media tasks.

Thank you for trusting the **Twitter (X.com) Video Post Scraper**. We look forward to seeing what you build with the data extracted by the **Twitter (X.com) Video Post Scraper**! 🚀🎥✨

***

###### 📊 Performance Comparison: Twitter (X.com) Video Post Scraper vs. Others

| Feature | **Twitter (X.com) Video Post Scraper** | Free Web Tools | Generic Python Scripts |
| :--- | :--- | :--- | :--- |
| **Max Resolution** | HD (1080p/720p) | Variable (usually low) | 360p/480p |
| **Batch Mode** | Yes (Unlimited) | No | Limited |
| **Proxy Rotation** | Automatic Residential | None | Manual only |
| **Metadata Output** | Structured JSON | None | Basic |
| **Retry System** | Advanced (3+ attempts) | None | Simple |

***

#### 🛠️ Technical Specifications of the Twitter (X.com) Video Post Scraper

For the technical enthusiasts, here is what powers the **Twitter (X.com) Video Post Scraper**:

- **Runtime:** Python 3.14.3
- **Core Library:** yt-dlp (Nightly-optimized)
- **Networking:** Async HTTP/2 requests with custom session management.
- **Proxy Management:** Dynamic Residential IP integration via Apify SDK.
- **Concurrency:** Non-blocking asynchronous task execution.

The **Twitter (X.com) Video Post Scraper** is optimized for minimal resource usage while maximizing throughput. This efficiency is what makes the **Twitter (X.com) Video Post Scraper** the most cost-effective solution for high-volume video scraping.

##### 🔒 Data Security and Privacy

The **Twitter (X.com) Video Post Scraper** handles all data locally within the Apify secure container. Your input URLs and the resulting video metadata are strictly private. The **Twitter (X.com) Video Post Scraper** is a neutral technology platform designed for your peace of mind.

#### 🌟 Conclusion

In summary, the **Twitter (X.com) Video Post Scraper** is the ultimate choice for high-fidelity video extraction. With its powerful features, intelligent proxy rotation, and comprehensive documentation, the **Twitter (X.com) Video Post Scraper** is ready for any challenge you throw at it.

Choose the **Twitter (X.com) Video Post Scraper** for your next media project and experience the power of professional-grade scraping. We are proud to support your data needs with the **Twitter (X.com) Video Post Scraper**! 🚀🎥📂

# Actor input Schema

## `post_urls` (type: `array`):

List of Twitter/X status URLs to scrape.

## `key_value` (type: `boolean`):

If true (default), each video is downloaded and stored in the run's key-value store and the returned 'url' is an Apify-hosted link that always plays; the original twimg.com link is kept as 'source\_url'. video.twimg.com uses Referer-based hotlink protection, so its direct links return 403 (won't play) when opened from another page or player - re-hosting avoids that. If false, only the direct twimg.com URL is returned.

## Actor input object example

```json
{
  "post_urls": [
    "https://x.com/iamsrk/status/1662506616317693952"
  ],
  "key_value": true
}
```

# 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 = {
    "post_urls": [
        "https://x.com/iamsrk/status/1662506616317693952"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers-hub/twitter-x-video-post-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "post_urls": ["https://x.com/iamsrk/status/1662506616317693952"] }

# Run the Actor and wait for it to finish
run = client.actor("scrapers-hub/twitter-x-video-post-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "post_urls": [
    "https://x.com/iamsrk/status/1662506616317693952"
  ]
}' |
apify call scrapers-hub/twitter-x-video-post-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Twitter (X.com) Video Post Scraper",
        "description": "🚀 twitter-x-video-post-scraper extracts Twitter (X.com) video post data fast—captions, links, media details & metadata. 📈 Perfect for social analytics, content research & brand monitoring. 📊 Automate insights, save time!",
        "version": "0.1",
        "x-build-id": "ruqJw4djavWIWtQ1z"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers-hub~twitter-x-video-post-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers-hub-twitter-x-video-post-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapers-hub~twitter-x-video-post-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers-hub-twitter-x-video-post-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapers-hub~twitter-x-video-post-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers-hub-twitter-x-video-post-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "post_urls"
                ],
                "properties": {
                    "post_urls": {
                        "title": "Post URLs",
                        "type": "array",
                        "description": "List of Twitter/X status URLs to scrape.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "key_value": {
                        "title": "Re-host video on Apify (recommended)",
                        "type": "boolean",
                        "description": "If true (default), each video is downloaded and stored in the run's key-value store and the returned 'url' is an Apify-hosted link that always plays; the original twimg.com link is kept as 'source_url'. video.twimg.com uses Referer-based hotlink protection, so its direct links return 403 (won't play) when opened from another page or player - re-hosting avoids that. If false, only the direct twimg.com URL is returned.",
                        "default": true
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
