{
  "openapi": "3.0.1",
  "info": {
    "title": "iProperty Scraper with Contacts| Enterprise Grade",
    "description": "Extract iProperty Malaysia listings at scale with rich property detail, agent contacts, project data, nearby places, and transaction history. Built for enterprise-grade Malaysia real estate intelligence, lead enrichment, and automated analytics pipelines.",
    "version": "0.0",
    "x-build-id": "qibr9SXvExe5kjLvX"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fatihtahta~iproperty-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fatihtahta-iproperty-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/fatihtahta~iproperty-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fatihtahta-iproperty-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/fatihtahta~iproperty-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fatihtahta-iproperty-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": [
          "location"
        ],
        "properties": {
          "deal_type": {
            "title": "Choose Sale or Rent Listings",
            "enum": [
              "buy",
              "rent"
            ],
            "type": "string",
            "description": "Select the marketplace segment to collect from. This choice shapes the listings returned and affects which sale-only filters, such as tenure, are useful.",
            "default": "buy"
          },
          "location": {
            "title": "Enter the Required Location",
            "type": "string",
            "description": "Enter one Malaysian location, such as a city, state, township, neighborhood, or market. More specific locations produce a more targeted dataset, while broader locations can return a wider set of listings."
          },
          "property_type": {
            "title": "Choose Property Category",
            "enum": [
              "all_residential",
              "all_commercial",
              "residential_bungalow_villa",
              "residential_apartment_condo",
              "residential_semi_detached_house",
              "residential_terrace_link_house",
              "residential_residential_land",
              "commercial_commercial_property",
              "commercial_industrial_property",
              "commercial_agricultural_land",
              "commercial_other"
            ],
            "type": "string",
            "description": "Collect only listings that match the selected property category. Commercial categories can make some residential-only filters irrelevant.",
            "default": "all_residential"
          },
          "min_price": {
            "title": "Set Minimum Price",
            "minimum": 0,
            "type": "integer",
            "description": "Collect only listings priced at or above this amount. Leave empty when you do not need a lower price boundary."
          },
          "max_price": {
            "title": "Set Maximum Price",
            "minimum": 0,
            "type": "integer",
            "description": "Collect only listings priced at or below this amount. Leave empty when you do not need an upper price boundary."
          },
          "min_price_psf": {
            "title": "Set Minimum Price per Square Foot",
            "minimum": 0,
            "type": "integer",
            "description": "Collect only listings with a price per square foot at or above this amount. Leave empty when lower value-density filtering is not needed."
          },
          "max_price_psf": {
            "title": "Set Maximum Price per Square Foot",
            "minimum": 0,
            "type": "integer",
            "description": "Collect only listings with a price per square foot at or below this amount. Leave empty when upper value-density filtering is not needed."
          },
          "min_floor_area": {
            "title": "Set Minimum Floor Area",
            "minimum": 0,
            "type": "integer",
            "description": "Collect only listings with at least this many square feet of floor area. Leave empty when you do not need a minimum built-up size."
          },
          "max_floor_area": {
            "title": "Set Maximum Floor Area",
            "minimum": 0,
            "type": "integer",
            "description": "Collect only listings with at most this many square feet of floor area. Leave empty when you do not need a maximum built-up size."
          },
          "min_land_area": {
            "title": "Set Minimum Land Area",
            "minimum": 0,
            "type": "integer",
            "description": "Collect only listings with at least this many square feet of land area. Leave empty when you do not need a minimum land size."
          },
          "max_land_area": {
            "title": "Set Maximum Land Area",
            "minimum": 0,
            "type": "integer",
            "description": "Collect only listings with at most this many square feet of land area. Leave empty when you do not need a maximum land size."
          },
          "min_building_year": {
            "title": "Set Earliest Building Year",
            "minimum": 1977,
            "maximum": 2032,
            "type": "integer",
            "description": "Collect only listings completed in or after this year. Leave empty when you do not need an earliest completion year."
          },
          "max_building_year": {
            "title": "Set Latest Building Year",
            "minimum": 1977,
            "maximum": 2032,
            "type": "integer",
            "description": "Collect only listings completed in or before this year. Leave empty when you do not need a latest completion year."
          },
          "bedroom": {
            "title": "Choose Bedroom Counts",
            "uniqueItems": true,
            "type": "array",
            "description": "Collect only listings that match one of the selected bedroom counts. Leave empty to accept any bedroom count.",
            "items": {
              "type": "string",
              "enum": [
                "studio",
                "1",
                "2",
                "3",
                "4",
                "5+"
              ],
              "enumTitles": [
                "Studio",
                "1",
                "2",
                "3",
                "4",
                "5+"
              ]
            }
          },
          "bathroom": {
            "title": "Choose Bathroom Counts",
            "uniqueItems": true,
            "type": "array",
            "description": "Collect only listings that match one of the selected bathroom counts. Leave empty to accept any bathroom count.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5+"
              ],
              "enumTitles": [
                "1",
                "2",
                "3",
                "4",
                "5+"
              ]
            }
          },
          "parking": {
            "title": "Choose Parking Space Counts",
            "uniqueItems": true,
            "type": "array",
            "description": "Collect only listings that match one of the selected parking-space counts. Leave empty to accept any parking count.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5+"
              ],
              "enumTitles": [
                "1",
                "2",
                "3",
                "4",
                "5+"
              ]
            }
          },
          "unit_type": {
            "title": "Choose Unit Type",
            "enum": [
              "duplex",
              "triplex",
              "studio",
              "corner_lot",
              "intermediate",
              "end_lot",
              "loft",
              "dual_key",
              "soho",
              "penthouse"
            ],
            "type": "string",
            "description": "Collect only listings matching this unit layout or lot-position type. Leave empty when unit type is not part of your selection criteria."
          },
          "floor_level": {
            "title": "Choose Floor Levels",
            "uniqueItems": true,
            "type": "array",
            "description": "Collect only listings matching one of the selected floor-level categories. Leave empty to include any floor level.",
            "items": {
              "type": "string",
              "enum": [
                "ground",
                "low",
                "mid",
                "high",
                "penthouse"
              ],
              "enumTitles": [
                "Ground",
                "Low",
                "Mid",
                "High",
                "Penthouse"
              ]
            }
          },
          "furnishing": {
            "title": "Choose Furnishing Status",
            "uniqueItems": true,
            "type": "array",
            "description": "Collect only residential listings matching one of the selected furnishing statuses. This filter does not apply to commercial property categories.",
            "items": {
              "type": "string",
              "enum": [
                "unfurnished",
                "partially_furnished",
                "fully_furnished"
              ],
              "enumTitles": [
                "Unfurnished",
                "Partially Furnished",
                "Fully Furnished"
              ]
            }
          },
          "unit_amenities": {
            "title": "Choose Unit Amenities",
            "uniqueItems": true,
            "type": "array",
            "description": "Collect only residential listings that include one of the selected in-unit features. This filter does not apply to commercial property categories.",
            "items": {
              "type": "string",
              "enum": [
                "aircon",
                "balcony",
                "bath_tub",
                "corner_unit",
                "helpers_room",
                "private_pool",
                "renovated",
                "terrace"
              ],
              "enumTitles": [
                "Aircon",
                "Balcony",
                "Bath tub",
                "Corner unit",
                "Helper's room",
                "Private pool",
                "Renovated",
                "Terrace"
              ]
            }
          },
          "building_amenities": {
            "title": "Choose Building Amenities",
            "uniqueItems": true,
            "type": "array",
            "description": "Collect only residential listings that include one of the selected building amenities. This filter does not apply to commercial property categories.",
            "items": {
              "type": "string",
              "enum": [
                "gym",
                "parking",
                "swimming_pool",
                "tennis_court"
              ],
              "enumTitles": [
                "Gym",
                "Parking",
                "Swimming pool",
                "Tennis court"
              ]
            }
          },
          "keyword": {
            "title": "Enter Search Keyword",
            "type": "string",
            "description": "Collect only listings that match this keyword. Use a short property, area, feature, or project term; leave empty when location and filters are enough."
          },
          "publication_date": {
            "title": "Choose Listing Freshness",
            "enum": [
              "3_days",
              "7_days",
              "14_days",
              "30_days"
            ],
            "type": "string",
            "description": "Collect only listings posted within the selected time window. Use this when recent market activity matters more than older inventory."
          },
          "with_video": {
            "title": "Include Only Listings with Video or Virtual Tours",
            "type": "boolean",
            "description": "Enable this to collect only listings that include video or virtual-tour media. This creates a narrower dataset focused on richer listing presentations.",
            "default": false
          },
          "tenure": {
            "title": "Choose Tenure Types",
            "uniqueItems": true,
            "type": "array",
            "description": "Collect only sale listings matching one of the selected tenure values. Leasehold covers the available leasehold options for the selected property category; Bumi Lot applies only to residential categories.",
            "items": {
              "type": "string",
              "enum": [
                "freehold",
                "malay_reserved_land",
                "private_lease_scheme",
                "leasehold",
                "bumi_lot"
              ],
              "enumTitles": [
                "Freehold",
                "Malay Reserved Land",
                "Private Lease Scheme",
                "Leasehold",
                "Bumi Lot (Residential)"
              ]
            }
          },
          "verified_agent": {
            "title": "Require Verified Agent Listings",
            "type": "boolean",
            "description": "Enable this to collect only listings marked as coming from verified agents. This narrows the dataset toward listings with an additional marketplace trust signal.",
            "default": false
          },
          "enrich_data": {
            "title": "Collect Richer Property Listing Details",
            "type": "boolean",
            "description": "Enable this for more complete property listings, including descriptions, listing dates, furnishing, project facilities, nearby points of interest, and extra media when available. Turn it off for faster runs when the standard result fields are enough.",
            "default": true
          },
          "get_contact": {
            "title": "Include Agent Contact Details",
            "type": "boolean",
            "description": "Enable this to add available agent phone and contact fields to saved listing records. Leave disabled when you only need listing-level property data.",
            "default": true
          },
          "get_transaction_history": {
            "title": "Include Transaction History",
            "type": "boolean",
            "description": "Enable this to add available sale and rental transaction history to saved listing records. This is useful for valuation, comparison, and market-research workflows.",
            "default": true
          },
          "limit": {
            "title": "Set Maximum Listings",
            "minimum": 1,
            "type": "integer",
            "description": "Set the maximum number of listings to save for the location. Leave empty to keep collecting available matching listings until the run naturally finishes."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}