# Steam Workshop Scraper (`automation-lab/steam-workshop-scraper`) Actor

Scrape Steam Workshop mods, creators, ratings, subscribers, tags, dependencies, comments, and change links for game intelligence.

- **URL**: https://apify.com/automation-lab/steam-workshop-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Other
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

## Steam Workshop Scraper

Extract public Steam Workshop mods, maps, collections, creators, ratings, subscribers, tags, dependencies, change links, and comments from Steam Workshop pages.

Use this actor when you need structured Workshop intelligence for games such as Counter-Strike 2, Garry's Mod, Project Zomboid, Cities: Skylines, RimWorld, and other Steam titles with active mod ecosystems.

### What does Steam Workshop Scraper do?

Steam Workshop Scraper turns public Steam Workshop browse, search, and item detail pages into clean dataset records.

It can start from Steam Workshop browse URLs, exact item detail URLs, or Steam app IDs.

For each discovered Workshop item, it opens the public detail page and extracts the fields analysts usually need.

Typical fields include title, Workshop file ID, Steam app ID, game name, creator profile, rating count, visitor count, subscriber count, favorite count, tags, preview images, description, posted date, updated date, change note link, collection count, and optional public comments.

### Who is it for?

Game studios can monitor which community maps, skins, add-ons, and mods gain traction.

Publishers can compare creator ecosystems across titles.

Community managers can find popular creators and content themes.

Mod-platform analysts can track subscriber and favorite trends.

Gaming data vendors can enrich datasets with public Workshop metadata.

Market researchers can study genre, tag, and creator behavior across games.

### Why use this actor?

Steam Workshop pages are built for browsing, not bulk analysis.

Manual collection is slow and inconsistent.

This actor saves Workshop pages as structured rows that can be exported to JSON, CSV, Excel, Google Sheets, databases, or BI tools.

It uses HTTP extraction rather than a browser, so runs are lightweight and cost-efficient.

### What Steam Workshop data can I extract?

| Field | Description |
| --- | --- |
| `itemId` | Steam Workshop published file ID |
| `url` | Canonical item detail URL |
| `title` | Workshop item title |
| `appId` | Steam app/game ID |
| `game` | Game name when visible |
| `authorName` | Creator display name |
| `authorUrl` | Creator Steam profile URL |
| `ratingText` | Visible rating text |
| `ratingCount` | Parsed number of ratings |
| `uniqueVisitors` | Public visitor counter |
| `currentSubscribers` | Public subscriber counter |
| `currentFavorites` | Public favorite counter |
| `fileSize` | Visible file size |
| `postedAt` | Posted date text |
| `updatedAt` | Updated date text |
| `description` | Public Workshop description text |
| `tags` | Workshop tags |
| `previewImageUrls` | Preview and screenshot image URLs |
| `dependencies` | Optional required item links when rendered |
| `collectionCount` | Number of visible collections using the item |
| `commentCount` | Public comment count |
| `comments` | Optional recent public comments |
| `changelogUrl` | Change notes URL |
| `sourceUrl` | Browse or detail URL that produced the item |
| `scrapedAt` | ISO timestamp for the scrape |

### How much does it cost to scrape Steam Workshop mods?

This actor uses pay-per-event pricing.

There is a small run-start charge and a per-item charge for each Workshop item saved to the dataset.

The default input is intentionally small, so your first run stays cheap.

Increase `maxItems` when you are ready to collect a larger sample.

Comments add extra page requests, so enable `includeComments` only when comment text is part of your workflow.

### Quick start

1. Open the actor on Apify.
2. Keep the default Steam app ID or paste your own Workshop URL.
3. Set `maxItems` to the number of Workshop items you need.
4. Choose a sort order such as Trending, Top rated, Most subscribed, or Most recent.
5. Decide whether to include comments and dependencies.
6. Start the run.
7. Export the dataset in your preferred format.

### Input options

#### Steam Workshop URLs

Use `startUrls` for exact Steam Workshop browse/search URLs or item detail URLs.

Example browse URL:

