# Competitor Price Tracker (`luis.pinto/competitor-price-tracker`) Actor

Track competitor product prices on Amazon, Walmart, Shopify, Best Buy and more. Each run scrapes the latest prices and updates a Notion, Sheets, or Airtable table via Apify MCP Connectors. Export data, run via API, schedule and monitor runs, or integrate with other tools.

- **URL**: https://apify.com/luis.pinto/competitor-price-tracker.md
- **Developed by:** [Luis Pinto](https://apify.com/luis.pinto) (community)
- **Categories:** Agents, Automation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.70 / 1,000 products

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

## Competitor Price Tracker

**Track competitor prices across Amazon, Walmart, Shopify, Best Buy, and any site, synced to Notion, Sheets, or Airtable on every run.**

---

### What does Competitor Price Tracker do?

Competitor Price Tracker scrapes competitor product URLs through the Apify [E-Commerce Scraping Tool](https://apify.com/apify/e-commerce-scraping-tool), then writes or updates a destination database (Notion, Google Sheets, Airtable, or any Model Context Protocol (MCP) connected workspace) you pick at runtime.

- 🔗 Any public product URL: Amazon, Walmart, Best Buy, Shopify, DTC sites
- 📊 Reads and writes to Notion, Sheets, Airtable, or any MCP server
- 🤖 Deterministic dedup so reruns never duplicate rows
- 🏗️ First run creates the database; later runs only insert what changed

**Start with 10 to 50 URLs and one Notion page.**

---

### What data does Competitor Price Tracker track?

| Product data | Commercial info | Run metadata |
|---|---|---|
| 📝 Product title | 💰 Price and currency | 🕐 Scraped timestamp |
| 🔗 Product URL | 📦 In-stock status | ✅ Per-URL status |
| 🏷️ Product identifier | 📉 Pre- vs. post-dedup counts | 💬 LLM summary |

The destination database is the source of truth. Competitor Price Tracker stores no prior prices on the Apify platform, so the destination table doubles as the price history. **Keep it in a workspace the team opens daily.**

---

### Can I track competitor prices on Amazon, Shopify, Walmart, and other sites?

Yes. Competitor Price Tracker works on any public product page via the Apify E-Commerce Scraping Tool:

- **Marketplaces**: Amazon, Walmart, eBay, Target, Best Buy, Costco, Kroger, Rakuten, Allegro, Kaufland
- **Storefronts**: Shopify, WooCommerce, BigCommerce, Magento, Salesforce Commerce Cloud
- **Specialty**: Zalando, ASOS, Etsy, Wayfair, IKEA, Flipkart, SHEIN, Lazada

Pages behind login, paywalls, or cart-only pricing are not supported. **Test one URL first.**

---

### How does Competitor Price Tracker work?

1. You paste product URLs and pick a destination MCP Connector.
2. Competitor Price Tracker calls the Apify E-Commerce Scraping Tool and pulls title, price, currency, and stock per URL.
3. JavaScript reads existing rows from the destination and deduplicates the fresh scrape.
4. JavaScript inserts only new or changed rows back through the Connector.
5. An LLM writes a "what changed" summary, and creates the schema on first run.

The LLM only handles schema and the summary, so runs are fast. **Destination = human artifact, dataset = audit log.**

---

### Why use Competitor Price Tracker?

| Feature | Competitors (DIY, Visualping-class SaaS) | Competitor Price Tracker |
|---|---|---|
| Destination | Your DB or proprietary dashboard | Notion, Sheets, Airtable, or any MCP workspace |
| Change detection | Custom diffs or screenshot diffs | Deterministic JavaScript dedup |
| URL coverage | Single-site or hand-rolled | Any public page via Apify E-Commerce Scraping Tool |
| Scheduling | Cron jobs you maintain | Apify Scheduler: hourly, daily, weekly |
| Cost model | Monthly subscription plus infra | Pay-per-event, free to install |
| MCP and AI agent native | Not available | MCP-native, callable from any AI agent |

**If the team already has Notion or Sheets, Competitor Price Tracker removes the "where does this data live" question.**

---

### What can you do with competitor pricing data?

- **DTC competitor watch**: product teams track 20 to 50 SKUs daily
- **MAP compliance**: brand managers run weekly checks; resellers below minimum advertised price land in the summary
- **Seller monitoring**: pricing analysts watch Amazon third-party sellers hourly during Prime Day
- **Promotion timing**: marketing flags drops over 15% via `customInstructions`
- **Pricing analytics**: pipe the destination into Looker Studio or Metabase

**Pick one use case, ship it, add more.**

---

### How to use Competitor Price Tracker?

1. Create a free [Apify account](https://apify.com).
2. In Apify Console, open **Settings > API & Integrations > MCP Connectors** and connect Notion, Sheets, Airtable, or any MCP server.
3. Open Competitor Price Tracker in Apify Store and click **Try for free**.
4. Paste 5 to 20 URLs into **Competitor product URLs**.
5. Pick your Connector in **Destination MCP Connector**.
6. (Notion) Paste a URL into **Notion parent page URL** for deterministic placement.
7. (Optional) Add **Custom instructions for the AI**, e.g. `Flag any price drop over 10% as urgent`.
8. Click **Start**. A 20-URL run finishes in 1 to 3 minutes.
9. Open the resulting database and share it.
10. Schedule: hourly for electronics, daily for most catalogs, weekly for furniture.

**First run: 5 URLs into a throwaway page. Confirm the schema before production.**

---

### How much will it cost?

Competitor Price Tracker uses Apify pay-per-event pricing and is free to install. You pay for Apify compute, E-Commerce Scraping Tool calls (one per URL), and LLM tokens (via the Apify OpenRouter Actor). No API keys required. Most runs cost cents. See the **Pricing** tab. **Run 10 URLs once, check the cost, pick cadence.**

---

### ⬇️ Input

| Field | Type | Required | Description |
|---|---|---|---|
| `productUrls` | string[] | Yes | Competitor URLs. 10 to 200 per run. |
| `mcpConnector` | string | Recommended | Destination Connector ID. Notion, Sheets, Airtable, or any MCP server with table tools. |
| `notionParentPageUrl` | string | Optional | Notion page the database lives under. Recommended for Notion. |
| `customInstructions` | string | Optional | Extra instructions for the summary LLM. Under 200 chars. |

```json
{
  "productUrls": [
    "https://www.amazon.com/dp/B0CHX2F5QT",
    "https://www.bestbuy.com/site/6525492.p"
  ],
  "mcpConnector": "conn_YOUR_NOTION_CONNECTOR_ID",
  "notionParentPageUrl": "https://www.notion.so/yourworkspace/Tracking-abc",
  "customInstructions": "Flag any price drop over 10% as urgent."
}
````

**Always pass `notionParentPageUrl` for Notion.**

***

### ⬆️ Output

The primary artifact is the destination database the MCP Connector writes to. The Apify dataset also gets one record per run with metadata, pre-dedup counts, and the LLM summary.

```json
{
  "runId": "abc123",
  "startedAt": "2026-04-12T08:00:00.000Z",
  "durationMs": 134000,
  "preDedupCount": 2,
  "postDedupInsertedCount": 1,
  "llmSummary": "iPhone 15 Pro dropped USD 50 on Amazon. Best Buy unchanged."
}
```

**Build dashboards on the destination table, not the Apify dataset.**

***

### How to run Competitor Price Tracker via the Apify API

Start a run with one POST. Get `YOUR_APIFY_TOKEN` from **Settings > Integrations** in Apify Console.

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/luis.pinto~competitor-price-tracker/runs?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "productUrls": ["https://www.amazon.com/dp/B0CHX2F5QT"],
    "mcpConnector": "conn_YOUR_NOTION_CONNECTOR_ID"
  }'
```

The response includes a `runId` you can poll. **Wire this into Zapier, n8n, Make, or any webhook orchestrator.**

***

### Limitations

- **No login or cart-reveal pricing**: only publicly visible prices. Member-only, paywalled, and cart-only pricing is unreachable.
- **Canonicalized URLs**: the Apify E-Commerce Scraping Tool normalizes URLs, so the URL written to your database may differ from the one you pasted (shorter, no tracking parameters). Dedup keys off the canonical URL.
- **Table-capable MCP Connector required**: Notion databases, Sheets, and Airtable bases work. Document-only Connectors do not.

**Match URLs in reporting against the canonical URL in the output.**

***

### Are there other tools for competitor monitoring on Apify?

- **[Apify E-Commerce Scraping Tool](https://apify.com/apify/e-commerce-scraping-tool)**: the underlying scraper. Use directly for raw data.
- **[Amazon Product Scraper](https://apify.com/junglee/amazon-product-scraper)**: deep Amazon extraction.
- **[Google Shopping Scraper](https://apify.com/emastra/google-shopping-scraper)**: price comparisons from Google Shopping.

**Use Competitor Price Tracker for tracking.**

***

### FAQ

**Can I track prices on Amazon, Walmart, Shopify, Best Buy, and Etsy?**
Yes. Confirmed: Amazon, Walmart, eBay, Target, Best Buy, Costco, Shopify, WooCommerce, BigCommerce, Magento, Zalando, ASOS, Etsy, Wayfair, IKEA.

**Can I track prices behind login?**
No. Competitor Price Tracker only reads publicly visible product pages.

**Can I get historical price data?**
Yes. The destination database is the price history; Competitor Price Tracker appends changed rows on every run.

**How often should I schedule runs?**
Hourly for fast-moving categories (electronics, promotions). Daily for most catalogs. Weekly for furniture.

**Can I use Competitor Price Tracker with Zapier, n8n, Make, Slack, or Google Sheets?**
Yes. Start runs via the Apify API from Zapier, n8n, or Make, react to changes in the destination, and post summaries into Slack with a webhook on the run-finished event.

**Can I use Competitor Price Tracker through an MCP Server?**
Yes. Results are written into your MCP-connected workspace, and Competitor Price Tracker is callable from any MCP-enabled AI agent via the Apify Actors MCP Server.

**Can I use Competitor Price Tracker with the Apify API?**
Yes. See "How to run Competitor Price Tracker via the Apify API" above.

**Is scraping competitor prices legal?**
Generally yes for publicly visible pricing. US and EU case law has held public pricing is not protected against automated access. Review each site's terms, avoid personal data, and never scrape behind authentication.

***

### Your feedback

Found a bug or have a feature request? Open an issue on the **[Issues tab](https://console.apify.com/actors/luis.pinto~competitor-price-tracker/issues)**.

# Actor input Schema

## `productUrls` (type: `array`):

Competitor product URLs to track. Each URL is sent to Apify's E-Commerce Scraping Tool to extract title, price, currency, stock, and rating. Works with any product page on a public e-commerce site (Amazon, Shopify stores, Best Buy, Walmart, DTC sites, and others). Accepts URLs with or without https://. Recommended: 10 to 200 URLs per run. Either this OR sourceDatasetId is required. sourceDatasetId wins when both are set.

## `sourceDatasetId` (type: `string`):

Apify dataset ID of an EXISTING E-Commerce Scraping Tool run. When provided, the Actor skips scraping and reads products directly from this dataset. Use this for composability: scrape once on a schedule, sync to multiple destinations, or chain Actors via webhooks. Either this OR productUrls is required. Overrides productUrls when both are set.

## `mcpConnector` (type: `string`):

MCP Connector pointing at the Notion workspace where the tracking table lives. Authorize a Notion Connector under Apify Console > Settings > API & Integrations > MCP Connectors, then add it to the parent page where the table should live. Required. The v0.2.0 orchestrator only supports Notion as a destination; Sheets and Airtable are on the roadmap.

## `notionParentPageUrl` (type: `string`):

URL of the Notion page where the Competitor Price Tracker table should live. Strongly recommended. Without this, the search has to scan the workspace and may pick the wrong location. Create a Notion page (for example 'Apify Demos'), add the Apify integration via the page menu > Connections, then paste the URL here. Required to create the table on the first run.

## Actor input object example

```json
{
  "productUrls": [
    "https://www.amazon.com/Apple-iPhone-15-Pro-256GB/dp/B0CHX2F5QT",
    "https://www.bestbuy.com/site/apple-iphone-15-pro-256gb-natural-titanium-unlocked/6525492.p"
  ]
}
```

# Actor output Schema

## `dataset` (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 = {
    "productUrls": [
        "https://www.amazon.com/Apple-iPhone-15-Pro-256GB/dp/B0CHX2F5QT",
        "https://www.bestbuy.com/site/apple-iphone-15-pro-256gb-natural-titanium-unlocked/6525492.p"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("luis.pinto/competitor-price-tracker").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 = { "productUrls": [
        "https://www.amazon.com/Apple-iPhone-15-Pro-256GB/dp/B0CHX2F5QT",
        "https://www.bestbuy.com/site/apple-iphone-15-pro-256gb-natural-titanium-unlocked/6525492.p",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("luis.pinto/competitor-price-tracker").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 '{
  "productUrls": [
    "https://www.amazon.com/Apple-iPhone-15-Pro-256GB/dp/B0CHX2F5QT",
    "https://www.bestbuy.com/site/apple-iphone-15-pro-256gb-natural-titanium-unlocked/6525492.p"
  ]
}' |
apify call luis.pinto/competitor-price-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=luis.pinto/competitor-price-tracker",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Competitor Price Tracker",
        "description": "Track competitor product prices on Amazon, Walmart, Shopify, Best Buy and more. Each run scrapes the latest prices and updates a Notion, Sheets, or Airtable table via Apify MCP Connectors. Export data, run via API, schedule and monitor runs, or integrate with other tools.",
        "version": "0.1",
        "x-build-id": "XkO7nigWlq1ib0UcH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/luis.pinto~competitor-price-tracker/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-luis.pinto-competitor-price-tracker",
                "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/luis.pinto~competitor-price-tracker/runs": {
            "post": {
                "operationId": "runs-sync-luis.pinto-competitor-price-tracker",
                "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/luis.pinto~competitor-price-tracker/run-sync": {
            "post": {
                "operationId": "run-sync-luis.pinto-competitor-price-tracker",
                "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": {
                    "productUrls": {
                        "title": "Competitor product URLs (simple mode)",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Competitor product URLs to track. Each URL is sent to Apify's E-Commerce Scraping Tool to extract title, price, currency, stock, and rating. Works with any product page on a public e-commerce site (Amazon, Shopify stores, Best Buy, Walmart, DTC sites, and others). Accepts URLs with or without https://. Recommended: 10 to 200 URLs per run. Either this OR sourceDatasetId is required. sourceDatasetId wins when both are set.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "sourceDatasetId": {
                        "title": "Product dataset ID (advanced mode)",
                        "type": "string",
                        "description": "Apify dataset ID of an EXISTING E-Commerce Scraping Tool run. When provided, the Actor skips scraping and reads products directly from this dataset. Use this for composability: scrape once on a schedule, sync to multiple destinations, or chain Actors via webhooks. Either this OR productUrls is required. Overrides productUrls when both are set."
                    },
                    "mcpConnector": {
                        "title": "Destination MCP Connector (Notion)",
                        "type": "string",
                        "description": "MCP Connector pointing at the Notion workspace where the tracking table lives. Authorize a Notion Connector under Apify Console > Settings > API & Integrations > MCP Connectors, then add it to the parent page where the table should live. Required. The v0.2.0 orchestrator only supports Notion as a destination; Sheets and Airtable are on the roadmap."
                    },
                    "notionParentPageUrl": {
                        "title": "Notion parent page URL (recommended)",
                        "type": "string",
                        "description": "URL of the Notion page where the Competitor Price Tracker table should live. Strongly recommended. Without this, the search has to scan the workspace and may pick the wrong location. Create a Notion page (for example 'Apify Demos'), add the Apify integration via the page menu > Connections, then paste the URL here. Required to create the table on the first 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
