# Chemist Warehouse Scraper (`parseforge/chemist-warehouse-scraper`) Actor

Scrape product listings from Chemist Warehouse Australia. Search by keyword, filter by category, brand, price range, and stock status. Extract product names, prices, RRP, discount percentages, ratings, ingredients, directions, warnings, and images. Supports large catalogs with smart partitioning.

- **URL**: https://apify.com/parseforge/chemist-warehouse-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** E-commerce, Lead generation, Other
- **Stats:** 10 total users, 4 monthly users, 99.0% runs succeeded, 4 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

![ParseForge Banner](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)

## 💊 Chemist Warehouse Scraper

> 🕒 **Last updated:** 2026-05-05

> **The Chemist Warehouse Scraper collects product listings from Australia's largest pharmacy retailer, with pricing, discounts, and health product details built in.**


<table><tr>
<td style="border-left:4px solid #0F766E;padding:12px 16px;font-weight:600">Pull structured records from Chemist Warehouse — clean fields ready as CSV, JSON, JSONL, Excel, or XML for downstream pipelines.</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

````

parseforge/chemist-warehouse-scraper on Apify. Call: ApifyClient("TOKEN").actor("parseforge/chemist-warehouse-scraper").call(run\_input={...}), then client.dataset(run\["defaultDatasetId"]).list\_items().items for results. Key inputs: maxItems (integer, default 10), searchKeyword (string, default "panadol"), category (string), brand (string), inStockOnly (boolean, default false), minPrice (integer). Full actor spec: fetch build via GET https://api.apify.com/v2/acts/parseforge~chemist-warehouse-scraper (Bearer TOKEN). Get token: https://console.apify.com/account/integrations

````

### ✨ What Does It Do

Extract product data from Chemist Warehouse Australia with structured fields. Search by keyword, filter by category, brand, price range, or stock availability and get detailed results including pricing, RRP, discount percentages, ratings, ingredients, directions, and warnings.

Perfect for price comparison platforms tracking pharmacy products, health brands monitoring their retail presence, market researchers analyzing the Australian health and beauty market, or e-commerce businesses benchmarking competitor pricing.

### 🔧 Input

| Field | Type | Description |
|---|---|---|
| searchKeyword | string | Product name or keyword (e.g., "panadol", "vitamin c") |
| category | string | Filter by category (e.g., "Pain Relief", "Vitamins & Supplements") |
| brand | string | Filter by brand (e.g., "Blackmores", "Colgate") |
| inStockOnly | boolean | Only show in-stock products |
| minPrice | number | Minimum price in cents (e.g., 500 for $5.00) |
| maxPrice | number | Maximum price in cents (e.g., 5000 for $50.00) |
| maxItems | number | Maximum products to collect (up to 1M) |

### 📊 Output

Each product listing includes:

| Field | Type | Description |
|---|---|---|
| name | string | Product name |
| sku | number | Product SKU |
| url | string | Direct link to product page |
| productId | string | Unique product identifier |
| brand | string | Brand name |
| manufacturer | string | Manufacturer name |
| productType | string | Product type classification |
| price | number | Current price in AUD |
| rrp | number | Recommended retail price in AUD |
| discountPercent | number | Discount percentage from RRP |
| currency | string | Currency code (AUD) |
| isInStock | boolean | Whether the product is in stock |
| rating | number | Average customer rating |
| reviewCount | number | Number of customer reviews |
| categories | array | Product category hierarchy |
| descriptionHtml | string | Full product description in HTML |
| ingredients | string | Product ingredients list |
| directions | string | Usage directions |
| warnings | string | Health and safety warnings |
| prescriptionType | string | Prescription classification |
| schedule | string | Drug schedule category |
| isClickAndCollect | boolean | Click and collect availability |
| isFastDelivery | boolean | Fast delivery availability |
| images | array | Product image URLs |
| imageUrl | string | Primary product image |
| scrapedAt | string | Timestamp of extraction |

### 💎 Why Choose This Scraper

- **Complete pharmacy data** - Covers Chemist Warehouse's full product catalog across health, beauty, vitamins, and personal care
- **Rich health details** - Extracts ingredients, directions, warnings, and prescription classifications unique to pharmacy products
- **Pricing intelligence** - Captures current price, RRP, and calculated discount percentages for deal tracking
- **Smart partitioning** - Handles large catalogs by automatically splitting queries across categories for complete coverage
- **Brand and category filters** - Narrow results by specific brands or product categories
- **Stock monitoring** - Filter for in-stock items only to track product availability

### 📋 How to Use

1. Go to the **Input** tab
2. Enter your search keyword (e.g., "vitamin c")
3. Optionally filter by category, brand, price range, or stock status
4. Click **Start** to begin extraction
5. Download results from the **Dataset** tab in JSON, CSV, or Excel format

#### Example Input

