# Youku Scraper — Chinese Video Search, Details & Creators (`sian.agency/youku-video-scraper`) Actor

Scrape Youku (优酷), one of China's largest long-form video platforms. Search videos by keyword, pull rich video details (title, category, episodes, plays, duration), and extract creator profiles with follower and engagement metrics. No login or API key required — export clean JSON, CSV or Excel.

- **URL**: https://apify.com/sian.agency/youku-video-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** Videos, Social media, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 video search results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Youku Scraper — Chinese Video Search, Details & Creators 🎬

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Bilibili Scraper](https://img.shields.io/badge/Store-Bilibili%20Scraper-00A1D6)](https://apify.com/sian.agency/bilibili-video-scraper?fpr=sian) [![Douyin Scraper](https://img.shields.io/badge/Store-Douyin%20Scraper-161823)](https://apify.com/sian.agency/douyin-scraper?fpr=sian) [![Xiaohongshu Scraper](https://img.shields.io/badge/Store-Xiaohongshu%20Scraper-FF2442)](https://apify.com/sian.agency/xiaohongshu-rednote-scraper?fpr=sian)

#### 🎉 The first and only Youku (优酷) scraper on Apify — search, details, and creator data from China's biggest long-form video platform
##### Built for China-market media researchers, IP-licensing analysts, and content-localization teams who need clean, structured Youku data without a login

---

### 📋 Overview

**Need structured data from Youku (优酷)?** This actor turns one of China's three largest long-form video platforms — home to dramas, variety shows, documentaries, and anime — into clean, queryable datasets. Search by keyword, pull deep video metadata, and extract creator profiles, all without an account or API key.

**Why professionals choose us:**
- ✅ **First and only Youku scraper on Apify**: Greenfield coverage of a platform no other tool reaches — own your China long-form video data pipeline.
- ⚡ **Self-contained discovery chain**: Search returns a `showId` → feed it to Video Detail → get the creator's `uploaderUid` → pull the Creator Profile. No pre-existing IDs needed to start.
- 🎯 **Long-form-native fields**: Episode totals, show-vs-video distinction, drama/variety/documentary/anime categories, release dates, and VIP/paid flags — data short-video scrapers never expose.
- 💰 **Pay-per-result**: Only charged for successful rows. Error rows are never billed.
- 💎 **Clean flattened output**: We collapse Youku's deeply nested response tree into flat, ready-to-use rows — export to JSON, CSV, or Excel in one click.
- ✨ **No login required**: Just pick an operation and run — no Youku account, no API key, no setup.

---

### ✨ Features

- 🔍 **Keyword Video Search**: Find shows and videos across every Youku category by search term (~15 results per page, paginated).
- 🎬 **Deep Video Detail**: Title, category, video type, show name, episode counts, duration, publish time, like/comment totals, and VIP flags for any show.
- 👤 **Creator Profile Extraction**: Nickname, follower count, total likes, verification status, and bio for any uploader.
- 🔗 **End-to-end discovery chain**: Go from a keyword to full creator analytics in three chained runs — no manual ID hunting.
- 🌏 **Chinese-language native**: Optimized for Chinese keywords (try 庆余年, 电视剧, 纪录片, 综艺, 动漫).
- 📦 **Structured exports**: JSON, CSV, Excel, and XML straight from the Apify dataset.
- 🧾 **HTML run report**: Every run writes a summary report with row counts, success rate, and timings.
- ⚙️ **Schedulable**: Automate recurring searches to monitor trends across drama, documentary, and variety categories.

---

### 🎞️ Quick Start

Pick one operation per run, fill in the matching field, and launch. Start with **Video Search** to discover shows, then drill into **Video Detail** and **Creator Profile** using IDs from the search results.

```bash
curl -X POST "https://api.apify.com/v2/acts/sian.agency~youku-video-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"operation": "videoSearch", "keyword": "庆余年", "maxPages": 2}'
````

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Search

Run **Video Search** with a Chinese keyword. Each row gives you a `showId`, title, category, and cover.

#### Step 2: Drill in

Copy a `showId` into **Video Detail** to get full metadata — including the creator's `uploaderUid`.

#### Step 3: Profile the creator

Paste that `uploaderUid` into **Creator Profile** to pull nickname, followers, total likes, and bio.

**That's it! In under a minute, you'll have:**

- A list of Youku shows matching your keyword
- Full metadata for any show you choose
- Creator analytics for the uploader behind it

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| operation | string | Yes | One of `videoSearch`, `videoDetail`, `userProfile` |
| keyword | string | For `videoSearch` | Search query — Chinese gives best results |
| videoId | string | For `videoDetail` | The Youku `showId` (alphanumeric hash) |
| uid | string | For `userProfile` | The creator UID (encoded form) |
| maxPages | integer | No | Max pages for Video Search (default 5, range 1–50) |

**Video Search:**

```json
{ "operation": "videoSearch", "keyword": "纪录片", "maxPages": 3 }
```

**Video Detail:**

```json
{ "operation": "videoDetail", "videoId": "fbbfcb303fcc4e2c8e18" }
```

**Creator Profile:**

```json
{ "operation": "userProfile", "uid": "UNDc4MDk2MzMyMA==" }
```

***

### 📤 Output

Results are saved to the Apify dataset as flat rows. Filter by `_operation` to split the three modes.

| Field | Type | Description |
|-------|------|-------------|
| showId | string | Youku show ID (search + detail) |
| videoTitle | string | Video/episode title |
| categoryName / videoCategory | string | Content category (drama, documentary, etc.) |
| showName | string | Parent show/series name |
| episodeTotal | integer | Total episodes in the series |
| durationSeconds | number | Video duration in seconds |
| videoPublishTime | string | Publish timestamp |
| totalUp / totalComment | integer | Like / comment totals |
| isPaidVip | boolean | Whether the video is VIP/paid |
| uploaderUid | string | Creator UID (chains into Creator Profile) |
| nickName | string | Creator nickname |
| followCount | string | Creator follower count |
| videoUrl / profileUrl | string | Canonical Youku URL |

**Example (Video Detail row):**

```json
{
  "_operation": "videoDetail",
  "status": "success",
  "videoId": "XNjM5ODE0Njk5Ng==",
  "videoTitle": "二皇子拦截使团真相 李云睿利用君山会斗法范闲",
  "videoCategory": "纪录片",
  "showName": "《庆余年》第二季剧情深度解读 非正片",
  "episodeTotal": 15,
  "durationSeconds": 158.67,
  "totalUp": 2,
  "uploaderUid": "UNDc4MDk2MzMyMA==",
  "videoUrl": "https://v.youku.com/v_show/id_XNjM5ODE0Njk5Ng==.html"
}
```

***

### 💼 Use Cases & Examples

#### 1. Chinese Long-Form Video Discovery

**Media researchers mapping what's available on Youku.**

**Input:** A genre keyword like 电视剧 or 纪录片.
**Output:** Shows with categories, release dates, episode counts, and covers.
**Use:** Build a catalog of Chinese dramas and documentaries for content scouting.

#### 2. Title & Episode Intelligence

**IP-licensing analysts tracking Chinese series.**

**Input:** A `showId` from search.
**Output:** Show name, category, episode totals, duration, VIP flags.
**Use:** Monitor which titles are completed, paid, or trending for licensing decisions.

#### 3. Creator & Channel Analytics

**Influencer and partnership teams sizing up Youku uploaders.**

**Input:** A creator `uid`.
**Output:** Nickname, follower count, total likes, verification, bio.
**Use:** Identify and rank influential Youku creators for outreach.

#### 4. Content-Localization Research

**Localization teams evaluating Chinese content for export.**

**Input:** Keyword searches across drama, variety, and anime.
**Output:** Structured metadata per title.
**Use:** Shortlist Chinese long-form content for subtitling and distribution.

#### 5. Academic & Trend Monitoring

**Media scholars and analysts studying Chinese streaming.**

**Input:** Scheduled keyword searches.
**Output:** Time-stamped datasets of Youku metadata.
**Use:** Track category trends on one of China's big-three video platforms without manual collection.

***

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/youku-video-scraper').call({
  operation: 'videoSearch',
  keyword: '庆余年',
  maxPages: 2
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/youku-video-scraper').call(
    run_input={'operation': 'videoDetail', 'videoId': 'fbbfcb303fcc4e2c8e18'}
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~youku-video-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation": "userProfile", "uid": "UNDc4MDk2MzMyMA=="}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: Schedule or webhook
2. **HTTP Request**: Call the actor API
3. **Process**: Handle JSON results
4. **Action**: Save, notify, or transform

***

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- Sample rows per run — full feature access, same quality
- No credit card required
- Perfect for testing the search → detail → profile chain

#### PAID Tier (Production Ready)

- Unlimited rows per run
- Pay-per-result: only charged for successful rows
- Error rows are never billed

🔗 [View current pricing](https://apify.com/sian.agency/youku-video-scraper?fpr=sian)

***

### ❓ Frequently Asked Questions

**Q: Do I need a Youku account or API key?**
A: No. Just pick an operation and run.

**Q: How do I get a video or creator ID?**
A: Run Video Search first — each row has a `showId`. Run Video Detail on that ID — the row includes the creator's `uploaderUid`, which feeds Creator Profile.

**Q: Why does Creator Profile sometimes return no creator?**
A: Roughly 83% of videos carry an uploader UID. Some officially-licensed content (e.g. certain anime and studio titles) has no individual uploader, so no profile exists to resolve.

**Q: What language should I search in?**
A: Chinese keywords return the best results (try 庆余年, 电视剧, 纪录片, 综艺, 动漫).

**Q: What output formats are available?**
A: JSON, CSV, Excel, and XML — export directly from the Apify dataset.

**Q: Is this legal?**
A: Yes — we only extract publicly available data. See the legal section below.

***

### 🐛 Troubleshooting

**No rows returned from Video Search**

- Use a Chinese keyword; English terms often return fewer or no results.

**Video Detail returns an error row**

- Confirm you used the `showId` (the alphanumeric hash from a search row), not the numeric `programId`.

**Creator Profile returns no data**

- The video may have no uploader UID (licensed content). Try a different video's `uploaderUid`.

**Data source temporarily unavailable**

- This is a transient signal; the actor retries automatically. Re-run if it persists.

***

### ⚠️ Trademark Disclaimer

This is an **independent scraping tool**. It is not affiliated with, endorsed by, or sponsored by Youku (优酷), Alibaba Group, or any of their subsidiaries. The Youku® and 优酷® names appear under nominative fair use solely to describe what the tool does. All trademarks belong to their respective owners.

***

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

***

### 🤝 Support

[![Telegram Support](https://img.shields.io/badge/Telegram-Support%20Group-0088cc?logo=telegram)](https://t.me/+vyh1sRE08sAxMGRi)

**Join our active support community**

- For issues or questions, open an issue in the actor's Issues tab
- Check [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- 📧 <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Actor input Schema

## `operation` (type: `string`):

Pick what you want to scrape. Each run does one operation.

## `keyword` (type: `string`):

Search query. Chinese gives the best results (try 庆余年, 电视剧, 纪录片, 综艺, 动漫). Required for Video Search.

## `videoId` (type: `string`):

The Youku show ID (the alphanumeric hash, e.g. fbbfcb303fcc4e2c8e18). Find it in the `showId` field of any Video Search row, or in a Youku URL like v.youku.com/v\_show/id\_XXXX.html. Required for Video Detail.

## `uid` (type: `string`):

The Youku creator UID (the encoded form, e.g. UNDc4MDk2MzMyMA==). Find it in the `uploaderUid` field of any Video Detail row. Required for Creator Profile.

## `maxPages` (type: `integer`):

Max pages to scrape. Applies only to Video Search (~15 shows per page). Default 5. Range 1-50.

## Actor input object example

```json
{
  "operation": "videoSearch",
  "keyword": "庆余年",
  "videoId": "fbbfcb303fcc4e2c8e18",
  "uid": "UNDc4MDk2MzMyMA==",
  "maxPages": 5
}
```

# Actor output Schema

## `output` (type: `string`):

Video search results, deep video details, or creator profiles — one flat row per upstream item with curated camelCase aliases (showId, videoTitle, categoryName, showName, episodeTotal, durationSeconds, uploaderUid, nickName, followCount, ...).

## `report` (type: `string`):

HTML report with run status, success/error row counts, success rate, pages fetched, duration, and the inputs used — written even on fatal crash.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/youku-video-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/youku-video-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 '{}' |
apify call sian.agency/youku-video-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Youku Scraper — Chinese Video Search, Details & Creators",
        "description": "Scrape Youku (优酷), one of China's largest long-form video platforms. Search videos by keyword, pull rich video details (title, category, episodes, plays, duration), and extract creator profiles with follower and engagement metrics. No login or API key required — export clean JSON, CSV or Excel.",
        "version": "1.0",
        "x-build-id": "g4xHYTedSRoeRbCzJ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sian.agency~youku-video-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sian.agency-youku-video-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/sian.agency~youku-video-scraper/runs": {
            "post": {
                "operationId": "runs-sync-sian.agency-youku-video-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/sian.agency~youku-video-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-sian.agency-youku-video-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": [
                    "operation"
                ],
                "properties": {
                    "operation": {
                        "title": "Operation",
                        "enum": [
                            "videoSearch",
                            "videoDetail",
                            "userProfile"
                        ],
                        "type": "string",
                        "description": "Pick what you want to scrape. Each run does one operation.",
                        "default": "videoSearch"
                    },
                    "keyword": {
                        "title": "Search Keyword (for Video Search)",
                        "type": "string",
                        "description": "Search query. Chinese gives the best results (try 庆余年, 电视剧, 纪录片, 综艺, 动漫). Required for Video Search."
                    },
                    "videoId": {
                        "title": "Video / Show ID (for Video Detail)",
                        "type": "string",
                        "description": "The Youku show ID (the alphanumeric hash, e.g. fbbfcb303fcc4e2c8e18). Find it in the `showId` field of any Video Search row, or in a Youku URL like v.youku.com/v_show/id_XXXX.html. Required for Video Detail."
                    },
                    "uid": {
                        "title": "Creator UID (for Creator Profile)",
                        "type": "string",
                        "description": "The Youku creator UID (the encoded form, e.g. UNDc4MDk2MzMyMA==). Find it in the `uploaderUid` field of any Video Detail row. Required for Creator Profile."
                    },
                    "maxPages": {
                        "title": "Max pages (for Video Search)",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Max pages to scrape. Applies only to Video Search (~15 shows per page). Default 5. Range 1-50.",
                        "default": 5
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