```text
https://steamcommunity.com/workshop/browse/?appid=730&browsesort=trend&section=readytouseitems
````

Example item URL:

```text
https://steamcommunity.com/sharedfiles/filedetails/?id=3750019896
```

#### Steam app IDs

Use `appIds` when you want the actor to build browse URLs for you.

Common examples:

- `730` — Counter-Strike 2
- `4000` — Garry's Mod
- `108600` — Project Zomboid
- `294100` — RimWorld
- `255710` — Cities: Skylines

#### Search query

Use `query` to search Workshop titles and descriptions.

Examples:

- `map`
- `realism`
- `weapon`
- `server`
- `quality of life`

#### Browse sort

Use `browseSort` to match Steam's public browse filters.

Supported values:

- `trend`
- `mostrecent`
- `lastupdated`
- `totaluniquesubscribers`
- `totaluniquevisitors`
- `toprated`

#### Section

Use `section` to choose the Workshop area.

Most users should keep `readytouseitems`.

Collections and guides may expose different item shapes, so validate a small sample before large runs.

#### Comments and dependencies

Set `includeComments` to `true` to fetch recent public comments.

Set `includeDependencies` to `true` to capture visible required item links and related collection links when Steam renders them.

### Example input: trending CS2 maps

```json
{
  "appIds": ["730"],
  "query": "map",
  "browseSort": "trend",
  "section": "readytouseitems",
  "maxItems": 50,
  "includeDependencies": true,
  "includeComments": false,
  "maxConcurrency": 5
}
```

### Example input: exact Workshop item with comments

```json
{
  "startUrls": [
    { "url": "https://steamcommunity.com/sharedfiles/filedetails/?id=3750019896" }
  ],
  "maxItems": 1,
  "includeDependencies": true,
  "includeComments": true,
  "maxCommentsPerItem": 5
}
```

### Example output

```json
{
  "itemId": "3750019896",
  "url": "https://steamcommunity.com/sharedfiles/filedetails/?id=3750019896",
  "title": "Nuke Line-ups | JuggLineups",
  "appId": "730",
  "game": "Counter-Strike 2",
  "authorName": "juggphd",
  "ratingCount": 1063,
  "currentSubscribers": 23956,
  "tags": ["CS2", "Map"],
  "commentCount": 119,
  "changelogUrl": "https://steamcommunity.com/sharedfiles/filedetails/changelog/3750019896"
}
```

### Tips for better results

Start with a small `maxItems` value to confirm the game and filter combination works.

Use `toprated` for evergreen content discovery.

Use `trend` for current momentum.

Use `lastupdated` to monitor active creators and recently maintained mods.

Use `totaluniquesubscribers` to find historically popular items.

Keep comment extraction disabled unless you need comment text.

Use lower concurrency for very large runs to reduce rate-limit risk.

### Integrations

Send the output dataset to Google Sheets for creator watchlists.

Export CSV files for BI dashboards.

Connect the dataset to BigQuery, Snowflake, or Postgres for longitudinal analysis.

Use Apify webhooks to trigger downstream alerts when new Workshop items appear.

Combine the actor with sentiment analysis to classify public comments.

Join `appId` and `itemId` with your internal game catalog.

### API usage

#### Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/steam-workshop-scraper').call({
  appIds: ['730'],
  query: 'map',
  maxItems: 50,
});

console.log(`Dataset: ${run.defaultDatasetId}`);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('automation-lab/steam-workshop-scraper').call(run_input={
    'appIds': ['730'],
    'query': 'map',
    'maxItems': 50,
})
print(run['defaultDatasetId'])
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~steam-workshop-scraper/runs?token=MY-APIFY-TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"appIds":["730"],"query":"map","maxItems":50}'
```

### MCP usage

Use the Apify MCP server to run this actor from AI tools.

MCP URL:

```text
https://mcp.apify.com/?tools=automation-lab/steam-workshop-scraper
```

Claude Code setup:

```bash
claude mcp add apify-steam-workshop "https://mcp.apify.com/?tools=automation-lab/steam-workshop-scraper"
```

Claude Desktop JSON config:

