# Boots Product Search Scraper (`stealth_mode/boots-product-search-scraper`) Actor

Scrape product listings from Boots.com with detailed pricing, inventory, and review data. Collect 20+ fields per item including variants, stock status, promotional offers, and delivery options — perfect for price monitoring, competitive analysis, and market research.

- **URL**: https://apify.com/stealth\_mode/boots-product-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Boots Product Search Scraper: Extract Beauty & Health Product Data

---

### What Is Boots.com?

Boots is a leading pharmacy and beauty retailer operating globally, with a flagship presence in the UK and Europe. The platform hosts hundreds of thousands of product listings across beauty, skincare, fragrance, vitamins, and health categories. Manually extracting product data from Boots search results is tedious and error-prone — the **Boots Product Search Scraper** automates this, turning search result pages into structured, analysis-ready datasets.

---

### Overview

The **Boots Product Search Scraper** extracts comprehensive product information from Boots.com search and category pages, converting listings into clean, structured records. It is designed for:

- **E-commerce analysts** monitoring competitor pricing and promotions
- **Market researchers** studying beauty and health product trends
- **Price intelligence teams** building dynamic pricing databases
- **Retailers** analyzing product attributes, variants, and stock availability
- **Data scientists** training machine learning models on product data

Key strengths include support for bulk URL collection, configurable item limits, graceful error handling, and rich output spanning 20+ fields per product.

---

### Input Format

The scraper accepts a JSON configuration object:

