# Domain.com.au Property Scraper — Sale, Rent & Sold Listings (`muhammadafzal/domain-scraper`) Actor

Scrape Domain.com.au for Australian real estate listings. Extract sale prices, rent data, property details, agent info, images, floorplans, and more from Australia's leading property portal.

- **URL**: https://apify.com/muhammadafzal/domain-scraper.md
- **Developed by:** [Muhammad Afzal](https://apify.com/muhammadafzal) (community)
- **Categories:** Real estate, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## Domain.com.au Property Scraper — Sale, Rent & Sold Listings

Scrape **Domain.com.au** — Australia's #1 real estate portal — to extract structured property data for market analysis, investment research, rental yield tracking, and AI-powered real estate tools.

---

### Features

- 🏠 **Three listing modes** — For Sale, For Rent, and Sold properties
- 📍 **Smart location input** — Paste a Domain URL or specify suburb/state/postcode to auto-generate search URLs
- 🔍 **Rich property filters** — Bedrooms, bathrooms, parking, price range, property type
- 📄 **Full detail enrichment** — Optional deep-scrape of each listing page for descriptions, all images, property features, and inspection times
- ⚡ **Direct JSON API** — Extracts data from Domain's Next.js SSR JSON payload via `Accept: application/json` header — no browser or HTML parsing needed
- 📊 **Structured JSON output** — Clean, typed records ready for direct use in AI agents, spreadsheets, or databases
- 🔄 **Retry logic** — Automatic retries with exponential backoff for transient failures

---

### Use Cases

| Scenario | Description |
|----------|-------------|
| **Property market research** | Compare listing prices and supply across suburbs |
| **Investment analysis** | Extract rental yields, sold prices for ROI calculations |
| **Rental yield tracking** | Scrape rent vs sale prices across suburbs to identify high-yield areas |
| **Agency lead generation** | Gather agent contact details and active listings for outreach |
| **Automated valuation models** | Feed structured property data into ML models for price prediction |
| **Suburb comparison dashboards** | Build data-driven tools for home buyers comparing areas |

---

### Input Parameters

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `searchUrls` | string[] | `[]` | Paste complete Domain.com.au search URLs |
| `searchLocations` | object[] | `[]` | Array of `{ suburb, state, postcode }` to auto-generate URLs |
| `listingMode` | string | `"sale"` | `"sale"`, `"rent"`, or `"sold"` |
| `maxListings` | integer | `20` | Maximum listings to scrape (1-500) |
| `includePropertyDetails` | boolean | `true` | Scrape each listing's detail page for enriched data |
| `sortBy` | string | `"dateupdated-desc"` | Sort: newest, price asc/desc, suburb A-Z |
| `propertyTypes` | string[] | `[]` | Filter by: house, apartment, townhouse, villa, land, acreage, retirement, unit-block |
| `minBedrooms` | integer | — | Minimum bedrooms (1-10) |
| `maxBedrooms` | integer | — | Maximum bedrooms (1-10) |
| `minBathrooms` | integer | — | Minimum bathrooms (1-10) |
| `maxBathrooms` | integer | — | Maximum bathrooms (1-10) |
| `minPrice` | integer | — | Minimum price in AUD (rent = weekly) |
| `maxPrice` | integer | — | Maximum price in AUD (rent = weekly) |
| `minParking` | integer | — | Minimum car spaces (1-10) |
| `maxRequestRetries` | integer | `3` | Retry attempts per page (1-10) |

---

### Output Fields

#### Always Included

| Field | Type | Description |
|-------|------|-------------|
| `listingId` | integer | Domain.com.au unique listing ID |
| `street` | string \| null | Street address (no suburb) |
| `suburb` | string \| null | Suburb name |
| `state` | string \| null | State abbreviation (VIC, NSW, etc.) |
| `postcode` | string \| null | 4-digit Australian postcode |
| `price` | number \| null | Numeric price (sale/sold = total, rent = weekly) |
| `priceDisplay` | string \| null | Formatted price as shown on Domain |
| `listingMode` | string | `sale`, `rent`, or `sold` |
| `propertyType` | string \| null | House, ApartmentUnitFlat, Townhouse, etc. |
| `propertyTypeFormatted` | string \| null | Human-readable property type |
| `bedrooms` | integer \| null | Number of bedrooms |
| `bathrooms` | integer \| null | Number of bathrooms |
| `parkingSpaces` | integer \| null | Number of car spaces |
| `landSize` | number \| null | Land area in m² |
| `landUnit` | string \| null | Land measurement unit (m², ha) |
| `imageUrl` | string \| null | Primary listing photo URL |
| `listingUrl` | string \| null | Full URL to property detail page |
| `latitude` | number \| null | Geographic latitude |
| `longitude` | number \| null | Geographic longitude |
| `isRural` | boolean \| null | Whether the property is rural |
| `isRetirement` | boolean \| null | Whether the property is in a retirement village |
| `tagText` | string \| null | Status tag (New, Sold, etc.) |
| `keywords` | string[] | Listing keywords |
| `inspectionOpenTime` | string \| null | Next inspection start (ISO 8601) |
| `inspectionCloseTime` | string \| null | Next inspection end (ISO 8601) |
| `scrapedAt` | string | ISO 8601 timestamp |
| `searchQuery` | string | Suburb + state + postcode + mode |

#### Detail Enrichment (`includePropertyDetails: true`)

| Field | Type | Description |
|-------|------|-------------|
| `fullDescription` | string \| null | Complete property description |
| `images` | string[] | All property photo URLs |
| `propertyFeatures` | string[] | Features and amenities |
| `agentName` | string \| null | Listing agent name |
| `agentEmail` | string \| null | Agent email address |
| `agentPhone` | string \| null | Agent phone number |
| `soldDate` | string \| null | Date sold (sold listings) |
| `inspectionTimes` | string[] | Upcoming open inspection times |
| `stampDutyEstimate` | number \| null | Estimated stamp duty |
| `medianPrice` | string \| null | Area median price info |

---

### Example Usage

#### Quick Suburb Scan

```json
{
  "searchLocations": [
    { "suburb": "Richmond", "state": "vic", "postcode": "3121" }
  ],
  "listingMode": "sale",
  "maxListings": 10,
  "includePropertyDetails": false
}
````

#### Comprehensive Area Analysis

```json
{
  "searchLocations": [
    { "suburb": "Surry Hills", "state": "nsw", "postcode": "2010" },
    { "suburb": "Paddington", "state": "nsw", "postcode": "2021" }
  ],
  "listingMode": "sale",
  "maxListings": 100,
  "includePropertyDetails": true,
  "propertyTypes": ["house", "townhouse"],
  "minBedrooms": 2,
  "maxPrice": 2000000,
  "sortBy": "price-asc"
}
```

#### Rental Market Research

```json
{
  "searchLocations": [
    { "suburb": "Brunswick", "state": "vic", "postcode": "3056" }
  ],
  "listingMode": "rent",
  "maxListings": 50,
  "minBedrooms": 2,
  "maxPrice": 800,
  "propertyTypes": ["apartment"]
}
```

#### Sold Price Tracking

```json
{
  "searchLocations": [
    { "suburb": "Brisbane City", "state": "qld", "postcode": "4000" }
  ],
  "listingMode": "sold",
  "maxListings": 200,
  "includePropertyDetails": true,
  "sortBy": "dateupdated-desc"
}
```

#### Direct URL Input

```json
{
  "searchUrls": [
    "https://www.domain.com.au/sale/melbourne-vic-3000/property-type-apartment-unit-flat/min-2-bedrooms/price-400000-800000/"
  ],
  "listingMode": "sale",
  "maxListings": 30
}
```

***

### Example Output

```json
{
  "listingId": 2020812074,
  "title": "House",
  "price": 2400000,
  "priceDisplay": "$2,400,000 - $2,600,000",
  "listingMode": "sale",
  "listingUrl": "https://www.domain.com.au/83-bendigo-street-richmond-vic-3121-2020812074",
  "imageUrl": "https://rimh2.domainstatic.com.au/fdqeJ7eA4M9ut_ADTnEixaGYa14=/720x540/filters:format(webp):quality(85)/2020812074_1_1_260504_040734-w1600-h1067",
  "street": "83 Bendigo Street",
  "suburb": "Richmond",
  "state": "VIC",
  "postcode": "3121",
  "latitude": -37.826443,
  "longitude": 145.012,
  "bedrooms": 3,
  "bathrooms": 2,
  "parkingSpaces": 2,
  "propertyType": "House",
  "propertyTypeFormatted": "House",
  "landSize": 450,
  "landUnit": "m²",
  "inspectionOpenTime": "2026-05-09T11:00:00",
  "inspectionCloseTime": "2026-05-09T11:30:00",
  "fullDescription": null,
  "images": [
    "https://rimh2.domainstatic.com.au/...w1600-h1067",
    "https://rimh2.domainstatic.com.au/...w1600-h1067"
  ],
  "propertyFeatures": [],
  "agentName": null,
  "agentEmail": null,
  "agentPhone": null,
  "soldDate": null,
  "inspectionTimes": [],
  "stampDutyEstimate": null,
  "medianPrice": null,
  "searchQuery": "sale/richmond-vic-3121/?sort=dateupdated-desc",
  "scrapedAt": "2026-05-04T14:31:16.079Z"
}
```

***

### Why This Scraper?

- **Australian-optimized** — Built specifically for Domain.com.au's Next.js architecture, extracting data via `Accept: application/json` header to get structured JSON directly from the SSR payload
- **No browser needed** — Uses Domain's built-in JSON API endpoint — no Playwright, no stealth plugins, no Cloudflare challenges. Fast, reliable, and cost-effective
- **Rich data extraction** — 40+ fields covering everything from basic listing info to deep detail-page enrichment
- **Dual input flexibility** — Drop in a full Domain URL or just specify suburbs — the scraper builds search paths automatically
- **Production-ready** — Retry logic, rate limiting, batch pushing, and graceful error handling built in

***

#### SEO Keywords

Australian real estate API, Domain.com.au scraper, property data extraction, real estate market analytics, Australian property listings, Domain scraper, sale listings Australia, rent listings Australia, sold price data Australia, property investment data, real estate lead generation, suburb property data, Domain.com.au data export, Australian housing market data

# Actor input Schema

## `searchUrls` (type: `array`):

Paste complete Domain.com.au search URLs. Use this OR Search Locations — not both.

## `searchLocations` (type: `array`):

Specify Australian suburbs to scrape. Each entry needs suburb, state (vic/nsw/qld/wa/sa/tas/nt/act), and postcode. URLs are built automatically from these plus your filters.

## `listingMode` (type: `string`):

Type of listings to scrape.

## `maxListings` (type: `integer`):

Maximum number of property listings to scrape across all searches.

## `includePropertyDetails` (type: `boolean`):

Scrape each listing's detail page for full description, images, coordinates, price history, schools, and agent contact info. Disable for faster results.

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

How Domain sorts the listings on each search page. Affects which properties hit the maxResults limit first.

## `propertyTypes` (type: `array`):

Filter by property type: house, apartment, townhouse, villa, land, acreage, retirement, unit-block. Leave empty to include all types.

## `minBedrooms` (type: `integer`):

Minimum number of bedrooms. Set to 0 or leave empty for no minimum.

## `maxBedrooms` (type: `integer`):

Maximum number of bedrooms. Set to 0 or leave empty for no maximum.

## `minBathrooms` (type: `integer`):

Minimum number of bathrooms. Set to 0 or leave empty for no minimum.

## `maxBathrooms` (type: `integer`):

Maximum number of bathrooms. Set to 0 or leave empty for no maximum.

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

Minimum price in Australian dollars. For rent, this is weekly rent. Leave empty for no minimum.

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

Maximum price in Australian dollars. For rent, this is weekly rent. Leave empty for no maximum.

## `minParking` (type: `integer`):

Minimum number of car spaces. Set to 0 or leave empty for no minimum.

## `maxRequestRetries` (type: `integer`):

Maximum retry attempts per page load if it fails.

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

Apify proxy settings. Defaults to Australian residential proxies. Override to customize or disable.

## Actor input object example

```json
{
  "searchUrls": [
    "https://www.domain.com.au/sale/sydney-nsw-2000/"
  ],
  "searchLocations": [
    {
      "suburb": "Richmond",
      "state": "vic",
      "postcode": "3121"
    }
  ],
  "listingMode": "sale",
  "maxListings": 20,
  "includePropertyDetails": true,
  "sortBy": "dateupdated-desc",
  "propertyTypes": [],
  "maxRequestRetries": 3,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "searchUrls": [
        "https://www.domain.com.au/sale/sydney-nsw-2000/"
    ],
    "searchLocations": [
        {
            "suburb": "Richmond",
            "state": "vic",
            "postcode": "3121"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("muhammadafzal/domain-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 = {
    "searchUrls": ["https://www.domain.com.au/sale/sydney-nsw-2000/"],
    "searchLocations": [{
            "suburb": "Richmond",
            "state": "vic",
            "postcode": "3121",
        }],
}

# Run the Actor and wait for it to finish
run = client.actor("muhammadafzal/domain-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 '{
  "searchUrls": [
    "https://www.domain.com.au/sale/sydney-nsw-2000/"
  ],
  "searchLocations": [
    {
      "suburb": "Richmond",
      "state": "vic",
      "postcode": "3121"
    }
  ]
}' |
apify call muhammadafzal/domain-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Domain.com.au Property Scraper — Sale, Rent & Sold Listings",
        "description": "Scrape Domain.com.au for Australian real estate listings. Extract sale prices, rent data, property details, agent info, images, floorplans, and more from Australia's leading property portal.",
        "version": "1.0",
        "x-build-id": "AGDaRmJBvQ4mXJEkD"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/muhammadafzal~domain-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-muhammadafzal-domain-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/muhammadafzal~domain-scraper/runs": {
            "post": {
                "operationId": "runs-sync-muhammadafzal-domain-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/muhammadafzal~domain-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-muhammadafzal-domain-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": [
                    "listingMode"
                ],
                "properties": {
                    "searchUrls": {
                        "title": "Search URLs",
                        "type": "array",
                        "description": "Paste complete Domain.com.au search URLs. Use this OR Search Locations — not both.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchLocations": {
                        "title": "Search Locations",
                        "type": "array",
                        "description": "Specify Australian suburbs to scrape. Each entry needs suburb, state (vic/nsw/qld/wa/sa/tas/nt/act), and postcode. URLs are built automatically from these plus your filters.",
                        "default": []
                    },
                    "listingMode": {
                        "title": "Listing Mode",
                        "enum": [
                            "sale",
                            "rent",
                            "sold"
                        ],
                        "type": "string",
                        "description": "Type of listings to scrape.",
                        "default": "sale"
                    },
                    "maxListings": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of property listings to scrape across all searches.",
                        "default": 20
                    },
                    "includePropertyDetails": {
                        "title": "Include Full Property Details",
                        "type": "boolean",
                        "description": "Scrape each listing's detail page for full description, images, coordinates, price history, schools, and agent contact info. Disable for faster results.",
                        "default": true
                    },
                    "sortBy": {
                        "title": "Sort Results By",
                        "enum": [
                            "dateupdated-desc",
                            "price-asc",
                            "price-desc",
                            "suburb-asc"
                        ],
                        "type": "string",
                        "description": "How Domain sorts the listings on each search page. Affects which properties hit the maxResults limit first.",
                        "default": "dateupdated-desc"
                    },
                    "propertyTypes": {
                        "title": "Property Types",
                        "type": "array",
                        "description": "Filter by property type: house, apartment, townhouse, villa, land, acreage, retirement, unit-block. Leave empty to include all types.",
                        "default": []
                    },
                    "minBedrooms": {
                        "title": "Min Bedrooms",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Minimum number of bedrooms. Set to 0 or leave empty for no minimum."
                    },
                    "maxBedrooms": {
                        "title": "Max Bedrooms",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Maximum number of bedrooms. Set to 0 or leave empty for no maximum."
                    },
                    "minBathrooms": {
                        "title": "Min Bathrooms",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Minimum number of bathrooms. Set to 0 or leave empty for no minimum."
                    },
                    "maxBathrooms": {
                        "title": "Max Bathrooms",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Maximum number of bathrooms. Set to 0 or leave empty for no maximum."
                    },
                    "minPrice": {
                        "title": "Min Price (AUD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum price in Australian dollars. For rent, this is weekly rent. Leave empty for no minimum."
                    },
                    "maxPrice": {
                        "title": "Max Price (AUD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum price in Australian dollars. For rent, this is weekly rent. Leave empty for no maximum."
                    },
                    "minParking": {
                        "title": "Min Parking Spaces",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Minimum number of car spaces. Set to 0 or leave empty for no minimum."
                    },
                    "maxRequestRetries": {
                        "title": "Max Request Retries",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Maximum retry attempts per page load if it fails.",
                        "default": 3
                    },
                    "proxy": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Apify proxy settings. Defaults to Australian residential proxies. Override to customize or disable.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