```json
{
  "mcpServers": {
    "apify-steam-workshop": {
      "url": "https://mcp.apify.com/?tools=automation-lab/steam-workshop-scraper"
    }
  }
}
```

Example prompts showing MCP usage:

Example Claude Code MCP prompt:

```text
Run automation-lab/steam-workshop-scraper for appId 730, query map, maxItems 25. Summarize the top creators by subscriber count.
```

Example Claude Desktop MCP prompt:

```text
Scrape top-rated Steam Workshop items for Garry's Mod and export titles, authors, subscribers, favorites, and tags.
```

Example MCP analysis prompt:

```text
Use the Steam Workshop Scraper to collect 100 trending CS2 map items, then rank them by subscribers, favorites, and update recency.
```

### Data quality notes

Steam displays dates as public page text, often without a year.

Subscriber and visitor counts are public counters that may change over time.

Some Workshop items hide comments, collections, dependencies, or stats.

The actor returns optional fields only when Steam renders them publicly.

### Legality

This actor extracts publicly available web pages.

You are responsible for using the data lawfully and respecting Steam's terms, applicable privacy rules, and your own compliance requirements.

Avoid collecting personal data you do not need.

Do not use the actor for spam, harassment, or abusive automation.

### FAQ

#### Why did I get fewer items than requested?

Steam may return fewer results for narrow queries, tags, or small Workshop sections.

Try a broader query, remove required tags, or use a popular app ID.

#### Why are comments empty?

Comments may be disabled, hidden, rate-limited, or unavailable on the public comments page.

Enable `includeComments` and keep `maxCommentsPerItem` small for testing.

#### Why is the game field missing?

Some Workshop pages do not render the game name in a stable place.

Use `appId` as the reliable join key.

### Related scrapers

Explore other automation-lab actors for gaming and community intelligence:

- https://apify.com/automation-lab/steam-workshop-scraper
- https://apify.com/automation-lab/steam-reviews-scraper
- https://apify.com/automation-lab/reddit-scraper
- https://apify.com/automation-lab/discord-server-scraper

### Changelog

Initial version extracts public Steam Workshop browse and item detail data with optional comments and dependency links.

### Support

If a Steam page type does not parse correctly, share the input URL and run ID so the extractor can be improved.

# Actor input Schema

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

Optional Steam Workshop browse/search URLs or sharedfiles/filedetails item URLs. If empty, the actor uses appIds.

## `appIds` (type: `array`):

Steam game/app IDs to browse. Example: 730 for Counter-Strike 2, 4000 for Garry's Mod, 108600 for Project Zomboid.

## `query` (type: `string`):

Optional Workshop search text, such as map, skin, realism, or a creator/product keyword.

## `browseSort` (type: `string`):

Steam Workshop sort order for generated browse URLs.

## `section` (type: `string`):

Steam Workshop section to browse. Most users should keep ready-to-use items.

## `requiredTags` (type: `array`):

Optional Steam Workshop tags to filter generated browse URLs, e.g. Map or CS2.

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

Maximum item detail records to save. Keep the prefill low for quick tests; raise it for trend monitoring.

## `includeComments` (type: `boolean`):

Fetch recent public comments from each item comment tab. This adds one extra request per item.

## `maxCommentsPerItem` (type: `integer`):

Maximum comments saved per Workshop item when comments are enabled.

## `includeDependencies` (type: `boolean`):

Extract visible required items and collection links when Steam renders them on the item page.

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

