# Iproperty Property Search Scraper (`stealth_mode/iproperty-property-search-scraper`) Actor

Scrape residential property listings from iProperty.com.my with ease. Extract 40+ fields including price, location, agent info, floor area, bedrooms, MRT proximity, and media — perfect for real estate analysts, developers, and investors.

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

## Pricing

from $3.00 / 1,000 results

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

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## iProperty.com.my Scraper: Extract Malaysia Property Listings at Scale

---

### What Is iProperty.com.my?

iProperty.com.my is one of Malaysia's largest property portals, listing thousands of residential and commercial properties for sale and rent across Kuala Lumpur, Selangor, Penang, Johor, and beyond. For real estate professionals, data analysts, and property investors, manually collecting listing data is impractical at scale. The **iProperty.com.my Property Search Scraper** automates this — turning paginated search results into structured, analysis-ready datasets.

---

### Overview

This scraper targets iProperty search result pages and extracts rich listing records covering pricing, property specs, agent details, developer info, media assets, and engagement signals. It is suited for:

- **Property investors** monitoring market prices by area
- **Real estate analysts** building comparative datasets
- **Proptech developers** feeding listing data into aggregator platforms
- **Researchers** studying Malaysian housing market trends

---

### Input Format

```json
{
  "urls": [
    "https://www.iproperty.com.my/property-for-sale/2?isCommercial=false"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 50
}
````

| Field | Type | Default | Description |
|---|---|---|---|
| `urls` | `array` | — | URLs of iProperty search/listing pages to scrape. Supports multiple URLs; add one per line or use Bulk edit. Example: `https://www.iproperty.com.my/property-for-sale/kuala-lumpur` |
| `ignore_url_failures` | `boolean` | `true` | If `true`, the scraper continues running when a URL fails, skipping it and processing remaining URLs instead of halting the run |
| `max_items_per_url` | `integer` | `20` | Maximum number of property listings to collect per URL. Increase for broader datasets; lower for quick sampling |

> **Tip:** Use filtered search URLs (e.g., by state, price range, or property type) to target specific market segments. Paginated URLs like `/property-for-sale/2` are supported.

***

### Output Format

**Sample output**

