# Harvey Norman Australia Scraper - Products & Reviews (`abotapi/harvey-norman-scraper`) Actor

Scrape Harvey Norman Australia products: name, brand, price, was-price / discount, specifications, image gallery, GTIN, department, stock, dimensions, rating and customer reviews. Search by keyword with brand, price and rating filters, or paste product / listing URLs.

- **URL**: https://apify.com/abotapi/harvey-norman-scraper.md
- **Developed by:** [Abot API](https://apify.com/abotapi) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 product 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

## Harvey Norman Australia Scraper — Products & Reviews

Extract product data from **harveynorman.com.au** — Australia's electrical,
computer, furniture and bedding retailer. Search by keyword with filters, or
paste product and listing URLs, and get one clean record per product with an
optional full detail extraction that adds specifications, image gallery,
department, dimensions and customer reviews.

### What you can collect

- **Identity** — canonical title, name, brand, SKU, product id, GTIN, product URL
- **Pricing** — current price, was / original price, discount amount and percent,
  an `isOnSpecial` flag, currency and the promotion label
- **Specials** — scrape the store-wide **Super Deals** or **Clearance** collections
  directly, or paste any sale listing URL
- **Ratings** — average rating and review count on every product
- **Detail (optional)** — full specifications, image gallery, description,
  department, category path, stock status, dimensions
- **Reviews (optional)** — per-review rating, title, body, author, date,
  verified-purchase flag, helpful votes, pros/cons, plus an aggregate summary
  (rating, count, star distribution, recommended count)

### Modes

#### 🔎 Search
Give one or more keywords (for example `oled tv`, `gaming laptop`). Each keyword
resolves to its best-matching department listing, which is then walked page by
page. Narrow results with **brand**, **minimum / maximum price** and **minimum
rating** filters, and order them with **sort by**.

Pick a **Specials / offers category** to scrape a promotional collection instead
of (or alongside) your keywords:

- **Super Deals** — the store-wide hottest-deals grid
- **Clearance** — the run-out / reduced-to-clear range

Discounted products carry the **was / original price**, the **discount amount and
percent**, an **`isOnSpecial`** flag and the **promotion label** straight from the
listing — no detail fetch required. Products that are not discounted return
`isOnSpecial: false` and `wasPrice: null`; a markdown is never fabricated.

#### 🔗 URL
Paste product URLs (ending in `.html`) to scrape single products, or paste
department / listing URLs to walk multiple pages of products — including any
specials or department-scoped **sale** listing URL (for example a TV sale or
laptop sale page). Both are supported in the same run.

### Detail enrichment & reviews

Turn on **Fetch full product detail + reviews** to open each product page and
collect the full specification set, image gallery, description and an aggregate
review summary plus a `reviews[]` array. Cap the number of reviews per product
with **Max reviews per product** (`0` = all available). With detail off, each
record still carries identity, price and the aggregate rating from the listing.

Products with no reviews simply omit the review fields — they are never faked.

### Example input

```json
{
  "mode": "search",
  "queries": ["oled tv"],
  "brand": "LG",
  "minPrice": 1000,
  "maxPrice": 6000,
  "sortBy": "priceDesc",
  "detailEnrichment": true,
  "maxReviewsPerProduct": 20,
  "maxItems": 50,
  "proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "AU" }
}
````

Scrape the store-wide clearance range with was-prices and reviews:

```json
{
  "mode": "search",
  "specialsCategory": "clearance",
  "detailEnrichment": true,
  "maxReviewsPerProduct": 10,
  "maxItems": 50,
  "proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "AU" }
}
```

### Example output

> Example data below is illustrative.

```json
{
  "productId": 900123,
  "sku": "OLED65EXAMPLE",
  "title": "Acme 65-inch 4K OLED Smart TV",
  "name": "Acme 65-inch 4K OLED Smart TV",
  "brand": "Acme",
  "url": "https://www.harveynorman.com.au/acme-65-inch-4k-oled-smart-tv.html",
  "imageUrl": "https://hnau.imgix.net/media/catalog/product/a/c/acme-65-oled.jpg",
  "price": 3495.0,
  "wasPrice": 3995.0,
  "discountAmount": 500.0,
  "discountPercent": 12.5,
  "isOnSpecial": true,
  "promotion": "Save $500",
  "currency": "AUD",
  "rating": 4.7,
  "reviewCount": 128,
  "brandUrl": "https://www.harveynorman.com.au/brands/acme",
  "description": "Key Features Vivid OLED panel with deep blacks and lifelike colour...",
  "shortDescription": "A 65-inch 4K OLED television with smart features and low-latency gaming.",
  "specifications": {
    "Product Type": "OLED TVs",
    "Screen Size": "65 inch",
    "Resolution": "4K Ultra HD",
    "Barcode (GTIN)": "9312345678900"
  },
  "images": [
    "https://hnau.imgix.net/media/catalog/product/a/c/acme-65-oled-front.jpg",
    "https://hnau.imgix.net/media/catalog/product/a/c/acme-65-oled-side.jpg"
  ],
  "stockStatus": "IN_STOCK",
  "gtin": "9312345678900",
  "department": "Audio Visual",
  "category": "OLED TVs",
  "categoryPath": "tv-blu-ray-home-theatre/tvs-by-type/oled-tvs",
  "dimensions": { "height": 82.6, "depth": 4.5, "width": 144.4, "weight": 22.1, "colour": "Black" },
  "ratingDistribution": { "5": 96, "4": 20, "3": 6, "2": 3, "1": 3 },
  "recommendedCount": 110,
  "reviewsCollected": 2,
  "reviews": [
    {
      "reviewId": "100000001",
      "rating": 5,
      "title": "Stunning picture",
      "body": "Deep blacks and vivid colour, exactly what I hoped for.",
      "author": "SampleReviewer",
      "location": "NSW",
      "date": "2026-06-20T09:15:00.000+00:00",
      "verifiedPurchase": true,
      "isRecommended": true,
      "helpfulCount": 4,
      "notHelpfulCount": 0,
      "isSyndicated": false,
      "pros": ["Picture quality"],
      "cons": null
    }
  ]
}
```

### Tips

- Keep **Max products** modest while you dial in your keywords and filters, then
  raise it for a full pull.
- Australian residential proxy is required for reliable results. On the free
  plan, coverage may be limited and some runs may return no results.
- Use **URL mode** with a department URL to scrape an entire category.

### Send results into your apps (optional)

Pipe results straight into the tools you already use via Model Context Protocol
(MCP) connectors — Notion (a rich page per product), Linear, Airtable or Apify.
Authorize a connector under **Apify → Settings → API & Integrations**, then
select it in the input. This never changes the dataset output.

# Actor input Schema

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

Choose 'search' to use keywords and filters, or 'url' to scrape specific product or listing URLs you paste below.

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

One or more keywords to search, for example 'oled tv' or 'gaming laptop'. Each keyword resolves to its best-matching department listing and is walked page by page.

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

Optional. Keep only products whose brand or name matches this value, for example 'LG' or 'Samsung'.

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

Optional. Only keep products priced at or above this amount (AUD).

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

Optional. Only keep products priced at or below this amount (AUD).

## `minRating` (type: `integer`):

Optional. Only keep products with an average customer rating at or above this value (1 to 5).

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

Ordering applied to the collected results.

## `specialsCategory` (type: `string`):

Optional. Scrape a Harvey Norman specials collection instead of (or in addition to) your keywords: 'Super Deals' is the store-wide hottest-deals grid and 'Clearance' is the run-out / reduced-to-clear range. Discounted products carry the was-price, discount amount and percent, and the promotion label. Leave empty to search by keyword only. To scrape a department-scoped sale (e.g. TV sale, laptop sale), use URL mode and paste the sale listing URL.

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

Product or listing URLs to scrape, for example https://www.harveynorman.com.au/lg-65-inch-g6-evo-ai-4k-oled-smart-tv-2026.html or https://www.harveynorman.com.au/computers-tablets/computers/laptops. Multiple URLs supported.

## `detailEnrichment` (type: `boolean`):

For each product, also open its page to collect the full specification set, image gallery, description, department, dimensions and an aggregate review summary plus a reviews\[] array. Adds one request per product. Off by default (list view returns identity, price and aggregate rating only).

## `maxReviewsPerProduct` (type: `integer`):

Cap on reviews collected per product when detail enrichment is on. Use 0 for all available reviews.

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

Maximum number of products to return across the whole run. Use 0 for unlimited.

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

Safety cap on result pages walked per keyword / URL. 0 = unlimited (default): walk every page until Max products is reached or the category ends. Set 1-100 to cap how deep each individual search goes.

## `proxy` (type: `object`):

Apify Proxy (Australian residential) is required for reliable results. On the free plan, coverage may be limited and some runs may return no results.

## `mcpConnectors` (type: `array`):

Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write/digest. Leave empty to skip; never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).

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

URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.

## `maxNotifyListings` (type: `integer`):

Cap on items written to each connector per run. Does not affect the dataset.

## Actor input object example

```json
{
  "mode": "search",
  "queries": [
    "oled tv"
  ],
  "sortBy": "relevance",
  "urls": [
    "https://www.harveynorman.com.au/computers-tablets/computers/laptops"
  ],
  "detailEnrichment": false,
  "maxReviewsPerProduct": 20,
  "maxItems": 20,
  "maxPages": 0,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "AU"
  },
  "maxNotifyListings": 50
}
```

# Actor output Schema

## `overview` (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 = {
    "queries": [
        "oled tv"
    ],
    "urls": [
        "https://www.harveynorman.com.au/computers-tablets/computers/laptops"
    ],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "AU"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/harvey-norman-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 = {
    "queries": ["oled tv"],
    "urls": ["https://www.harveynorman.com.au/computers-tablets/computers/laptops"],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "AU",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/harvey-norman-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 '{
  "queries": [
    "oled tv"
  ],
  "urls": [
    "https://www.harveynorman.com.au/computers-tablets/computers/laptops"
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "AU"
  }
}' |
apify call abotapi/harvey-norman-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Harvey Norman Australia Scraper - Products & Reviews",
        "description": "Scrape Harvey Norman Australia products: name, brand, price, was-price / discount, specifications, image gallery, GTIN, department, stock, dimensions, rating and customer reviews. Search by keyword with brand, price and rating filters, or paste product / listing URLs.",
        "version": "1.0",
        "x-build-id": "qjy9PmuY6E0y4MCwr"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~harvey-norman-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-harvey-norman-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/abotapi~harvey-norman-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-harvey-norman-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/abotapi~harvey-norman-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-harvey-norman-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",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "url"
                        ],
                        "type": "string",
                        "description": "Choose 'search' to use keywords and filters, or 'url' to scrape specific product or listing URLs you paste below.",
                        "default": "search"
                    },
                    "queries": {
                        "title": "Search keywords",
                        "type": "array",
                        "description": "One or more keywords to search, for example 'oled tv' or 'gaming laptop'. Each keyword resolves to its best-matching department listing and is walked page by page.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "brand": {
                        "title": "Brand",
                        "type": "string",
                        "description": "Optional. Keep only products whose brand or name matches this value, for example 'LG' or 'Samsung'."
                    },
                    "minPrice": {
                        "title": "Minimum price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Optional. Only keep products priced at or above this amount (AUD)."
                    },
                    "maxPrice": {
                        "title": "Maximum price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Optional. Only keep products priced at or below this amount (AUD)."
                    },
                    "minRating": {
                        "title": "Minimum rating",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Optional. Only keep products with an average customer rating at or above this value (1 to 5)."
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "relevance",
                            "priceAsc",
                            "priceDesc",
                            "ratingDesc",
                            "nameAsc"
                        ],
                        "type": "string",
                        "description": "Ordering applied to the collected results.",
                        "default": "relevance"
                    },
                    "specialsCategory": {
                        "title": "Specials / offers category",
                        "enum": [
                            "super-deals",
                            "clearance"
                        ],
                        "type": "string",
                        "description": "Optional. Scrape a Harvey Norman specials collection instead of (or in addition to) your keywords: 'Super Deals' is the store-wide hottest-deals grid and 'Clearance' is the run-out / reduced-to-clear range. Discounted products carry the was-price, discount amount and percent, and the promotion label. Leave empty to search by keyword only. To scrape a department-scoped sale (e.g. TV sale, laptop sale), use URL mode and paste the sale listing URL."
                    },
                    "urls": {
                        "title": "Harvey Norman URLs",
                        "type": "array",
                        "description": "Product or listing URLs to scrape, for example https://www.harveynorman.com.au/lg-65-inch-g6-evo-ai-4k-oled-smart-tv-2026.html or https://www.harveynorman.com.au/computers-tablets/computers/laptops. Multiple URLs supported.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "detailEnrichment": {
                        "title": "Fetch full product detail + reviews",
                        "type": "boolean",
                        "description": "For each product, also open its page to collect the full specification set, image gallery, description, department, dimensions and an aggregate review summary plus a reviews[] array. Adds one request per product. Off by default (list view returns identity, price and aggregate rating only).",
                        "default": false
                    },
                    "maxReviewsPerProduct": {
                        "title": "Max reviews per product",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Cap on reviews collected per product when detail enrichment is on. Use 0 for all available reviews.",
                        "default": 20
                    },
                    "maxItems": {
                        "title": "Max products",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of products to return across the whole run. Use 0 for unlimited.",
                        "default": 20
                    },
                    "maxPages": {
                        "title": "Max pages per listing",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Safety cap on result pages walked per keyword / URL. 0 = unlimited (default): walk every page until Max products is reached or the category ends. Set 1-100 to cap how deep each individual search goes.",
                        "default": 0
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy (Australian residential) is required for reliable results. On the free plan, coverage may be limited and some runs may return no results.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "AU"
                        }
                    },
                    "mcpConnectors": {
                        "title": "Pipe results into your apps (optional)",
                        "type": "array",
                        "description": "Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write/digest. Leave empty to skip; never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com)."
                    },
                    "notionParentPageUrl": {
                        "title": "Notion parent page (Notion connector only)",
                        "type": "string",
                        "description": "URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
                    },
                    "maxNotifyListings": {
                        "title": "Max items to export per connector",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Cap on items written to each connector per run. Does not affect the dataset.",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
