# BoardGameGeek Scraper - Board Games and Reviews (`parseforge/boardgamegeek-scraper`) Actor

Scrape BoardGameGeek game listings, ratings, reviews, and player statistics. Extract game details including mechanics, categories, publishers, and designer information.

- **URL**: https://apify.com/parseforge/boardgamegeek-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Other, Social media, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $19.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🎲 BoardGameGeek Scraper

> 🚀 **Export board game data from BoardGameGeek in seconds.** Hot games, search results, and top-ranked titles with categories, mechanics, designers, publishers, and more - ready for CSV, Excel, JSON, or XML download.

> 🕒 **Last updated:** 2026-05-21 · **📊 17 fields** per record · **50,000+ games** · **Global coverage**

BoardGameGeek (BGG) is the world's largest and most authoritative board game database, with over 140,000 titles rated and reviewed by millions of enthusiasts. This actor fetches real-time data directly from BGG's internal API - no authentication required, no scraping brittle HTML, just clean structured records ready for analysis.

Each record represents one board game: its name, year published, current BGG rank, player count, playtime, age recommendation, description, and rich metadata including categories, mechanics, designers, and publishers. Data is sourced from the same API powering boardgamegeek.com itself.

This actor gives you programmatic access to the board game data that powers the world's largest gaming community - delivered to your Apify dataset in seconds.

---

### 👥 Target Audience / Use Cases

| Who | What they do with it |
|-----|----------------------|
| Board game retailers | Track trending games and stock popular titles |
| Game designers | Research mechanics and categories in the market |
| Data scientists | Build recommendation engines and trend models |
| Collectors and enthusiasts | Export wishlists and catalog personal collections |
| Journalists and bloggers | Pull data for "top games of the year" roundups |
| Publishers and distributors | Monitor competitor titles and emerging mechanics |
| App developers | Seed databases for board game companion apps |
| Academic researchers | Study game design trends and player preference patterns |

---

### 📋 What the BoardGameGeek Scraper does

- Fetches **hot games** currently trending on BGG (50 most trending titles)
- Supports **search mode** - find games by keyword (e.g. "catan", "dungeon", "strategy")
- Includes **top-ranked mode** - export BGG's top-ranked board games of all time
- Returns detailed metadata: categories, mechanics, designers, and publishers per game
- Includes player count, playtime, age recommendation, and full description
- Outputs clean structured records with imageUrl, name, rank, url, and more
- Automatically limits free users to 10 items as a preview; paid users get up to 1,000,000
- Works entirely on BGG's public API - no authentication required

> 💡 **Why it matters:** BoardGameGeek is the Wikipedia of board games. Getting this data programmatically - rather than clicking through BGG's interface - saves hours of manual data entry and enables automation, trend monitoring, and large-scale game catalog analysis.

---

### 🎬 Full Demo

🚧 Coming soon

---

### ⚙️ Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `maxItems` | integer | 10 | Max number of games to return. Free: 10, Paid: up to 1,000,000 |
| `mode` | select | `hot` | Discovery mode: `hot`, `search`, or `top-ranked` |
| `search` | string | `strategy` | Search query (used only in search mode) |