```json
{
  "id": 501314497,
  "status_code": "ACT",
  "type_code": "SALE",
  "is_verified": false,
  "viewed_label": "Viewed",
  "agent": {
    "id": 1841250,
    "agency_id": 52675,
    "name": "Ginie Gui",
    "is_agent_verified": false,
    "profile_url": "/property-agent/ginie-gui-1841250/",
    "license": "REN 59212",
    "has_mobile_pretty": true,
    "has_phone_pretty": true,
    "has_line_id": false,
    "avatar": {
      "src": "https://img.iproperty.com.my/my-iproperty-agent/premium/120x120-fit/2r413fb57059-2a2a-4415-bc2e-80d30c66a282_853x853.jpeg",
      "type": "circle"
    }
  },
  "agency": {
    "id": 52675,
    "name": "MCENTURY PROPERTIES SDN BHD [ E (1) 1862 ]"
  },
  "badge_text": "",
  "availability_info": "",
  "psf_text": "RM 546.08 psf",
  "listing_features": [
    [
      {
        "icon_name": "bed-o",
        "text": "4+1",
        "data_automation_id": "listing-card-v2-bedrooms"
      },
      {
        "icon_name": "bath-o",
        "text": "4",
        "data_automation_id": "listing-card-v2-bathrooms"
      }
    ],
    {
      "text": "2,045 sqft (floor), 1,302 sqft (land)",
      "data_automation_id": "listing-card-v2-area"
    },
    {
      "text": "2-storey Terraced House",
      "data_automation_id": "listing-card-v2-unit-type"
    },
    {
      "text": "Intermediate",
      "data_automation_id": "listing-card-v2-unit-type-details"
    },
    {
      "text": "Unfurnished",
      "data_automation_id": "listing-card-v2-furnish"
    }
  ],
  "property": {
    "new_project": false,
    "type_code": "SALE",
    "type_text": "For Sale",
    "type_group": "T",
    "is_premium_project_listing": false,
    "id": 0
  },
  "full_address": "Abadi Heights, Puchong, Selangor",
  "localized_title": "Abadi Heights",
  "media_items": [
    {
      "icon": "pgicon-photo",
      "icon_name": "images-1-o",
      "text": "15",
      "media_type": "images",
      "tooltip_text": "15 Photos"
    }
  ],
  "mrt": {
    "nearby_text": "",
    "pill": {
      "colors": []
    }
  },
  "media_controls": {
    "hide_button_title": "Hide Property",
    "shortlist_button_title": "Shortlist Property"
  },
  "media_carousel": {
    "next_button_title": "Next",
    "previous_button_title": "Previous",
    "preview_media": {
      "images": {
        "icon": "pgicon-photo",
        "items": [
          {
            "caption": "Exterior",
            "src": "https://ipp1-cdn.pgimgs.com/listing/501314497/UPHO.380993894.V800/Abadi-Heights-Selangor-Malaysia.jpg"
          },
          {
            "caption": "Living Room",
            "src": "https://ipp1-cdn.pgimgs.com/listing/501314497/UPHO.380993895.V800/Abadi-Heights-Selangor-Malaysia.jpg"
          },
          {
            "caption": "Dry Kitchen",
            "src": "https://ipp1-cdn.pgimgs.com/listing/501314497/UPHO.380993896.V800/Abadi-Heights-Selangor-Malaysia.jpg"
          },
          {
            "caption": "Wet Kitchen",
            "src": "https://ipp1-cdn.pgimgs.com/listing/501314497/UPHO.380993897.V800/Abadi-Heights-Selangor-Malaysia.jpg"
          },
          {
            "caption": "Yard",
            "src": "https://ipp1-cdn.pgimgs.com/listing/501314497/UPHO.380993898.V800/Abadi-Heights-Selangor-Malaysia.jpg"
          },
          {
            "caption": "Bedroom",
            "src": "https://ipp1-cdn.pgimgs.com/listing/501314497/UPHO.380993899.V800/Abadi-Heights-Selangor-Malaysia.jpg"
          },
          {
            "caption": "Bathroom",
            "src": "https://ipp1-cdn.pgimgs.com/listing/501314497/UPHO.380993900.V800/Abadi-Heights-Selangor-Malaysia.jpg"
          },
          {
            "caption": "Store Room",
            "src": "https://ipp1-cdn.pgimgs.com/listing/501314497/UPHO.380993901.V800/Abadi-Heights-Selangor-Malaysia.jpg"
          },
          {
            "caption": "Family Hall",
            "src": "https://ipp1-cdn.pgimgs.com/listing/501314497/UPHO.380993902.V800/Abadi-Heights-Selangor-Malaysia.jpg"
          },
          {
            "caption": "Bedroom",
            "src": "https://ipp1-cdn.pgimgs.com/listing/501314497/UPHO.380993903.V800/Abadi-Heights-Selangor-Malaysia.jpg"
          },
          {
            "caption": "Bedroom",
            "src": "https://ipp1-cdn.pgimgs.com/listing/501314497/UPHO.380993904.V800/Abadi-Heights-Selangor-Malaysia.jpg"
          },
          {
            "caption": "Bathroom",
            "src": "https://ipp1-cdn.pgimgs.com/listing/501314497/UPHO.380993905.V800/Abadi-Heights-Selangor-Malaysia.jpg"
          },
          {
            "caption": "Bathroom",
            "src": "https://ipp1-cdn.pgimgs.com/listing/501314497/UPHO.380993906.V800/Abadi-Heights-Selangor-Malaysia.jpg"
          },
          {
            "caption": "Master Room",
            "src": "https://ipp1-cdn.pgimgs.com/listing/501314497/UPHO.380993907.V800/Abadi-Heights-Selangor-Malaysia.jpg"
          },
          {
            "caption": "Bathroom",
            "src": "https://ipp1-cdn.pgimgs.com/listing/501314497/UPHO.380993908.V800/Abadi-Heights-Selangor-Malaysia.jpg"
          }
        ],
        "name": {
          "singular": "Photo",
          "plural": "Photos"
        }
      },
      "floor_plans": {
        "icon": "pgicon-floorplan",
        "items": [],
        "name": {
          "singular": "Floor Plan",
          "plural": "Floor Plans"
        }
      },
      "site_plans": {
        "icon": "",
        "items": [],
        "name": {
          "singular": "",
          "plural": ""
        }
      },
      "videos": {
        "icon": "video-camera-o",
        "items": [],
        "name": {
          "singular": "Live Tour",
          "plural": "Live Tours"
        }
      },
      "virtual_tours": {
        "icon": "video-clip-o",
        "items": [],
        "name": {
          "singular": "Virtual Tour",
          "plural": "Virtual Tours"
        }
      },
      "hero_videos": {
        "icon": "",
        "items": [],
        "name": {
          "singular": "",
          "plural": ""
        }
      }
    }
  },
  "price": {
    "value": 711000,
    "pretty": "RM 711,000",
    "currency": "MYR",
    "locale_string_value": "711000"
  },
  "badges": [
    {
      "name": "unit_type",
      "variant": "secondary",
      "bg": "neutral",
      "type": "small",
      "text": "2-storey Terraced House",
      "should_show_icon": false
    },
    {
      "name": "tenure",
      "variant": "secondary",
      "bg": "neutral",
      "type": "small",
      "text": "Leasehold",
      "should_show_icon": false
    }
  ],
  "url": "/property/puchong/abadi-heights/sale-501314497/",
  "recency": {
    "icon": "clock-o",
    "icon_name": "clock-circle-o",
    "text": "Listed on May 12, 2026 (26m ago)"
  },
  "thumbnail": "https://ipp1-cdn.pgimgs.com/listing/501314497/UPHO.380993894.V550/Abadi-Heights-Selangor-Malaysia.jpg",
  "type_text": "For Sale",
  "listed_by_text": "Listed by",
  "contact_agent_text": "Contact Agent",
  "is_official_listing": false,
  "is_prioritized": false,
  "view_profile_text": "View Agent Profile",
  "tracking": {
    "ref_type": ""
  },
  "developer": "Ginie Gui",
  "posted_on": {
    "text": "12 May 2026",
    "unix": 1778575484
  },
  "area": {
    "locale_string_value": "1,302 sqft (land)"
  },
  "price_per_area": {
    "locale_string_value": "RM 347.68 psf"
  },
  "developer_promoted_text": "",
  "is_developer_listing": false,
  "products": {
    "is_primary_gold": false,
    "is_degraded": false,
    "is_primary_basic": false,
    "is_primary_platinum": false,
    "is_standard": false,
    "tier": 3,
    "is_premium_project_listing": false,
    "is_featured_listing": false,
    "is_premium": true,
    "is_featured": false,
    "is_property_specialist_listing": false,
    "position": 1
  },
  "bedrooms": 4,
  "bathrooms": 4,
  "floor_area": 2045,
  "additional_data": {
    "tenure": "L",
    "area_text": "Abadi Heights",
    "area_code": "0m5wy",
    "district_code": "ai5y2",
    "district_text": "Puchong",
    "region_text": "Selangor",
    "region_code": "45nk1"
  },
  "external_id": "501314497",
  "cross_listing_type": "ORIGINAL",
  "from_url": "https://www.iproperty.com.my/property-for-sale/2?isCommercial=false"
}
```