```json
{
  "urls": [
    "https://www.boots.com/shop-all-dior"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
````

| Field | Type | Description |
|---|---|---|
| `urls` | Array | URLs of Boots product search/category pages. Supports multiple URLs (e.g., "shop-all-dior", "search?query=sunscreen") |
| `max_items_per_url` | Integer | Maximum products extracted per URL (default: 20, max: 200+). Higher values yield more comprehensive datasets |
| `ignore_url_failures` | Boolean | If `true`, skips failed URLs without halting the entire run. Essential for large-scale scraping |

> **Tip:** Use category or brand filter URLs (e.g., `shop-all-dior`, `skincare`) to focus on specific product segments.

***

### Output Format

#### Example Output Record

```json
{
  "ppu_quantity": "100ML",
  "pricing": {
    "per_unit": "£976.00 per 1L",
    "regular": {
      "value": 122,
      "currency": "GBP",
      "text": "£122.00"
    },
    "current": {
      "value": 97.6,
      "currency": "GBP",
      "text": "£97.60"
    },
    "saving": {
      "value": 24.4,
      "currency": "GBP",
      "text": "£24.40"
    }
  },
  "object_id": "2096107",
  "brand": "CHRISTIAN DIOR",
  "attributes": {
    "fragrance_scent": [
      "woody",
      "spicy",
      "amber"
    ],
    "stock_override_message": "STOCK_COMING_SOON",
    "gender": "mens",
    "fragrance_type": "eau de parfum",
    "reporting__category": "fragrance",
    "gift_type": "fragrance gifts",
    "hidden_exclude_from_recs": "No",
    "product_type": "aftershave",
    "size": "71-100",
    "pharmacy_medicine": "no",
    "hero_child": "Y",
    "recipient": "gifts for men",
    "has_price_advantage_deal": false,
    "product_review_flag": "1"
  },
  "variants": {
    "colours": [],
    "has_colours": false,
    "has_sizes": false
  },
  "categories": [
    [
      {
        "name": "father's day",
        "label": "father's day"
      },
      {
        "name": "toiletries",
        "label": "toiletries"
      },
      {
        "name": "gift",
        "label": "gift"
      },
      {
        "name": "men's",
        "label": "men's"
      },
      {
        "name": "fragrance",
        "label": "fragrance"
      }
    ],
    [
      {
        "name": "men's toiletries",
        "label": "toiletries > men's toiletries"
      },
      {
        "name": "gift by occasion",
        "label": "gift > gift by occasion"
      },
      {
        "name": "men's toiletries",
        "label": "men's > men's toiletries"
      },
      {
        "name": "aftershave",
        "label": "fragrance > aftershave"
      },
      {
        "name": "fragrance offers",
        "label": "fragrance > fragrance offers"
      },
      {
        "name": "gift by recipient",
        "label": "gift > gift by recipient"
      },
      {
        "name": "aftershave",
        "label": "men's > aftershave"
      },
      {
        "name": "luxury fragrance",
        "label": "fragrance > luxury fragrance"
      },
      {
        "name": "shop all fragrance",
        "label": "fragrance > shop all fragrance"
      },
      {
        "name": "gifts for him",
        "label": "gift > gifts for him"
      },
      {
        "name": "luxury gifts",
        "label": "gift > luxury gifts"
      },
      {
        "name": "all gifts",
        "label": "gift > all gifts"
      }
    ],
    [
      {
        "name": "aftershave",
        "label": "toiletries > men's toiletries > aftershave"
      },
      {
        "name": "valentine's day",
        "label": "gift > gift by occasion > valentine's day"
      },
      {
        "name": "aftershave",
        "label": "men's > men's toiletries > aftershave"
      },
      {
        "name": "luxury aftershave balms, lotions & shower gel",
        "label": "fragrance > aftershave > luxury aftershave balms, lotions & shower gel"
      },
      {
        "name": "shop all aftershave",
        "label": "fragrance > aftershave > shop all aftershave"
      },
      {
        "name": "woody aftershave",
        "label": "fragrance > aftershave > woody aftershave"
      },
      {
        "name": "Triple points on top scents",
        "label": "fragrance > fragrance offers > Triple points on top scents"
      },
      {
        "name": "Collect £10 worth of points when you spend £60",
        "label": "fragrance > fragrance offers > Collect £10 worth of points when you spend £60"
      },
      {
        "name": "Save 15% on 100s of fragrances",
        "label": "fragrance > fragrance offers > Save 15% on 100s of fragrances"
      },
      {
        "name": "father's day",
        "label": "gift > gift by occasion > father's day"
      },
      {
        "name": "gifts for boyfriends",
        "label": "gift > gift by recipient > gifts for boyfriends"
      },
      {
        "name": "luxury aftershave balms, lotions & shower gel",
        "label": "men's > aftershave > luxury aftershave balms, lotions & shower gel"
      },
      {
        "name": "shop all aftershave",
        "label": "men's > aftershave > shop all aftershave"
      },
      {
        "name": "woody aftershave",
        "label": "men's > aftershave > woody aftershave"
      }
    ],
    [
      {
        "name": "luxury aftershave balms, lotions & shower gel",
        "label": "toiletries > men's toiletries > aftershave > luxury aftershave balms, lotions & shower gel"
      },
      {
        "name": "shop all aftershave",
        "label": "toiletries > men's toiletries > aftershave > shop all aftershave"
      },
      {
        "name": "woody aftershave",
        "label": "toiletries > men's toiletries > aftershave > woody aftershave"
      },
      {
        "name": "Valentines gifts for him",
        "label": "gift > gift by occasion > valentine's day > Valentines gifts for him"
      },
      {
        "name": "shop all Valentines gifts",
        "label": "gift > gift by occasion > valentine's day > shop all Valentines gifts"
      },
      {
        "name": "luxury aftershave balms, lotions & shower gel",
        "label": "men's > men's toiletries > aftershave > luxury aftershave balms, lotions & shower gel"
      },
      {
        "name": "shop all aftershave",
        "label": "men's > men's toiletries > aftershave > shop all aftershave"
      },
      {
        "name": "woody aftershave",
        "label": "men's > men's toiletries > aftershave > woody aftershave"
      }
    ]
  ],
  "reviews": {
    "average": 4.69,
    "count": 3059,
    "rounded": 4
  },
  "parent": {
    "product": "2096106",
    "part_number": "10243637.P",
    "model": "10243637",
    "manufacturer_model": "8076251"
  },
  "images": {
    "thumbnail": "https://boots.scene7.com/is/image/Boots/10243637?wid=45&hei=60&op_sharpen=1"
  },
  "offers": [
    {
      "text": "Complimentary Gift - Receive a limited-edition Dior Sauvage Duo Kit when you purchase Sauvage 100ml and above or Sauvage Elixir - online only, whilst stock lasts"
    },
    {
      "text": "Use code NEXTDAY for FREE next day delivery across selected favourites - online only"
    },
    {
      "text": "Save up to 25 percent on selected Fragrance"
    }
  ],
  "actions": {},
  "icon_uri": "https://boots.scene7.com/is/image/Boots/10243637?op_sharpen=1",
  "title": "DIOR Sauvage Eau de Parfum 100ml",
  "reference_uri": "/dior-sauvage-eau-de-parfum-100ml-10243637",
  "can_add_to_basket": "yes",
  "opticians": false,
  "in_stock": true,
  "express_delivery": false,
  "has_other_promotion": true,
  "channel_promotional_text_map": {
    "-1": [
      "Complimentary Gift - Receive a limited-edition Dior Sauvage Duo Kit when you purchase Sauvage 100ml and above or Sauvage Elixir - online only, whilst stock lasts",
      "Use code NEXTDAY for FREE next day delivery across selected favourites - online only",
      "Save up to 25 percent on selected Fragrance"
    ],
    "-6": [
      "Complimentary Gift - Receive a limited-edition Dior Sauvage Duo Kit when you purchase Sauvage 100ml and above or Sauvage Elixir - online only, whilst stock lasts",
      "Use code NEXTDAY for FREE next day delivery across selected favourites - online only",
      "Save up to 25 percent on selected Fragrance"
    ]
  },
  "product_espot_stock_override_message": "<h5> Stock coming soon </h5>",
  "ad_card_points": 291,
  "from_url": "https://www.boots.com/shop-all-dior"
}
```

Each scraped product returns a rich record with 20+ fields:

#### Core Product Data

| Field | Meaning |
|---|---|
| `Object ID` | Unique identifier for the product in Boots' system |
| `Title` | Official product name as displayed on Boots.com |
| `Brand` | Manufacturer or brand name (e.g., "Dior", "Olay") |
| `Reference URI` | Canonical product URL on Boots.com |
| `Parent` | Parent product reference (for variants) |

#### Pricing & Promotion

| Field | Meaning |
|---|---|
| `Pricing` | Current retail price (may include currency, sale price, RRP) |
| `PPU Quantity` | Price per unit quantity for bulk comparison |
| `Offers` | Active promotions (e.g., "Buy 1 Get 1", "20% off") |
| `Channel Promotional Text Map` | Promotional messaging tailored by sales channel |
| `Has Other Promotion` | Boolean flag indicating additional ongoing promotions |

#### Product Details & Variants

| Field | Meaning |
|---|---|
| `Attributes` | Product attributes (e.g., shade, size, scent, SPF level) |
| `Variants` | Available variations (different sizes, colors, formats) |
| `Categories` | Product categorization (Beauty, Skincare, Fragrance, Health) |
| `Images` | Product image URLs (primary and secondary photos) |

#### Availability & Fulfillment

| Field | Meaning |
|---|---|
| `In Stock` | Boolean or quantity indicator of current stock availability |
| `Can Add To Basket` | Whether the product is currently purchasable |
| `Express Delivery` | Whether fast delivery options are available |
| `Product Espot Stock Override Message` | Custom messaging when stock is limited or unavailable |

#### Customer & Additional Data

| Field | Meaning |
|---|---|
| `Reviews` | Customer review ratings, counts, and aggregate scores |
| `Ad Card Points` | Boots Loyalty Points or rewards accrual for the product |
| `Icon URI` | Product icon or small image URI |
| `Actions` | Available customer actions (e.g., "Add to Wishlist", "Compare") |
| `Opticians` | Flag for optician-managed products (if applicable) |

***

### How to Use

1. **Identify target URLs** — Navigate to Boots.com and open a search or category page (e.g., "shop-all-dior", "search?query=moisturiser"). Copy the full URL.
2. **Configure input** — Paste URLs into the `urls` array. Adjust `max_items_per_url` based on desired volume (20–200 items).
3. **Enable error tolerance** — Set `ignore_url_failures: true` to continue if individual pages fail to load.
4. **Run the scraper** — Execute the actor and monitor progress in the run log.
5. **Download results** — Export data as JSON, CSV, or Excel for analysis.

**Best practices:**

- Use specific category or brand URLs for focused datasets
- Set `max_items_per_url` to 200 for comprehensive product coverage
- Run scrapes during off-peak hours to reduce server load
- Validate output for completeness before downstream processing

***

### Use Cases & Business Value

- **Price monitoring:** Track competitor prices on bestselling beauty brands in real-time
- **Promotional intelligence:** Capture active offers and plan competitive promotions
- **Inventory insights:** Monitor stock levels and product availability trends
- **Product research:** Analyze attributes, variants, and customer reviews at scale
- **Market analysis:** Benchmark your product portfolio against market leaders
- **Loyalty program optimization:** Analyze Points accrual to refine rewards strategy

The Boots Product Search Scraper eliminates manual data collection, enabling rapid iteration on pricing, merchandising, and product strategy decisions.

***

### Conclusion

The **Boots Product Search Scraper** is an essential tool for beauty and health e-commerce professionals. With 20+ data fields and flexible configuration, it transforms Boots search pages into actionable product intelligence. Start scraping today and unlock competitive advantages in pricing, promotions, and product development.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the product search list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.boots.com/shop-all-dior"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# 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 = {
    "urls": [
        "https://www.boots.com/shop-all-dior"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/boots-product-search-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 = {
    "urls": ["https://www.boots.com/shop-all-dior"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/boots-product-search-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 '{
  "urls": [
    "https://www.boots.com/shop-all-dior"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/boots-product-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Boots Product Search Scraper",
        "description": "Scrape product listings from Boots.com with detailed pricing, inventory, and review data. Collect 20+ fields per item including variants, stock status, promotional offers, and delivery options — perfect for price monitoring, competitive analysis, and market research.",
        "version": "0.0",
        "x-build-id": "PXz4WcioczvrsCJyu"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~boots-product-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-boots-product-search-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/stealth_mode~boots-product-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-boots-product-search-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/stealth_mode~boots-product-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-boots-product-search-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": {
                    "urls": {
                        "title": "URLs of the product search list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the product search list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
