# CheapShark Game Deals Scraper (`parseforge/cheapshark-game-deals-scraper`) Actor

Track live PC game discounts from CheapShark across more than 30 stores. Each deal returns the title, store name, sale price, normal price, savings percent, Steam rating, and Metacritic score. Handy for price comparison sites, deal roundups, and discount trend research.

- **URL**: https://apify.com/parseforge/cheapshark-game-deals-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 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)

## 🦈 CheapShark Game Deals Scraper

> 🚀 **Export live PC game deals in seconds.** Pull 60 deals per page across 15 active stores with sale price, normal price, savings percent, Steam rating, and Metacritic score on every record.

> 🕒 **Last updated:** 2026-06-04 · **📊 20 fields** per record · 30+ tracked stores · global PC pricing

Track every discount on the PC market without opening a single store tab. The CheapShark Game Deals Scraper reads the public CheapShark catalog and returns a clean, ready to use feed of game deals with store names already resolved, prices in US dollars, savings rounded to two decimals, and release dates converted to readable ISO timestamps.

It covers deals from Steam, GreenManGaming, GOG, Humble Store, Fanatical, Epic Games Store, Uplay, IndieGala, and more, so you can compare the cheapest price for any title across the whole storefront landscape in one pass. Two modes are built in. Browse the live deals feed with filters, or search a single game title and get its cheapest price across every store.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Deal hunters and gamers | Catch the lowest price before a sale ends |
| Price comparison sites | Power a cross store game price table |
| Content creators and bloggers | Build daily or weekly deal roundups |
| Resellers and key sites | Spot pricing gaps and discount trends |
| Data analysts | Study discount depth, ratings, and timing |

### 📋 What the CheapShark Game Deals Scraper does

- Pulls the live deals feed sorted by Deal Rating, Savings, Price, Metacritic, Reviews, Release Date, and more.
- Resolves every numeric store ID into a readable store name like Steam or GOG.
- Returns sale price, normal price, and savings percent for direct discount math.
- Adds Steam positive review percentage, Steam review label, review count, and Metacritic score.
- Converts release date and last price change from epoch to ISO 8601 timestamps.
- Builds a ready to click redirect URL for each deal.
- Offers a game title search mode that returns the cheapest price for a specific game across stores.
- Filters the feed by store, maximum sale price, and minimum Steam rating.

### 🎬 Full Demo (_🚧 Coming soon_)

### ⚙️ Input

| Field | Type | Description |
|---|---|---|
| `searchTitle` | string | Optional. A game title. When set, the run switches to search mode and returns that game's cheapest price across stores. Leave empty to scrape the deals feed. |
| `maxItems` | integer | How many records to return. Free plan is capped at 10. |
| `sortBy` | select | Order for the deals feed. Deal Rating, Title, Savings, Price, Metacritic, Reviews, Release Date, Store, Most Recent. |
| `storeID` | select | Limit the feed to a single store, or All Stores. |
| `upperPrice` | integer | Only return deals at or below this sale price in US dollars. |
| `steamRating` | integer | Only return deals with at least this Steam positive review percentage. |

**Example 1. Best rated deals under 15 dollars**