```json
{
    "searchKeyword": "vitamin c",
    "inStockOnly": true,
    "maxItems": 50
}
````

### 🎯 Business Use Cases

- **Price Comparison** - Track pharmacy product prices for comparison shopping platforms
- **Brand Monitoring** - Monitor how your products are listed and priced at Chemist Warehouse
- **Market Research** - Analyze the Australian health and beauty retail landscape
- **Competitor Analysis** - Compare pricing and product availability across pharmacy retailers
- **Inventory Tracking** - Monitor stock levels for specific products or categories

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 🎯 | **Built for the job.** Scoped specifically to this data source so you skip the parser engineering entirely. |
| 🔖 | **Structured output.** Clean, typed fields ready for analysis, dashboards, or downstream pipelines. |
| ⚡ | **Fast.** Optimized request patterns return results in seconds, not minutes. |
| 🔁 | **Always fresh.** Every run pulls live data, so the dataset reflects the source as of run time. |
| 🌐 | **No infra to manage.** Apify handles proxies, retries, scaling, scheduling, and storage. |
| 🛡️ | **Reliable.** Battle-tested across many runs and edge cases, with graceful error handling. |
| 🚫 | **No code required.** Configure in the UI, run from CLI, schedule via cron, or call from any language with the Apify SDK. |

> 📊 Production-grade structured data without the engineering overhead of building and maintaining your own scraper.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ Chemist Warehouse Scraper** *(this Actor)* | $5 free credit, then pay-per-use | Full source coverage | **Live per run** | Source-native filters supported | ⚡ 2 min |
| Build your own scraper | Engineering hours | Full once built | Whenever you maintain it | Custom code | 🐢 Days to weeks |
| Paid managed APIs | $$$ monthly | Vendor-defined | Live | Vendor-defined | ⏳ Hours |
| Third-party data dumps | Varies | Subset, often stale | Periodic | None | 🕒 Variable |

Pick this Actor when you want broad coverage, server-side filtering, and no pipeline maintenance.

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Go to the Chemist Warehouse Scraper page on the Apify Store.
3. 🎯 **Set input.** Configure the input fields in the form (or paste a JSON), then set maxItems.
4. 🚀 **Run it.** Click **Start** and let the Actor collect your data.
5. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to downloaded dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### 📊 Data & Analytics

- Build trend reports and dashboards from live source data
- Feed BI tools, warehouses, and ML pipelines with structured records
- Run periodic snapshots to track changes over time
- Compare segments, regions, or categories with consistent fields

</td>
<td width="50%" valign="top">

#### 🏢 Operations & Strategy

- Monitor competitor moves, pricing, and inventory shifts
- Build internal directories and lookup tools backed by current data
- Power workflows that depend on fresh source records
- Cut manual data-gathering time from hours to minutes

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 🎯 Marketing & Growth

- Identify market opportunities and trending topics
- Research target audiences and customer personas at scale
- Power lead-generation pipelines with verified records
- Track sentiment, reviews, or social signals over time

</td>
<td width="50%" valign="top">

#### 🛠️ Engineering & Product

- Prototype features that need real-world data without owning a crawler
- Replace fragile in-house scrapers with a managed Actor
- Wire datasets into your apps via the Apify API or webhooks
- Skip the proxy, retry, and parsing maintenance entirely

</td>
</tr>
</table>

***

### 🌟 Beyond business use cases

Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Empirical datasets for papers, thesis work, and coursework
- Longitudinal studies tracking changes across snapshots
- Reproducible research with cited, versioned data pulls
- Classroom exercises on data analysis and ethical scraping

</td>
<td width="50%">

#### 🎨 Personal and creative

- Side projects, portfolio demos, and indie app launches
- Data visualizations, dashboards, and infographics
- Content research for bloggers, YouTubers, and podcasters
- Hobbyist collections and personal trackers

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Transparency reporting and accountability projects
- Advocacy campaigns backed by public-interest data
- Community-run databases for local issues
- Investigative journalism on public records

</td>
<td width="50%">

#### 🧪 Experimentation

- Prototype AI and machine-learning pipelines with real data
- Validate product-market hypotheses before engineering spend
- Train small domain-specific models on niche corpora
- Test dashboard concepts with live input

</td>
</tr>
</table>

### 🤖 Ask an AI assistant about this scraper

Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:

- 💬 [**ChatGPT**](https://chat.openai.com/?q=How%20do%20I%20use%20the%20CHEMIST%20WAREHOUSE%20SCRAPER%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🧠 [**Claude**](https://claude.ai/new?q=How%20do%20I%20use%20the%20CHEMIST%20WAREHOUSE%20SCRAPER%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🔍 [**Perplexity**](https://perplexity.ai/search?q=How%20do%20I%20use%20the%20CHEMIST%20WAREHOUSE%20SCRAPER%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🅒 [**Copilot**](https://copilot.microsoft.com/?q=How%20do%20I%20use%20the%20CHEMIST%20WAREHOUSE%20SCRAPER%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

***

### ❓ Frequently Asked Questions

**What products are available?**
Chemist Warehouse carries health, beauty, vitamins, personal care, baby products, fragrances, and prescription items across thousands of listings.

**How many products can I scrape?**
You can collect up to 1,000,000 products per run. The scraper automatically partitions large result sets for complete coverage.

**Can I filter by price range?**
Yes, set minimum and maximum price in cents (e.g., 1000 for $10.00 AUD).

**Are prescription products included?**
Yes, prescription product listings are included with their schedule and prescription type classifications.

### 🔗 Integrate

Connect the scraper with your existing tools:

- **API** - Call via [Apify API](https://docs.apify.com/api/v2) for automated workflows
- **Webhooks** - Get notified when scraping completes
- **Integrations** - Connect with Google Sheets, Slack, Zapier, Make, and more
- **SDKs** - Use [Python](https://docs.apify.com/sdk/python) or [JavaScript](https://docs.apify.com/sdk/js) SDKs

### 🔌 Integrate with any app

Chemist Warehouse Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate multi-step workflows
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Connect with 5,000+ apps
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Get run notifications in your channels
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe results into your warehouse
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits and releases
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export datasets straight to Sheets

You can also use webhooks to trigger downstream actions when a run finishes. Push fresh data into your product backend, or alert your team in Slack.

***

### 💡 More ParseForge Actors

Browse our full catalog of scrapers and automation tools at [ParseForge on Apify Store](https://apify.com/parseforge).

### 🚀 Ready to Start?

Click the **Try for free** button to start collecting Chemist Warehouse product data right now. No coding required.

### 🆘 Need Help?

Having issues or need a custom solution? [Contact us](https://tally.so/r/mOaDEo) and we'll help you out.

### ⚠️ Disclaimer

This Actor is provided for educational and research purposes. Always review and comply with the target website's Terms of Service before using this tool. ParseForge is not responsible for how the extracted data is used.

***

### 🔗 Recommended Actors

- [**🔍 Google Search Scraper**](https://apify.com/parseforge/google-search-scraper) - Multi-engine SERP results with country and language targeting
- [**🗺️ Nominatim OSM Scraper**](https://apify.com/parseforge/nominatim-osm-scraper) - Geocode addresses via OpenStreetMap
- [**📊 Indexmundi Scraper**](https://apify.com/parseforge/indexmundi-scraper) - Global demographic and economic indicators
- [**📰 RAG Web Browser**](https://apify.com/parseforge/rag-web-browser) - Crawl and extract clean text from any URL for AI retrieval
- [**🌐 Website Content Crawler**](https://apify.com/parseforge/website-content-crawler) - Crawl entire sites and export structured content

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more reference-data scrapers.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA) to request a new scraper, propose a custom data project, or report an issue.

# Actor input Schema

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

Maximum number of products to collect

## `searchKeyword` (type: `string`):

Product name or keyword (e.g. 'panadol', 'vitamin c', 'shampoo')

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

Filter by category (e.g. 'Pain Relief', 'Vitamins & Supplements', 'Skincare', 'Fragrances')

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

Filter by brand (e.g. 'Blackmores', 'Panadol', 'Colgate', 'Garnier')

## `inStockOnly` (type: `boolean`):

Only show products that are currently in stock

## `minPrice` (type: `integer`):

Minimum price in cents (e.g. 500 for $5.00)

## `maxPrice` (type: `integer`):

Maximum price in cents (e.g. 5000 for $50.00)

## Actor input object example

```json
{
  "maxItems": 10,
  "searchKeyword": "panadol",
  "inStockOnly": false
}
```

# Actor output Schema

## `overview` (type: `string`):

Overview of product listings with key fields

## `fullData` (type: `string`):

Complete dataset with all product fields

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

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

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Chemist Warehouse Scraper",
        "description": "Scrape product listings from Chemist Warehouse Australia. Search by keyword, filter by category, brand, price range, and stock status. Extract product names, prices, RRP, discount percentages, ratings, ingredients, directions, warnings, and images. Supports large catalogs with smart partitioning.",
        "version": "1.0",
        "x-build-id": "H2lWpaCCzMCaPsTjA"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~chemist-warehouse-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-chemist-warehouse-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parseforge~chemist-warehouse-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-chemist-warehouse-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parseforge~chemist-warehouse-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-chemist-warehouse-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": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of products to collect"
                    },
                    "searchKeyword": {
                        "title": "Search Keyword",
                        "type": "string",
                        "description": "Product name or keyword (e.g. 'panadol', 'vitamin c', 'shampoo')"
                    },
                    "category": {
                        "title": "Category",
                        "type": "string",
                        "description": "Filter by category (e.g. 'Pain Relief', 'Vitamins & Supplements', 'Skincare', 'Fragrances')"
                    },
                    "brand": {
                        "title": "Brand",
                        "type": "string",
                        "description": "Filter by brand (e.g. 'Blackmores', 'Panadol', 'Colgate', 'Garnier')"
                    },
                    "inStockOnly": {
                        "title": "In Stock Only",
                        "type": "boolean",
                        "description": "Only show products that are currently in stock",
                        "default": false
                    },
                    "minPrice": {
                        "title": "Min Price (cents)",
                        "type": "integer",
                        "description": "Minimum price in cents (e.g. 500 for $5.00)"
                    },
                    "maxPrice": {
                        "title": "Max Price (cents)",
                        "type": "integer",
                        "description": "Maximum price in cents (e.g. 5000 for $50.00)"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