Each listing returns a structured record with 40+ fields:

#### Identification & Status

| Field | Meaning |
|---|---|
| `ID` | Unique internal listing identifier |
| `External ID` | ID used by the source platform or developer system |
| `Status Code` | Listing status (e.g., active, under offer) |
| `Type Code` | Machine-readable property type code |
| `Type Text` | Human-readable property type (e.g., Condominium, Terrace House) |
| `Cross Listing Type` | Indicates if the listing appears across multiple portals |
| `Is Official Listing` | Whether the listing is verified as an official agency post |
| `Is Prioritized` | Whether the listing has paid priority placement |
| `Is Developer Listing` | Whether posted by a property developer rather than an agent |

#### Pricing

| Field | Meaning |
|---|---|
| `Price` | Listed asking price (RM) |
| `Price Per Area` | Price per sq ft or sq m |
| `PSF Text` | Formatted price-per-square-foot display string |

#### Property Details

| Field | Meaning |
|---|---|
| `Property` | Core property metadata object (name, project, type) |
| `Localized Title` | Display title as shown on the listing card |
| `Full Address` | Complete property address |
| `Area` | General area or neighbourhood |
| `Bedrooms` | Number of bedrooms |
| `Bathrooms` | Number of bathrooms |
| `Floor Area` | Total floor area (sq ft or sq m) |
| `Listing Features` | Key highlights (e.g., furnished, corner unit, freehold) |
| `Availability Info` | Move-in or availability status |
| `MRT` | Nearest MRT/LRT station and estimated distance |

