# PriceCharting Video Game Prices Scraper (`automation-lab/pricecharting-video-game-prices-scraper`) Actor

Extract condition-level PriceCharting game values, catalog metadata, price changes, sales velocity, images, and bounded visible sold comps.

- **URL**: https://apify.com/automation-lab/pricecharting-video-game-prices-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** E-commerce, Games
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.25 / 1,000 game valuations

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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## PriceCharting Video Game Prices Scraper

Turn public PriceCharting pages into structured video game valuation data.

Search by game title, paste a PriceCharting search URL, or target an exact product page.

Get loose, complete-in-box, new, graded, box-only, and manual-only values in one record.

Add recent visible sold comps when you need evidence behind the guide price.

Use the output for inventory repricing, collection valuation, purchasing, insurance, and market monitoring.

No PriceCharting login or paid API key is required for the public data extracted by this Actor.

### What does PriceCharting Video Game Prices Scraper do?

The Actor reads public PriceCharting search and video game product pages over HTTP.

For every matched video game it extracts:

- 🎮 game title and console
- 🔗 canonical PriceCharting URL and PriceCharting ID
- 🏷️ UPC/EAN, ASIN, and eBay ePID when shown
- 🧑‍💻 publisher, developer, release date, genre, and ESRB rating
- 💵 loose, CIB, new, graded, box-only, and manual-only prices
- 📈 current price deltas and displayed sales velocity
- 🖼️ public product image URLs
- 🧾 bounded visible sold listings with date, condition, price, and source URL

Search pages can mix games with cards or other collectibles.

This Actor verifies product metadata and rejects non-video-game templates rather than returning misleading records.

### Who is this video game price scraper for?

**Retro game stores** can refresh condition-level values before repricing shelves or online inventory.

**Resellers** can compare acquisition cost with loose, CIB, and recent sold values.

**Collectors** can build repeatable snapshots for a personal collection without manual copy and paste.

**Insurance and estate teams** can attach source identifiers and timestamps to valuation records.

**Developers** can feed normalized PriceCharting data into dashboards, alerts, and internal tools.

**Market researchers** can compare value changes and sales velocity across consoles.

### Why use this Actor?

PriceCharting pages are useful to people but awkward for automated workflows.

The Actor turns each game into a stable JSON row with numeric prices.

You do not need to maintain selectors, retry logic, URL validation, exports, or Apify integrations.

It uses lightweight HTTP extraction instead of a browser, keeping normal runs fast and inexpensive.

Inputs from multiple searches and product URLs are deduplicated by PriceCharting ID.

A complete extraction failure exits with an error instead of silently succeeding with an empty dataset.

### What data can I extract?

| Field | Description |
|---|---|
| `title` | Video game title |
| `console` | PriceCharting console or platform |
| `canonicalUrl` | Canonical product URL |
| `priceChartingId` | PriceCharting product identifier |
| `upc` | One or more displayed UPC/EAN codes |
| `asin` / `epid` | Amazon ASIN and eBay ePID when available |
| `genre` / `esrbRating` | Game classification metadata |
| `publisher` / `developer` | Displayed company metadata |
| `releaseDate` | Displayed release date |
| `loosePrice` | Current loose value in USD |
| `cibPrice` | Current complete-in-box value in USD |
| `newPrice` | Current new value in USD |
| `gradedPrice` | Current graded value in USD |
| `boxOnlyPrice` | Current box-only value in USD |
| `manualOnlyPrice` | Current manual-only value in USD |
| `*PriceChange` | Displayed dollar change for each condition |
| `*SalesVelocity` | Displayed sale frequency for each condition |
| `soldCompCount` | Visible sold records saved for the game |
| `scrapedAt` | UTC extraction timestamp |

### Separate Sold Comps dataset

Sold listings are a different entity from game valuations.

They are saved to the named **Visible Sold Comps** dataset instead of being mixed into the default table.

Each comp includes:

- related game title, URL, and PriceCharting ID
- PriceCharting condition such as Loose or Complete
- sale title and sale date
- normalized numeric sale price
- marketplace label when visible
- source listing URL when visible
- scrape timestamp

Set `includeSoldComps` to `false` if you only need current guide values.

Use `maxSoldCompsPerProduct` to bound history volume.

### How much does it cost to scrape PriceCharting game prices?

The Actor uses pay-per-event pricing.

A small start event covers fixed run setup, and each successfully saved dataset record is one item event.

That means one event for a game valuation and one event for each requested visible sold-comp row. Failed lookups and skipped non-game product templates are not item events.

Pricing uses a $0.005 start and tiered item rates; the BRONZE rate is $0.0004136 per successfully extracted dataset record.

Apify plan tiers receive decreasing item rates at higher plan levels.

Your exact run total appears in Apify Console before and after execution.

Keep `maxItems` small for your first run, review the matches, and then scale.

### How to scrape PriceCharting in 5 steps

1. Open the Actor input page.
2. Enter one or more specific game searches, such as `Super Mario Bros NES`.
3. Optionally add exact PriceCharting search or game product URLs.
4. Choose the game limit and sold-comp limit.
5. Start the Actor and export the Video Game Values and Visible Sold Comps datasets.

Specific search terms that include the console usually produce the best matches.

### Input parameters

#### Game searches

`searchTerms` accepts an array of text searches.

Examples include `Pokemon Red GameBoy`, `Sonic the Hedgehog Genesis`, and `Zelda NES`.

#### PriceCharting URLs

`startUrls` accepts public PriceCharting `/search-products` and `/game/...` URLs.

Other domains and unsupported PriceCharting routes fail validation.

#### Limits

`maxItems` controls unique game rows and supports 1 to 1,000.

`maxSoldCompsPerProduct` supports 0 to 100 visible sales per game.

#### Connection

`proxyConfiguration` is optional.

Direct requests normally work; a proxy can help larger repeated jobs if the source rate-limits traffic.

### Example input

```json
{
  "searchTerms": ["Super Mario Bros NES"],
  "startUrls": [
    { "url": "https://www.pricecharting.com/game/gameboy/pokemon-red" }
  ],
  "maxItems": 5,
  "includeSoldComps": true,
  "maxSoldCompsPerProduct": 5
}
````

You can use only searches, only URLs, or combine them.

Duplicate product URLs are removed automatically.

### Example game output

```json
{
  "title": "Pokemon Red",
  "console": "GameBoy",
  "canonicalUrl": "https://www.pricecharting.com/game/gameboy/pokemon-red",
  "priceChartingId": "2985",
  "upc": ["045496730734", "045496460716"],
  "publisher": "Nintendo",
  "developer": "Game Freak",
  "genre": "RPG",
  "loosePrice": 60.03,
  "cibPrice": 329.95,
  "newPrice": 3400,
  "looseSalesVelocity": "3 sales per day",
  "soldCompCount": 5,
  "scrapedAt": "2026-07-20T06:01:52.635Z"
}
```

Prices are numbers in USD, not formatted strings.

Unavailable optional metadata is returned as `null`.

### Tips for accurate valuation workflows

- 🔎 Include the console in search terms to reduce ambiguous matches.
- 🔗 Use a direct product URL when valuing a known catalog item.
- 📦 Compare the condition that matches your actual inventory.
- 🧾 Use sold comps as supporting evidence, not as guaranteed complete market history.
- 🕐 Save `scrapedAt` when building historical snapshots.
- 🧪 Start with two to five games before running a large inventory batch.
- 🔁 Schedule repeated runs at a cadence appropriate for your catalog.

PriceCharting values can change between runs as source data updates.

### Integrations and automation patterns

Export both datasets as JSON, CSV, Excel, XML, or RSS through Apify.

Send the default dataset to **Google Sheets** for a buyer or store pricing review.

Use **Make** or **Zapier** to notify a purchasing channel when a value crosses a threshold.

Load snapshots into **BigQuery**, **Snowflake**, or PostgreSQL for price-trend analysis.

Join `priceChartingId` with your inventory SKU table for repeatable repricing.

Use webhooks to trigger a downstream insurance report after a scheduled collection refresh.

### JavaScript API usage

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/pricecharting-video-game-prices-scraper').call({
  searchTerms: ['Super Mario Bros NES'],
  maxItems: 5,
  includeSoldComps: true,
  maxSoldCompsPerProduct: 5,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

The default dataset contains game valuation rows.

Named sold-comp dataset access is available from the run storage view in Apify Console.

### Python API usage

```python
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/pricecharting-video-game-prices-scraper').call(run_input={
    'startUrls': [{'url': 'https://www.pricecharting.com/game/gameboy/pokemon-red'}],
    'maxItems': 1,
    'includeSoldComps': True,
    'maxSoldCompsPerProduct': 10,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

