# Amazon Price Monitor (`gedli/amazon-intelligence-actor`) Actor

Monitor Amazon products with AI-powered insights. Track prices, ratings, Buy Box changes, and product opportunities. Export clean data to JSON, CSV, JSONL, or SQLite for automation, research, and price monitoring.

- **URL**: https://apify.com/gedli/amazon-intelligence-actor.md
- **Developed by:** [Reidel Papa](https://apify.com/gedli) (community)
- **Categories:** E-commerce, Automation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.35 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

## Amazon Product Monitor

**Stop guessing which products to sell. Every listing gets scored for demand, competition, and profit — before you export.**

[![apify run](https://img.shields.io/badge/apify%20run-%E2%9C%93-success)](https://docs.apify.com/cli)
[![AI](https://img.shields.io/badge/AI-OpenRouter%20Free-4ade80)](config.py)
[![59 fields](https://img.shields.io/badge/fields-59-8b5cf6)](#what-you-get-per-product)
[![Pricing](https://img.shields.io/badge/from-%240.75%2F1K%20results-blue)](#pricing)

---

### Why This Exists

Most Amazon scrapers hand you raw data — prices, ratings, reviews — and leave you to figure out what it means. You still need to decide: *Is this product worth selling? How competitive is this niche? What's the profit potential?*

This Actor answers those questions. Every product gets scored before you open the spreadsheet.

| You get this | Competitors give you |
|---|---|
| Demand score (0-100) + reasons why | Raw numbers. You decide. |
| Competition score + profit potential | Nothing. It's on you. |
| AI sales intelligence (free) | No AI. Or paid AI surcharges. |
| 9 discovery modes | 1-3 modes |
| 59 output fields | ~30 fields |
| 4 export formats (JSON, CSV, JSONL, SQLite) | JSON only (sometimes) |
| Schedule-ready with resume | Stateless. Start over. |
| **Zero-cost AI enrichment** | **$0.003-0.05/row AI fees** |

**The bottom line:** You're already paying for raw data. Getting intelligence at the same price means every dollar works twice as hard.

---

### Who This Is For

- **Amazon sellers** — find profitable products and know when to enter a market
- **Dropshippers** — score products before listing and spot trends early
- **Arbitrage sellers** — identify price gaps with profit potential scores
- **Affiliate marketers** — discover trending products with high demand
- **E-commerce agencies** — run competitive analysis for clients at scale
- **AI agents** — feed structured, enriched product data into automated workflows

---

### What You Get Per Product

Each product you scrape comes back with **59 structured fields** — not just raw data, but actionable intelligence.

**Pricing & identity** — ASIN, title, brand, category, current price, list price, discount %, coupon, currency, URL, images

**Ratings & demand signals** — star rating, review count, bestseller rank, Prime eligibility, fulfillment type, stock status, seller info, delivery estimate

**Opportunity scores** (0-100, each with confidence + reasons):
- **Demand** — how many people want this product
- **Competition** — how hard it is to enter this niche
- **Profit potential** — what the margin opportunity looks like
- **Opportunity** — composite: should you sell this?

**Trend & market signals** — rising/steady/declining direction, seasonality, resale potential, bundle detection, anomaly detection

**AI sales intelligence** (free, zero API cost):
- Search intent — what customers are actually looking for
- Target customer — who buys this product
- Suggested keywords — for your listings and PPC campaigns
- Sales angle — how to market it effectively
- Competitive strengths and weaknesses
- One-line opportunity verdict

*Every score works with or without an AI API key. Deterministic signals power the core scoring; AI enriches it when available.*

[See full sample output →](sample_outputs/)

---

### One Actor, 9 Discovery Modes

```json
{"mode": "search", "query": "wireless mouse", "maxProducts": 20}
{"mode": "asins", "asins": ["B09X7MPX8L", "B08JHCVHTY"]}
{"mode": "urls", "startUrls": ["https://www.amazon.com/dp/B09X7MPX8L"]}
{"mode": "bestsellers", "category": "electronics"}
{"mode": "movers", "category": "home"}
{"mode": "new_releases", "category": "kitchen"}
{"mode": "store", "store_url": "https://www.amazon.com/stores/page/..."}
{"mode": "brand", "query": "Sony"}
{"mode": "category", "query": "Pet Supplies"}
````

***

### Quick Start

#### On Apify Cloud (recommended)

1. Open the [Actor on Apify Store](https://console.apify.com/actors/BBY56bWJauNCoIGaA)
2. Select a discovery mode, enter your keyword, ASINs, or URLs
3. Click **Run** — results appear in the dataset with all 59 fields
4. Export from the dataset to JSON, CSV, JSONL, or SQLite

#### Locally with Apify CLI

```bash
## Install CLI (one-time)
curl -fsSL https://apify.com/install-cli.sh | bash

## Clone and run
git clone <your-repo>
cd amazon-store-scraper
apify run  # reads local INPUT.json
```

#### Locally with Python

```bash
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
playwright install chromium
cp .env.example .env

python -m src search "wireless mouse" --max 10
python -m src bestsellers electronics --max 20
python -m src urls https://www.amazon.com/dp/B09X7MPX8L
```

#### From JSON pipe

```bash
echo '{"mode":"search","query":"usb cable","maxProducts":5}' | python -m src
```

[Full examples →](examples/)

***

### Output

**On Apify Cloud**, results go to your run's **Dataset** — export to JSON, CSV, JSONL, or SQLite from the Console or API. The dataset is the canonical output.

**Locally**, every run produces 4 files in `output/`:

| Format | File | Best for |
|---|---|---|
| JSON | `output/products.json` | APIs, debugging, AI agents |
| CSV | `output/products.csv` | Excel, Google Sheets, pivot tables |
| JSONL | `output/products.jsonl` | Streaming, line-by-line processing |
| SQLite | `output/products.sqlite` | Persistent analysis, SQL queries |

***

### AI Enrichment — Zero Cost

All AI runs on **OpenRouter free models only** — no API tokens consumed, no surcharge.

| Signal | What it tells you |
|---|---|
| Demand score | 0-100 hybrid (deterministic signals + AI overlay) |
| Competition analysis | Review density, price pressure, brand strength |
| Profit potential | Price gap, margin opportunity, category health |
| Trend detection | Rising, steady, or declining |
| Seasonality | Year-round, Q4, summer, holiday |
| Product intelligence | Search intent, target customer, keywords, sales angle |
| Safety checks | Bundle detection, anomaly detection (suspicious pricing) |

**Model chain:** `google/gemma-4-31b-it:free` → `nvidia/nemotron-3-nano-30b-a3b:free` → fallback

Disable with `ENABLE_AI=false`. The Actor still scores products using deterministic signals — no API key required.

***

### Environment Variables

| Variable | Default | What it does |
|---|---|---|
| `OPENROUTER_API_KEY` | — | Enables AI enrichment (free models) |
| `MAX_PRODUCTS` | 20 | Products per mode |
| `MAX_PAGES` | 3 | Search pages to crawl |
| `REQUEST_DELAY` | 1.5s | Seconds between page visits |
| `HEADLESS` | true | Browser visibility |
| `ENABLE_AI` | true | Toggle AI enrichment |
| `ENABLE_PROXY` | false | Toggle HTTP proxy |
| `ENABLE_RESUME` | true | Persist crawl state across interruptions |

[Full configuration reference →](AGENTS.md)

***

### Pricing

| Tier | Results/month | Price | AI Enrichment |
|---|---|---|---|
| Free | 10 | $0 | ✅ |
| Standard | Per 1K results | $0.75 | ✅ |

AI is always included at no extra cost. Pay per result, not per month.

***

### FAQ

**Do I need a paid API key for AI?**
No. All AI uses OpenRouter free models. No API key = AI skipped, deterministic scoring still runs. Every score works with or without AI.

**What do the opportunity scores mean?**
All scores are 0-100. **Demand** = how many people want this (reviews, rating, BSR, Prime). **Competition** = how hard it is to enter (review density, discount depth, brand strength). **Profit potential** = margin opportunity (price gap, category health, brand premium). **Opportunity** = composite: demand × (1 − competition) × profit.

**What Amazon regions are supported?**
Currently amazon.com (US). Multi-market (DE, UK, JP, CA, AU, FR, IT, ES) is on the roadmap.

**Can I scrape 1,000+ ASINs?**
Yes — use bulk ASIN or URL input. Throughput is ~6-8 products/minute with sync Playwright. For large batches, batch into multiple runs with lower concurrency.

**How often do CSS selectors break?**
Amazon changes HTML ~2-4 times per year. Each change requires a selector update (~1-2 hours). The Actor's retry + backoff handles transient issues automatically.

**Is scraping Amazon legal?**
Public product data (prices, ratings, descriptions) is legal to scrape. See [Apify's scraping legality guide](https://blog.apify.com/is-web-scraping-legal/).

**How do I use this with Apify schedules?**
Create a daily or weekly schedule in Apify Console. The Actor's resume support picks up where it left off if interrupted. Structured logs are written to every run.

***

### Roadmap

- \[x] 9 discovery modes
- \[x] Opportunity scoring (demand, competition, profit)
- \[x] AI intelligence (intent, keywords, sales angle)
- \[x] 4 export formats (JSON, CSV, JSONL, SQLite)
- \[x] Deterministic scoring without AI
- \[ ] Multi-market (DE, UK, JP, CA, AU, etc.)
- \[ ] Change detection (price/rating/review delta)
- \[ ] Scheduled weekly reports
- \[ ] Integration templates (n8n, Make, Zapier)

***

### Documentation

- [AI Agent Guide](AGENTS.md)
- [Examples](examples/)
- [Sample Outputs](sample_outputs/)
- [Changelog](CHANGELOG.md)
- [Store Assets](STORE_ASSETS.md)

***

### License

MIT

# Actor input Schema

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

How to find products. Search = keyword search. ASINs = bulk ASIN lookup. URLs = scrape specific product URLs. bestsellers/movers/new-releases = browse Amazon rankings.

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

Keyword to search for (used in search, brand, and category modes)

## `queries` (type: `array`):

Multiple keywords to search in sequence (one run = all queries)

## `asins` (type: `array`):

One or more Amazon ASINs to look up. Supports hundreds.

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

Amazon product URLs to scrape directly (one per element). Paste any number of product detail page URLs.

## `store_url` (type: `string`):

Full Amazon storefront URL (for store mode)

## `brand` (type: `string`):

Brand name to search for (for brand mode)

## `category` (type: `string`):

Category to browse (for category/bestsellers/movers/new-releases modes)

## `maxProducts` (type: `integer`):

Maximum number of products to return

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

Maximum search/browse pages to crawl (1-20)

## `outputFormat` (type: `string`):

Export format. 'all' produces JSON, CSV, JSONL, and SQLite.

## `headless` (type: `boolean`):

Run browser in headless mode (always true on Apify Cloud)

## `enableAi` (type: `boolean`):

Enrich products with opportunity scoring, trend detection, search intent, and sales intelligence (requires OpenRouter API key in env var)

## Actor input object example

```json
{
  "mode": "search",
  "query": "wireless mouse",
  "asins": [
    "B09X7MPX8L",
    "B08JHCVHTY"
  ],
  "startUrls": [
    "https://www.amazon.com/dp/B09X7MPX8L"
  ],
  "store_url": "https://www.amazon.com/stores/page/...",
  "maxProducts": 20,
  "maxPages": 3,
  "outputFormat": "all",
  "headless": true,
  "enableAi": true
}
```

# Actor output Schema

## `results` (type: `string`):

Structured product data with all 59 fields per item. JSON, CSV, JSONL, and XML formats available via the API.

# 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 = {
    "query": "wireless mouse",
    "asins": [
        "B09X7MPX8L",
        "B08JHCVHTY"
    ],
    "startUrls": [
        "https://www.amazon.com/dp/B09X7MPX8L"
    ],
    "store_url": "https://www.amazon.com/stores/page/..."
};

// Run the Actor and wait for it to finish
const run = await client.actor("gedli/amazon-intelligence-actor").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 = {
    "query": "wireless mouse",
    "asins": [
        "B09X7MPX8L",
        "B08JHCVHTY",
    ],
    "startUrls": ["https://www.amazon.com/dp/B09X7MPX8L"],
    "store_url": "https://www.amazon.com/stores/page/...",
}

# Run the Actor and wait for it to finish
run = client.actor("gedli/amazon-intelligence-actor").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 '{
  "query": "wireless mouse",
  "asins": [
    "B09X7MPX8L",
    "B08JHCVHTY"
  ],
  "startUrls": [
    "https://www.amazon.com/dp/B09X7MPX8L"
  ],
  "store_url": "https://www.amazon.com/stores/page/..."
}' |
apify call gedli/amazon-intelligence-actor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Amazon Price Monitor",
        "description": "Monitor Amazon products with AI-powered insights. Track prices, ratings, Buy Box changes, and product opportunities. Export clean data to JSON, CSV, JSONL, or SQLite for automation, research, and price monitoring.",
        "version": "2.0",
        "x-build-id": "dnqTroHYydRZ0YWRA"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/gedli~amazon-intelligence-actor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-gedli-amazon-intelligence-actor",
                "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/gedli~amazon-intelligence-actor/runs": {
            "post": {
                "operationId": "runs-sync-gedli-amazon-intelligence-actor",
                "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/gedli~amazon-intelligence-actor/run-sync": {
            "post": {
                "operationId": "run-sync-gedli-amazon-intelligence-actor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Discovery Mode",
                        "enum": [
                            "search",
                            "asins",
                            "urls",
                            "bestsellers",
                            "movers",
                            "new_releases",
                            "store",
                            "brand",
                            "category"
                        ],
                        "type": "string",
                        "description": "How to find products. Search = keyword search. ASINs = bulk ASIN lookup. URLs = scrape specific product URLs. bestsellers/movers/new-releases = browse Amazon rankings.",
                        "default": "search"
                    },
                    "query": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Keyword to search for (used in search, brand, and category modes)"
                    },
                    "queries": {
                        "title": "Bulk Keywords",
                        "type": "array",
                        "description": "Multiple keywords to search in sequence (one run = all queries)",
                        "items": {
                            "type": "string"
                        }
                    },
                    "asins": {
                        "title": "ASINs (bulk lookup)",
                        "type": "array",
                        "description": "One or more Amazon ASINs to look up. Supports hundreds.",
                        "items": {
                            "type": "string",
                            "pattern": "^[A-Z0-9]{10}$"
                        }
                    },
                    "startUrls": {
                        "title": "Product URLs (bulk)",
                        "type": "array",
                        "description": "Amazon product URLs to scrape directly (one per element). Paste any number of product detail page URLs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "store_url": {
                        "title": "Amazon Store URL",
                        "type": "string",
                        "description": "Full Amazon storefront URL (for store mode)"
                    },
                    "brand": {
                        "title": "Brand Name",
                        "type": "string",
                        "description": "Brand name to search for (for brand mode)"
                    },
                    "category": {
                        "title": "Amazon Category",
                        "enum": [
                            "",
                            "electronics",
                            "computers",
                            "kitchen",
                            "home",
                            "office",
                            "health",
                            "baby",
                            "pets",
                            "automotive",
                            "sports",
                            "tools",
                            "toys"
                        ],
                        "type": "string",
                        "description": "Category to browse (for category/bestsellers/movers/new-releases modes)"
                    },
                    "maxProducts": {
                        "title": "Max Products per mode",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum number of products to return",
                        "default": 20
                    },
                    "maxPages": {
                        "title": "Max Search Pages",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum search/browse pages to crawl (1-20)",
                        "default": 3
                    },
                    "outputFormat": {
                        "title": "Output Format",
                        "enum": [
                            "json",
                            "csv",
                            "jsonl",
                            "sqlite",
                            "all"
                        ],
                        "type": "string",
                        "description": "Export format. 'all' produces JSON, CSV, JSONL, and SQLite.",
                        "default": "all"
                    },
                    "headless": {
                        "title": "Headless Browser",
                        "type": "boolean",
                        "description": "Run browser in headless mode (always true on Apify Cloud)",
                        "default": true
                    },
                    "enableAi": {
                        "title": "Enable AI Enrichment",
                        "type": "boolean",
                        "description": "Enrich products with opportunity scoring, trend detection, search intent, and sales intelligence (requires OpenRouter API key in env var)",
                        "default": true
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