#### Agent & Developer

| Field | Meaning |
|---|---|
| `Agent` | Listing agent name, photo, and contact info |
| `Agency` | Agency the agent belongs to |
| `Listed By Text` | Display label for the listing source |
| `Contact Agent Text` | CTA label used on the listing card |
| `View Profile Text` | Label for the agent profile link |
| `Developer` | Developer name and metadata (for new projects) |
| `Developer Promoted Text` | Promotional label used by developer listings |

#### Media & Visuals

| Field | Meaning |
|---|---|
| `Thumbnail` | Primary listing thumbnail image URL |
| `Media Items` | Full list of images and videos attached to the listing |
| `Media Controls` | UI control flags for media display |
| `Media Carousel` | Carousel configuration for media rendering |

#### Engagement & Tracking

| Field | Meaning |
|---|---|
| `Viewed Label` | Display text for view count (e.g., "120 views") |
| `Recency` | How recently the listing was posted or updated |
| `Posted On` | Publication timestamp |
| `Badges` | Visual badge objects (e.g., "Hot", "New Launch") |
| `Badge Text` | Plain-text badge label |
| `Tracking` | Analytics and impression tracking metadata |
| `Products` | Platform product/ad packages applied to the listing |

#### Verification & Eligibility

| Field | Meaning |
|---|---|
| `Is Verified` | Whether the listing has passed iProperty's verification check |
| `Additional Data` | Supplementary metadata not captured in standard fields |
| `URL` | Direct link to the full listing detail page |

***

### How to Use

1. **Get search URLs** — Run a filtered search on iProperty.com.my (by location, price, type). Copy the results page URL.
2. **Configure input** — Paste URLs into `urls`. Adjust `max_items_per_url` based on how many listings you need.
3. **Handle failures** — Keep `ignore_url_failures: true` for multi-URL runs to avoid interruptions from unavailable pages.
4. **Run and export** — Start the scraper and download results as JSON, CSV, or Excel.

**Best practices:**

- Use page 2+ URLs (e.g., `/property-for-sale/2`) to avoid duplicate scraping across runs
- Filter by `isCommercial=false` for residential-only results
- Combine multiple filtered URLs in one run for broader coverage

***

### Use Cases & Business Value

- **Price tracking:** Monitor asking price trends by neighbourhood or property type over time
- **Market research:** Analyse supply, bedroom distribution, and PSF benchmarks across regions
- **Lead generation:** Extract agent contacts for outreach campaigns
- **Proptech feeds:** Populate custom listing platforms with structured iProperty data
- **Investment analysis:** Identify underpriced listings by comparing PSF across comparable units

***

### Conclusion

The **iProperty.com.my Property Search Scraper** delivers comprehensive, structured property data from Malaysia's top real estate portal — without manual effort. Whether you're tracking prices, building a dataset, or powering a proptech product, this scraper provides the depth and flexibility you need. Configure your URLs, run the scraper, and get market-ready data in minutes.

# Actor input Schema

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

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

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

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

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

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.iproperty.com.my/property-for-sale/2?isCommercial=false"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.iproperty.com.my/property-for-sale/2?isCommercial=false"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/iproperty-property-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://www.iproperty.com.my/property-for-sale/2?isCommercial=false"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/iproperty-property-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.iproperty.com.my/property-for-sale/2?isCommercial=false"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/iproperty-property-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Iproperty Property Search Scraper",
        "description": "Scrape residential property listings from iProperty.com.my with ease. Extract 40+ fields including price, location, agent info, floor area, bedrooms, MRT proximity, and media — perfect for real estate analysts, developers, and investors.",
        "version": "0.0",
        "x-build-id": "XitrhTQzmdDBaUucl"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~iproperty-property-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-iproperty-property-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/stealth_mode~iproperty-property-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-iproperty-property-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/stealth_mode~iproperty-property-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-iproperty-property-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "urls": {
                        "title": "URLs of the property list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the property list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