Number of item detail pages fetched at once. Conservative defaults reduce Steam rate-limit risk.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://steamcommunity.com/workshop/browse/?appid=730&browsesort=trend&section=readytouseitems"
    }
  ],
  "appIds": [
    "730"
  ],
  "query": "map",
  "browseSort": "trend",
  "section": "readytouseitems",
  "requiredTags": [],
  "maxItems": 20,
  "includeComments": false,
  "maxCommentsPerItem": 5,
  "includeDependencies": false,
  "maxConcurrency": 5
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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://steamcommunity.com/workshop/browse/?appid=730&browsesort=trend&section=readytouseitems"
        }
    ],
    "appIds": [
        "730"
    ],
    "query": "map",
    "browseSort": "trend",
    "section": "readytouseitems",
    "requiredTags": [],
    "maxItems": 20,
    "includeComments": false,
    "maxCommentsPerItem": 5,
    "includeDependencies": false,
    "maxConcurrency": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/steam-workshop-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 = {
    "startUrls": [{ "url": "https://steamcommunity.com/workshop/browse/?appid=730&browsesort=trend&section=readytouseitems" }],
    "appIds": ["730"],
    "query": "map",
    "browseSort": "trend",
    "section": "readytouseitems",
    "requiredTags": [],
    "maxItems": 20,
    "includeComments": False,
    "maxCommentsPerItem": 5,
    "includeDependencies": False,
    "maxConcurrency": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/steam-workshop-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 '{
  "startUrls": [
    {
      "url": "https://steamcommunity.com/workshop/browse/?appid=730&browsesort=trend&section=readytouseitems"
    }
  ],
  "appIds": [
    "730"
  ],
  "query": "map",
  "browseSort": "trend",
  "section": "readytouseitems",
  "requiredTags": [],
  "maxItems": 20,
  "includeComments": false,
  "maxCommentsPerItem": 5,
  "includeDependencies": false,
  "maxConcurrency": 5
}' |
apify call automation-lab/steam-workshop-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=automation-lab/steam-workshop-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Steam Workshop Scraper",
        "description": "Scrape Steam Workshop mods, creators, ratings, subscribers, tags, dependencies, comments, and change links for game intelligence.",
        "version": "0.1",
        "x-build-id": "XeS428mECbQ9fu7p7"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~steam-workshop-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-steam-workshop-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/automation-lab~steam-workshop-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-steam-workshop-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/automation-lab~steam-workshop-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-steam-workshop-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",
                "properties": {
                    "startUrls": {
                        "title": "Steam Workshop URLs",
                        "type": "array",
                        "description": "Optional Steam Workshop browse/search URLs or sharedfiles/filedetails item URLs. If empty, the actor uses appIds.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "appIds": {
                        "title": "Steam app IDs",
                        "type": "array",
                        "description": "Steam game/app IDs to browse. Example: 730 for Counter-Strike 2, 4000 for Garry's Mod, 108600 for Project Zomboid.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "query": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Optional Workshop search text, such as map, skin, realism, or a creator/product keyword."
                    },
                    "browseSort": {
                        "title": "Browse sort",
                        "enum": [
                            "trend",
                            "mostrecent",
                            "lastupdated",
                            "totaluniquesubscribers",
                            "totaluniquevisitors",
                            "toprated"
                        ],
                        "type": "string",
                        "description": "Steam Workshop sort order for generated browse URLs.",
                        "default": "trend"
                    },
                    "section": {
                        "title": "Workshop section",
                        "enum": [
                            "readytouseitems",
                            "collections",
                            "discussions",
                            "guides"
                        ],
                        "type": "string",
                        "description": "Steam Workshop section to browse. Most users should keep ready-to-use items.",
                        "default": "readytouseitems"
                    },
                    "requiredTags": {
                        "title": "Required tags",
                        "type": "array",
                        "description": "Optional Steam Workshop tags to filter generated browse URLs, e.g. Map or CS2.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum Workshop items",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum item detail records to save. Keep the prefill low for quick tests; raise it for trend monitoring.",
                        "default": 50
                    },
                    "includeComments": {
                        "title": "Include public comments",
                        "type": "boolean",
                        "description": "Fetch recent public comments from each item comment tab. This adds one extra request per item.",
                        "default": false
                    },
                    "maxCommentsPerItem": {
                        "title": "Maximum comments per item",
                        "minimum": 0,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum comments saved per Workshop item when comments are enabled.",
                        "default": 5
                    },
                    "includeDependencies": {
                        "title": "Include dependencies and linked collections",
                        "type": "boolean",
                        "description": "Extract visible required items and collection links when Steam renders them on the item page.",
                        "default": false
                    },
                    "maxConcurrency": {
                        "title": "Maximum concurrency",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Number of item detail pages fetched at once. Conservative defaults reduce Steam rate-limit risk.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