Store the token in an environment variable rather than source code.

### cURL API usage

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/automation-lab~pricecharting-video-game-prices-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchTerms":["Zelda NES"],"maxItems":3,"includeSoldComps":true,"maxSoldCompsPerProduct":5}'
```

Poll the returned run ID or attach a webhook for asynchronous workflows.

Never publish your API token in client-side code.

### Use with Apify MCP

Add the Actor to Claude Code:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/pricecharting-video-game-prices-scraper"
```

For Claude Desktop, Cursor, or VS Code, use this MCP configuration:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=automation-lab/pricecharting-video-game-prices-scraper"
    }
  }
}
```

Example prompts:

- “Extract the current PriceCharting values for Pokemon Red on GameBoy.”
- “Build a five-game NES valuation table with recent visible sold comps.”
- “Compare loose and CIB values for these PriceCharting product URLs.”

MCP lets an assistant start the Actor and reason over structured results.

### Scheduling a price monitor

Create an Apify Task with fixed search terms or product URLs.

Run it daily, weekly, or monthly using Apify Schedules.

Send the dataset to your database or compare it with the prior snapshot.

Use `canonicalUrl` or `priceChartingId` as the stable join key.

Alert only on changes large enough to matter for your workflow.

Remember that the Actor extracts current public source data; it does not retain your prior runs automatically.

### Reliability and limits

The Actor uses bounded retries for rate limits and temporary server errors.

Requests are deliberately sequential to reduce pressure on PriceCharting.

Large search pages can include many collectible matches before game results.

The Actor scans more candidates than it saves, then stops at `maxItems` video games.

Markup or source access can change without notice.

The visible sold rows are bounded and may not represent every historical transaction.

Paid PriceCharting API data and paid Time Warp photos are outside this product.

### Troubleshooting

**Why did my search return unexpected editions?**

Add the console, region, or edition to the search text, or use exact product URLs.

**Why did the run say no video-game records were extracted?**

The input may target cards, comics, coins, an unsupported route, or a search with no matching games. Check the URL and use a game-specific query.

**Why was the run rate-limited?**

Reduce batch size, retry later, or configure an Apify Proxy session.

**Why are some identifiers null?**

PriceCharting does not show every catalog identifier on every product page.

### Is scraping PriceCharting legal?

This Actor accesses public pages without login and does not bypass paid API access.

You are responsible for your use of the data and for following applicable laws and terms.

Avoid excessive request volume and do not use the output to infringe copyrights or trademarks.

PriceCharting, game titles, console names, and marketplace names belong to their respective owners.

This Actor is an independent extraction tool and is not affiliated with PriceCharting.

For regulated insurance or financial decisions, apply your own review and valuation methodology.

### FAQ

**Does it support trading cards or comics?**

No. v1 intentionally fails closed to video games; collectible templates are skipped.

**Can I scrape one exact game?**

Yes. Pass its public PriceCharting `/game/...` URL with `maxItems: 1`.

**Are sold comps included?**

Yes, when `includeSoldComps` is true. They appear in a separate named dataset.

**Can I export to CSV or Excel?**

Yes. Use Apify dataset export controls or API endpoints.

**Does it need residential proxy traffic?**

Not normally. Direct HTTP is the default; proxy configuration is optional.

**Does it return complete price history?**

It returns current displayed values, deltas, velocity, and a bounded set of visible sold listings—not paid or complete history.

### Related scrapers

Combine this Actor with [eBay Sold Listings Scraper](https://apify.com/automation-lab/ebay-sold-scraper) for a broader resale-comps workflow.

Use [eBay Scraper](https://apify.com/automation-lab/ebay-scraper) to inspect active marketplace listings alongside guide values.

Explore other public data tools from [Automation Lab](https://apify.com/automation-lab).

Choose related tools only when their source and workflow match your valuation task.

### Data freshness and responsible use

Every output row includes an extraction timestamp.

Store snapshots if you need trend history because current pages change over time.

Use modest schedules and limits to avoid unnecessary load and cost.

Review outliers manually before changing high-value inventory prices.

Treat guide values and marketplace transactions as evidence, not guarantees of a future sale.

Start with a narrow sample, validate the results against the source, and then automate confidently.

# Actor input Schema

## `searchTerms` (type: `array`):

Game titles with an optional console, for example 'Super Mario Bros NES'. Specific searches avoid unrelated collectible matches.

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

Public PriceCharting /search-products or /game URLs. Card, comic, and coin product templates are rejected.

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

Stop after this many unique video game records across all inputs.

## `includeSoldComps` (type: `boolean`):

Save public historic sold listings to the separate Sold Comps dataset.

## `maxSoldCompsPerProduct` (type: `integer`):

Maximum visible sold records saved for each game across all conditions.

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

Optional Apify Proxy settings. Direct HTTP usually works; use a proxy if PriceCharting rate-limits your run.

## Actor input object example

```json
{
  "searchTerms": [
    "Super Mario Bros NES"
  ],
  "maxItems": 2,
  "includeSoldComps": true,
  "maxSoldCompsPerProduct": 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 = {
    "searchTerms": [
        "Super Mario Bros NES"
    ],
    "maxItems": 2,
    "includeSoldComps": true,
    "maxSoldCompsPerProduct": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/pricecharting-video-game-prices-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 = {
    "searchTerms": ["Super Mario Bros NES"],
    "maxItems": 2,
    "includeSoldComps": True,
    "maxSoldCompsPerProduct": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/pricecharting-video-game-prices-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 '{
  "searchTerms": [
    "Super Mario Bros NES"
  ],
  "maxItems": 2,
  "includeSoldComps": true,
  "maxSoldCompsPerProduct": 5
}' |
apify call automation-lab/pricecharting-video-game-prices-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "PriceCharting Video Game Prices Scraper",
        "description": "Extract condition-level PriceCharting game values, catalog metadata, price changes, sales velocity, images, and bounded visible sold comps.",
        "version": "0.1",
        "x-build-id": "7jjKDzEpDnDPdZE7o"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~pricecharting-video-game-prices-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-pricecharting-video-game-prices-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~pricecharting-video-game-prices-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-pricecharting-video-game-prices-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~pricecharting-video-game-prices-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-pricecharting-video-game-prices-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": {
                    "searchTerms": {
                        "title": "Game searches",
                        "type": "array",
                        "description": "Game titles with an optional console, for example 'Super Mario Bros NES'. Specific searches avoid unrelated collectible matches.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "PriceCharting URLs",
                        "type": "array",
                        "description": "Public PriceCharting /search-products or /game URLs. Card, comic, and coin product templates are rejected.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Maximum games",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Stop after this many unique video game records across all inputs.",
                        "default": 10
                    },
                    "includeSoldComps": {
                        "title": "Extract visible sold comps",
                        "type": "boolean",
                        "description": "Save public historic sold listings to the separate Sold Comps dataset.",
                        "default": true
                    },
                    "maxSoldCompsPerProduct": {
                        "title": "Sold comps per game",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Maximum visible sold records saved for each game across all conditions.",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional Apify Proxy settings. Direct HTTP usually works; use a proxy if PriceCharting rate-limits your run."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