```json
{
    "maxItems": 25,
    "sortBy": "Deal Rating",
    "upperPrice": 15
}
````

**Example 2. Search a single game across stores**

```json
{
    "maxItems": 10,
    "searchTitle": "Elden Ring"
}
```

> ⚠️ **Good to Know:** The deals feed filters (`sortBy`, `storeID`, `upperPrice`, `steamRating`) apply only when `searchTitle` is empty. In search mode only the title is used. Some titles carry no Metacritic score (returned as "0") and a few have no Steam rating yet (returned as an empty value). These fields are kept so your table stays consistent.

### 📊 Output

Each record carries these fields. The image comes first and the error flag comes last.

| Field | Description |
|---|---|
| 🖼 `imageUrl` | Game cover thumbnail URL |
| 📌 `title` | Game title |
| 🏪 `storeId` / `storeName` | Store numeric ID and resolved name |
| 🎮 `gameId` / `steamAppId` | CheapShark game ID and Steam app ID |
| 🔗 `dealId` / `dealUrl` | Deal ID and ready to click redirect URL |
| 💲 `salePrice` / `normalPrice` | Current sale price and list price in USD |
| 📉 `savingsPercent` | Discount percentage rounded to two decimals |
| ⭐ `dealRating` | CheapShark deal quality score from 0 to 10 |
| 🎯 `metacriticScore` | Metacritic score |
| 👍 `steamRatingPercent` / `steamRatingText` / `steamRatingCount` | Steam positive review percentage, label, and count |
| 📅 `releaseDate` / `lastChange` | Release date and last price change as ISO timestamps |
| 🕒 `scrapedAt` | When the record was collected |
| ❌ `error` | Null on success |

**Real sample records**

```json
{
    "imageUrl": "https://shared.fastly.steamstatic.com/store_item_assets/steam/apps/1206070/eaf4088286084079a50063faf920ccd330de15ed/capsule_231x87.jpg?t=1780328474",
    "title": "Phonopolis",
    "storeId": "1",
    "storeName": "Steam",
    "gameId": "323026",
    "steamAppId": "1206070",
    "dealId": "8CH%2B1wDG7J2Nx4ujxnA047AbZy5EdKb6sBkx7rYQh1Q%3D",
    "dealUrl": "https://www.cheapshark.com/redirect?dealID=8CH%2B1wDG7J2Nx4ujxnA047AbZy5EdKb6sBkx7rYQh1Q%3D",
    "salePrice": "22.38",
    "normalPrice": "35.98",
    "savingsPercent": 37.8,
    "dealRating": "10.0",
    "metacriticScore": "86",
    "steamRatingPercent": "93",
    "steamRatingText": "Very Positive",
    "steamRatingCount": "933",
    "releaseDate": "2026-05-20T00:00:00.000Z",
    "lastChange": "2026-06-03T19:14:31.000Z",
    "mode": "deals-feed",
    "scrapedAt": "2026-06-04T19:50:55.387Z",
    "error": null
}
```

```json
{
    "imageUrl": "https://shared.fastly.steamstatic.com/store_item_assets/steam/apps/3472040/8496e0023f3b24c9bf87e1459cb9651f5a7a6732/capsule_231x87_alt_assets_5.jpg?t=1778857348",
    "title": "NBA 2K26",
    "storeId": "3",
    "storeName": "GreenManGaming",
    "gameId": "305539",
    "steamAppId": "3472040",
    "dealId": "dua6N5u4HYIU5lUexFlvkjLixz5RHy0a4lzdZENh64A%3D",
    "dealUrl": "https://www.cheapshark.com/redirect?dealID=dua6N5u4HYIU5lUexFlvkjLixz5RHy0a4lzdZENh64A%3D",
    "salePrice": "8.82",
    "normalPrice": "69.99",
    "savingsPercent": 87.4,
    "dealRating": "10.0",
    "metacriticScore": "83",
    "steamRatingPercent": "73",
    "steamRatingText": "Mostly Positive",
    "steamRatingCount": "10799",
    "releaseDate": "2025-09-05T00:00:00.000Z",
    "lastChange": "2026-06-04T08:33:23.000Z",
    "mode": "deals-feed",
    "scrapedAt": "2026-06-04T19:50:55.460Z",
    "error": null
}
```

```json
{
    "imageUrl": "https://shared.fastly.steamstatic.com/store_item_assets/steam/apps/2904040/9304517f41be9f792616594aa964d08c9c07455b/capsule_231x87.jpg?t=1779977714",
    "title": "Cheap Car Repair",
    "storeId": "1",
    "storeName": "Steam",
    "gameId": "323476",
    "steamAppId": "2904040",
    "dealId": "j1aOXs1hCdQdeLCS25iCB1S920G7ifHcQMKYflm9KW8%3D",
    "dealUrl": "https://www.cheapshark.com/redirect?dealID=j1aOXs1hCdQdeLCS25iCB1S920G7ifHcQMKYflm9KW8%3D",
    "salePrice": "14.22",
    "normalPrice": "31.21",
    "savingsPercent": 54.44,
    "dealRating": "10.0",
    "metacriticScore": "0",
    "steamRatingPercent": "92",
    "steamRatingText": "Very Positive",
    "steamRatingCount": "1469",
    "releaseDate": "2026-05-28T00:00:00.000Z",
    "lastChange": "2026-05-30T17:21:30.000Z",
    "mode": "deals-feed",
    "scrapedAt": "2026-06-04T19:50:55.490Z",
    "error": null
}
```

### ✨ Why choose this Actor

- Store names are already resolved, so you read Steam instead of a bare numeric ID.
- Prices, savings, and dates arrive clean and ready for a spreadsheet or a dashboard.
- Two modes cover both broad deal discovery and single game price checks.
- No key and no login. The source is a public catalog.
- Every record leads with a cover image and ends with a clear error flag.

### 📈 How it compares to alternatives

| Approach | Store names | Ratings included | Two modes | Maintenance |
|---|---|---|---|---|
| This Actor | Resolved automatically | Steam and Metacritic | Feed and search | None on your side |
| Manual store browsing | One store at a time | Scattered | No | High |
| Generic web scraper | You map IDs yourself | Often missing | Usually one | You maintain selectors |

### 🚀 How to use

1. Create a free Apify account with [this sign up link](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the CheapShark Game Deals Scraper in the Apify Console.
3. Pick a mode. Leave the title empty to browse the deals feed, or type a game title to search.
4. Set filters such as store, maximum price, or minimum Steam rating, then set how many records you want.
5. Run the Actor and collect the results from the output table or the API.

### 💼 Business use cases

**Price comparison platforms**

| Need | How this helps |
|---|---|
| Cross store price table | Each deal carries store name, sale price, and normal price |
| Always current data | Re run the feed on a schedule to refresh prices |

**Deal and coupon sites**

| Need | How this helps |
|---|---|
| Daily deal roundups | Sort by Savings or Deal Rating to surface the best discounts |
| Click ready links | Every record includes a redirect URL straight to the store |

**Reselling and key trading**

| Need | How this helps |
|---|---|
| Spot pricing gaps | Compare the same game across multiple stores |
| Track discount depth | Use savings percent and last change date together |

**Market research**

| Need | How this helps |
|---|---|
| Discount trend analysis | Combine savings, ratings, and release date over time |
| Catalog coverage | Pull broad feeds across 15 active stores |

### 🔌 Automating CheapShark Game Deals Scraper

Connect the output to the tools your team already uses.

- **Make** and **Zapier** to trigger workflows when fresh deals land.
- **Slack** to post the day's top discounts to a channel.
- **Airbyte** to sync results into a warehouse.
- **GitHub** Actions to run scheduled pulls.
- **Google Drive** to archive each run for later analysis.

### 🌟 Beyond business use cases

- **Research:** study how discount depth relates to ratings and game age.
- **Personal:** watch a wishlist of titles and grab the lowest price.
- **Non profit:** stretch a limited budget by finding the cheapest store for each title.
- **Experimentation:** prototype a price alert bot on top of the deals feed.

### 🤖 Ask an AI assistant

Paste a results sample into your favorite assistant and ask for insights.

- [ChatGPT](https://chat.openai.com/)
- [Claude](https://claude.ai/)
- [Perplexity](https://www.perplexity.ai/)
- [Microsoft Copilot](https://copilot.microsoft.com/)

### ❓ Frequently Asked Questions

**Do I need an API key or a CheapShark account?**
No. The source is a public catalog, so no key and no login are required.

**Which stores are covered?**
The catalog tracks 30 plus stores and 15 are currently active, including Steam, GOG, GreenManGaming, Humble Store, Fanatical, and Epic Games Store.

**What is the difference between the two modes?**
With an empty title you get the live deals feed with filters. With a title set you get the cheapest price for that one game across stores.

**Why is Metacritic score sometimes 0?**
Some titles have no Metacritic entry yet. The source returns 0 in that case, and the field is kept so your table layout stays steady.

**Why is the Steam rating sometimes empty?**
A few new or niche titles have no Steam review data yet. The field is kept and left empty rather than dropped.

**What currency are prices in?**
Prices are in US dollars as provided by the source.

**How do I open a deal in the store?**
Use the `dealUrl` field. It is a redirect link that sends you to the deal on the store page.

**Can I limit results by price?**
Yes. Set `upperPrice` to a dollar value and only deals at or below that sale price are returned.

**Can I filter by review quality?**
Yes. Set `steamRating` to a minimum positive review percentage to keep only well reviewed titles.

**How many records can I get per run?**
Free plans return up to 10 records. Paid plans can return far more by raising the item limit.

**How fresh is the data?**
Each run reads the catalog live, so prices reflect the moment you run it. The `lastChange` field shows when each deal price last moved.

**Can I run it on a schedule?**
Yes. Use the Apify scheduler or any of the listed integrations to refresh the feed automatically.

### 🔌 Integrate with any app

Send the output anywhere through the Apify API, webhooks, or the integrations above. Results are available as a dataset you can pull on demand.

### 🔗 Recommended Actors

- [RAWG Scraper](https://apify.com/parseforge/rawg-scraper) for rich game metadata from the RAWG database.
- [Steam Store Scraper](https://apify.com/parseforge/steam-store-scraper) for full Steam store listings and details.
- [OpenCritic Games Scraper](https://apify.com/parseforge/opencritic-games-scraper) for aggregated critic scores.
- [GiantBomb Games Scraper](https://apify.com/parseforge/giantbomb-games-scraper) for the GiantBomb games encyclopedia.
- [Valorant Game Content Scraper](https://apify.com/parseforge/valorant-game-content-scraper) for Valorant agents, maps, and weapons.

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge).

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA)

> **⚠️ Disclaimer:** This is an independent tool, not affiliated with CheapShark. Only publicly available data is collected.

# Actor input Schema

## `searchTitle` (type: `string`):

Optional. Type a game title to switch to search mode and find that game's cheapest price across stores (for example Portal, Hades, Elden Ring). Leave empty to browse the live deals feed instead.

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

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

## `sortBy` (type: `string`):

How to order the deals feed.

## `storeID` (type: `string`):

Limit deals to a single store. Leave empty for all stores.

## `upperPrice` (type: `integer`):

Only return deals at or below this sale price in US dollars. Leave empty for no price cap.

## `steamRating` (type: `integer`):

Only return deals whose Steam positive review percentage is at least this value.

## Actor input object example

```json
{
  "maxItems": 10,
  "sortBy": "Deal Rating",
  "storeID": ""
}
```

# 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 = {
    "searchTitle": "",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/cheapshark-game-deals-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 = {
    "searchTitle": "",
    "maxItems": 10,
}

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "CheapShark Game Deals Scraper",
        "description": "Track live PC game discounts from CheapShark across more than 30 stores. Each deal returns the title, store name, sale price, normal price, savings percent, Steam rating, and Metacritic score. Handy for price comparison sites, deal roundups, and discount trend research.",
        "version": "0.1",
        "x-build-id": "bO9rDHWO6052p5ycn"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~cheapshark-game-deals-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-cheapshark-game-deals-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~cheapshark-game-deals-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-cheapshark-game-deals-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~cheapshark-game-deals-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-cheapshark-game-deals-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": {
                    "searchTitle": {
                        "title": "Game Title Search",
                        "type": "string",
                        "description": "Optional. Type a game title to switch to search mode and find that game's cheapest price across stores (for example Portal, Hades, Elden Ring). Leave empty to browse the live deals feed instead."
                    },
                    "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"
                    },
                    "sortBy": {
                        "title": "Sort Deals By",
                        "enum": [
                            "Deal Rating",
                            "Title",
                            "Savings",
                            "Price",
                            "Metacritic",
                            "Reviews",
                            "Release",
                            "Store",
                            "Recent"
                        ],
                        "type": "string",
                        "description": "How to order the deals feed.",
                        "default": "Deal Rating"
                    },
                    "storeID": {
                        "title": "Store",
                        "enum": [
                            "",
                            "1",
                            "2",
                            "3",
                            "7",
                            "11",
                            "13",
                            "15",
                            "21",
                            "23",
                            "25",
                            "27",
                            "28",
                            "29",
                            "30",
                            "35"
                        ],
                        "type": "string",
                        "description": "Limit deals to a single store. Leave empty for all stores.",
                        "default": ""
                    },
                    "upperPrice": {
                        "title": "Maximum Sale Price (USD)",
                        "minimum": 0,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Only return deals at or below this sale price in US dollars. Leave empty for no price cap."
                    },
                    "steamRating": {
                        "title": "Minimum Steam Rating (%)",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Only return deals whose Steam positive review percentage is at least this value."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