**Example - Hot Games (default):**
```json
{
  "maxItems": 50,
  "mode": "hot"
}
````

**Example - Search Mode:**

```json
{
  "maxItems": 20,
  "mode": "search",
  "search": "dungeon crawler"
}
```

> ⚠️ **Good to Know:** Free users are automatically limited to 10 items per run regardless of `maxItems`. [Upgrade to a paid plan](https://console.apify.com/sign-up?fpr=vmoqkp) to unlock up to 1,000,000 items. The `search` field is only used when `mode` is set to `search`.

***

### 📊 Output

Each item in the dataset represents one board game. All fields are always present (never missing a column).

| Field | Type | Description |
|-------|------|-------------|
| 🖼️ `imageUrl` | string | Cover image URL |
| 🎲 `name` | string | Primary name of the game |
| 📅 `yearPublished` | integer | Year of publication |
| 🏆 `rank` | integer | BGG rank (available in hot and top-ranked modes) |
| 👥 `minPlayers` | integer | Minimum number of players |
| 👥 `maxPlayers` | integer | Maximum number of players |
| ⏱️ `minPlaytime` | integer | Minimum playtime in minutes |
| ⏱️ `maxPlaytime` | integer | Maximum playtime in minutes |
| 🎂 `minAge` | integer | Minimum recommended age |
| 📝 `description` | string | Full game description (HTML stripped) |
| 🏷️ `categories` | array | BGG categories (e.g. \["Adventure", "Fantasy"]) |
| ⚙️ `mechanics` | array | Game mechanics (e.g. \["Cooperative", "Deck Building"]) |
| ✏️ `designers` | array | Game designers |
| 🏢 `publishers` | array | Publishers worldwide |
| 🔗 `url` | string | BGG page URL |
| 🕒 `scrapedAt` | string | ISO timestamp of collection |
| ❌ `error` | string | Error message (null on success) |

**Sample records from a real run:**

```json
[
  {
    "imageUrl": "https://cf.geekdo-images.com/XQI7yrtamaXN2qHJBD_JKg__square100/img/zMdD7h62CTYY9CB574Skz911tys=/0x211:712x923/100x100/filters:strip_icc()/pic9349843.png",
    "name": "First Giants",
    "yearPublished": 2026,
    "rank": 10635,
    "minPlayers": 2,
    "maxPlayers": 5,
    "minPlaytime": 30,
    "maxPlaytime": 30,
    "minAge": 10,
    "description": "Dive into First Giants, a race to create the most prestigious prehistorical animal exhibit! Build your engine by collecting cards with powerful effects OR score points by playing your cards in the exhibit area...",
    "categories": ["Card Game"],
    "mechanics": ["Open Drafting", "Set Collection"],
    "designers": ["Matthew Dunstan", "Brett J. Gilbert"],
    "publishers": ["Space Cowboys", "Hobby Japan", "Rebel Sp. z o.o."],
    "url": "https://boardgamegeek.com/boardgame/462464",
    "scrapedAt": "2026-05-21T23:52:49.634Z",
    "error": null
  },
  {
    "imageUrl": "https://cf.geekdo-images.com/jcaf3UgefVKOrIXt3ijpGA__square100/img/P0spkO6WvWuYRocn5w5MGQG5nho=/100x100/filters:strip_icc()/pic9477824.jpg",
    "name": "Morty Sorty Magic Shop",
    "yearPublished": 2026,
    "rank": 13518,
    "minPlayers": 2,
    "maxPlayers": 4,
    "minPlaytime": 30,
    "maxPlaytime": 30,
    "minAge": 8,
    "description": "The 2 to 4 aspiring sorting masters must skillfully arrange the ingredient jars on the shelves. Competing for the owner's favor, the young magical talents gradually fill their own shelf board...",
    "categories": [],
    "mechanics": ["Tile Placement"],
    "designers": ["Markus Slawitscheck"],
    "publishers": ["Schmidt Spiele"],
    "url": "https://boardgamegeek.com/boardgame/462742",
    "scrapedAt": "2026-05-21T23:52:50.196Z",
    "error": null
  }
]
```

***

### ✨ Why choose this Actor

| Feature | Benefit |
|---------|---------|
| 🌐 BGG's own internal API | Data direct from boardgamegeek.com's live database |
| 🎲 3 discovery modes | Hot, search, and top-ranked - cover any use case |
| 📊 17 fields per record | Categories, mechanics, designers, publishers, and more |
| ⚡ Fast API-first approach | No browser required - pure fetch, runs in seconds |
| 🔓 No auth required | Fully public data - no API keys or login needed |
| 🧩 Rich metadata | Full category and mechanic taxonomy from BGG's database |
| 💾 4 export formats | CSV, Excel, JSON, XML all available from the dataset |
| 🌍 Global coverage | Games from every country, publisher, and era |

***

### 📈 How it compares to alternatives

| Method | Speed | Scale | Automation | Cost |
|--------|-------|-------|------------|------|
| **This Actor** | Seconds | 1M+ records | Full | Free tier available |
| Manual BGG browsing | Minutes per page | Very limited | None | Free but slow |
| BGG XML API (auth required) | Fast | Unlimited | Possible | Requires BGG account |
| Custom scraper | Moderate | Varies | Possible | Dev time required |

***

### 🚀 How to use

1. [Create a free Apify account](https://console.apify.com/sign-up?fpr=vmoqkp) (includes $5 free credit)
2. Find the **BoardGameGeek Scraper** in the Apify Store
3. Choose your `mode`: `hot` for trending games, `search` for keyword lookup, `top-ranked` for BGG's best
4. Set `maxItems` to control how many games to return
5. Click **Start** and wait seconds for the run to complete
6. Download your dataset as CSV, Excel, JSON, or XML

***

### 💼 Business use cases

#### 🛒 Retail Inventory Planning

Pull the current hot games list weekly to identify trending titles before they sell out. Cross-reference BGG rank with your store inventory to reorder popular games automatically. Combine with your POS data to correlate BGG trends with actual sales velocity.

#### 📱 App and Platform Development

Seed a board game recommendation engine or companion app with structured game data. Use categories and mechanics as taxonomy for user preference matching. Keep your database fresh by running the actor on a schedule to catch new releases.

#### 📰 Content and Journalism

Export the top-ranked games of all time with designers and publishers for a "history of board gaming" article. Search for games by mechanic (e.g. "deck building") to write a genre deep-dive. Pull yearly data to analyze which mechanics dominated each era.

#### 🏭 Publisher and Designer Research

Analyze which mechanics appear most in top-ranked games. Track which publishers have the most games in the top 100. Use search mode to monitor how games with your target mechanics are performing on BGG.

***

### 🔌 Automating BoardGameGeek Scraper

Connect this actor to your existing workflows using Make, Zapier, or direct API:

- **Make (Integromat)**: Trigger a weekly run and post new hot games to a Slack channel or Google Sheet
- **Zapier**: When the dataset updates, push new game records to an Airtable base or Notion database
- **Apify API**: Call `POST /v2/acts/parseforge~boardgamegeek-scraper/runs` with your input JSON
- **Webhooks**: Configure Apify webhooks to notify your endpoint when the dataset is ready
- **GitHub Actions**: Add a scheduled workflow to refresh your game catalog database weekly

***

### 🌟 Beyond business use cases

#### 🎓 Academic Research

Study the evolution of board game mechanics over decades. Analyze which categories dominated different eras. Research the correlation between game complexity (player count, playtime) and BGG rank. Hundreds of papers cite BGG data - now you can replicate or extend their datasets programmatically.

#### 🧑‍💻 Developer Experiments

Build a "what should I play tonight?" app, create a board game similarity engine, or train a recommendation model using categories and mechanics as features. The structured output is ready for pandas, scikit-learn, or any ML pipeline.

#### 🤲 Community and Non-Profit Work

Help libraries, schools, or game lending libraries catalog their collections. Export data for a local game club's inventory system. Build a public tool that helps educators find age-appropriate games by mechanic and player count.

#### 🧪 Data Science Education

Board game data is a perfect teaching dataset - it's intuitive, multi-dimensional, and interesting. Use it to teach pandas filtering, categorical data analysis, recommendation systems, or data visualization in a context students actually care about.

***

### 🤖 Ask an AI assistant about this scraper

You can ask an AI assistant (ChatGPT, Claude, Gemini) to help you use this actor. Try prompts like:

- "What mode should I use in the BoardGameGeek Scraper to find cooperative games?"
- "Write me a Python script to call the Apify API and run ParseForge/boardgamegeek-scraper with search mode"
- "How do I filter the BoardGameGeek output to only show games for 2-4 players?"
- "What's the best way to build a board game recommendation engine from this data?"

***

### ❓ Frequently Asked Questions

**🤔 Do I need a BGG account or API key to use this?**
No. This actor uses BGG's public data endpoints with no authentication. You only need an Apify account to run the actor.

**🎲 What modes are available?**
Three modes: `hot` returns the 50 currently trending games on BGG; `search` finds games by keyword; `top-ranked` returns BGG's highest-ranked games of all time.

**📊 How many games are available?**
BGG has over 140,000 board games in its database. The hot list returns 50 games, search returns up to hundreds per query, and top-ranked covers the best games in the database.

**🔄 How often does the hot list update?**
BGG's hot games list updates in near-real-time based on user activity, views, and interactions. Running the actor daily captures fresh trending data.

**📅 Which fields are always populated?**
`name`, `url`, and `scrapedAt` are always present. All other fields may be null if BGG doesn't have that data for a specific game (e.g. old games may lack player count data).

**⚡ How fast is a typical run?**
For 10 games (free tier), expect under 5 seconds. For 50 hot games, under 20 seconds. Each game requires one API call with a 300ms delay to respect BGG's rate limits.

**🔢 What is the `rank` field?**
For `hot` mode, rank reflects the game's current BGG geek rank (overall board game ranking). For `top-ranked` mode, rank reflects the position in our curated top list. For `search` mode, rank is null.

**💰 How much does it cost to run?**
Free users get 10 items per run as a preview. Paid users get up to 1,000,000 items. [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) to get started.

**📋 What export formats are available?**
Your dataset is available as JSON, CSV, Excel (XLSX), and XML directly from the Apify console.

**🔗 Can I run this on a schedule?**
Yes. Use Apify's built-in scheduling to run the actor daily or weekly to track how the hot games list changes over time.

**🏷️ What are categories and mechanics?**
Categories describe what a game is about (e.g. "Fantasy", "Science Fiction", "Card Game"). Mechanics describe how the game is played (e.g. "Deck Building", "Worker Placement", "Cooperative Game"). BGG maintains the authoritative taxonomy for both.

**🖼️ Are images included?**
Yes. The `imageUrl` field returns a 100x100 thumbnail image URL hosted on BGG's CDN (geekdo-images.com). Full-resolution images are available by modifying the URL parameters.

***

### 🔌 Integrate with any app

Connect your BoardGameGeek dataset to:

**Spreadsheets**: Google Sheets, Microsoft Excel, LibreOffice Calc
**Databases**: PostgreSQL, MySQL, MongoDB, Snowflake, BigQuery
**BI Tools**: Tableau, Power BI, Metabase, Looker
**Automation**: Make (Integromat), Zapier, n8n, Pipedream
**Data Science**: Python (pandas, numpy), R, Jupyter Notebooks
**Storage**: AWS S3, Google Cloud Storage, Azure Blob
**APIs**: REST endpoints, GraphQL, webhooks
**Messaging**: Slack, Microsoft Teams, Discord

***

### 🔗 Recommended Actors

| Actor | Description |
|-------|-------------|
| [OurAirports Scraper](https://apify.com/parseforge/ourairports-scraper) | Global airport database with 74,000+ airports |
| [World Bank Data Scraper](https://apify.com/parseforge/world-bank-scraper) | Economic indicators across 200+ countries |
| [Dealstream Scraper](https://apify.com/parseforge/dealstream-scraper) | Business acquisition and M\&A deal listings |

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more high-quality public data actors.

***

**Disclaimer:** This actor uses BoardGameGeek's public data endpoints at boardgamegeek.com and api.geekdo.com. All data is sourced directly from BGG's live database and is subject to [BoardGameGeek's Terms of Use](https://boardgamegeek.com/wiki/page/BGG_FAQ). ParseForge is not affiliated with BoardGameGeek LLC. Please use this actor responsibly and in accordance with BGG's terms of service.

# Actor input Schema

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `mode` (type: `string`):

How to discover games: hot (currently trending), search (by query), or top-ranked (BGG top games).

## `search` (type: `string`):

Search term to find board games (only used in search mode). Example: strategy, catan, dungeon.

## Actor input object example

```json
{
  "maxItems": 10,
  "mode": "hot",
  "search": "strategy"
}
```

# Actor output Schema

## `results` (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 = {
    "maxItems": 10,
    "mode": "hot",
    "search": "strategy"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/boardgamegeek-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 = {
    "maxItems": 10,
    "mode": "hot",
    "search": "strategy",
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/boardgamegeek-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 '{
  "maxItems": 10,
  "mode": "hot",
  "search": "strategy"
}' |
apify call parseforge/boardgamegeek-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "BoardGameGeek Scraper - Board Games and Reviews",
        "description": "Scrape BoardGameGeek game listings, ratings, reviews, and player statistics. Extract game details including mechanics, categories, publishers, and designer information.",
        "version": "0.1",
        "x-build-id": "ub3bDaDG9WUwraOiB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~boardgamegeek-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-boardgamegeek-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/parseforge~boardgamegeek-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-boardgamegeek-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/parseforge~boardgamegeek-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-boardgamegeek-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": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    },
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "hot",
                            "search",
                            "top-ranked"
                        ],
                        "type": "string",
                        "description": "How to discover games: hot (currently trending), search (by query), or top-ranked (BGG top games)."
                    },
                    "search": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Search term to find board games (only used in search mode). Example: strategy, catan, dungeon."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
