{
  "openapi": "3.0.1",
  "info": {
    "title": "Realestate.com.kh Scraper | Cambodia Property Listings",
    "description": "Realestate.com.kh scraper & API for Cambodia real estate: search property for sale and rent and export address, price, beds, baths, area, type, agent, amenities, photos and coordinates. Cambodia property market data and lead generation — fast, no login.",
    "version": "1.0",
    "x-build-id": "2vgR1cDFOoUhbRRaq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/haketa~realestate-com-kh-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-haketa-realestate-com-kh-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/haketa~realestate-com-kh-scraper/runs": {
      "post": {
        "operationId": "runs-sync-haketa-realestate-com-kh-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/haketa~realestate-com-kh-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-haketa-realestate-com-kh-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": {
          "listingType": {
            "title": "Listing Type",
            "enum": [
              "buy",
              "rent",
              "new-developments",
              "all"
            ],
            "type": "string",
            "description": "Show properties for sale, for rent, or brand-new developments.",
            "default": "buy"
          },
          "propertyType": {
            "title": "Property Type",
            "enum": [
              "all",
              "house",
              "condo",
              "apartment",
              "villa",
              "land",
              "shophouse",
              "commercial",
              "borey"
            ],
            "type": "string",
            "description": "Narrow results to a single property type, or keep All to include everything.",
            "default": "all"
          },
          "cities": {
            "title": "Cities / Areas",
            "type": "array",
            "description": "Pick one or more cities and popular Phnom Penh neighbourhoods. Leave empty to cover all of Cambodia.",
            "items": {
              "type": "string",
              "enum": [
                "phnom-penh",
                "siem-reap",
                "sihanoukville",
                "battambang",
                "kampot",
                "kep",
                "kandal",
                "bkk-1",
                "bkk-2",
                "bkk-3",
                "tonle-bassac",
                "chamkarmon",
                "daun-penh",
                "7-makara",
                "toul-kork",
                "sen-sok",
                "chroy-changvar",
                "chbar-ampov",
                "russian-market",
                "boeung-keng-kang"
              ],
              "enumTitles": [
                "Phnom Penh",
                "Siem Reap",
                "Sihanoukville",
                "Battambang",
                "Kampot",
                "Kep",
                "Kandal",
                "BKK 1 (Phnom Penh)",
                "BKK 2 (Phnom Penh)",
                "BKK 3 (Phnom Penh)",
                "Tonle Bassac (Phnom Penh)",
                "Chamkarmon (Phnom Penh)",
                "Daun Penh (Phnom Penh)",
                "7 Makara (Phnom Penh)",
                "Toul Kork (Phnom Penh)",
                "Sen Sok (Phnom Penh)",
                "Chroy Changvar (Phnom Penh)",
                "Chbar Ampov (Phnom Penh)",
                "Russian Market (Phnom Penh)",
                "Boeung Keng Kang (Phnom Penh)"
              ]
            },
            "default": []
          },
          "scrapeDetails": {
            "title": "Scrape Full Detail Pages",
            "type": "boolean",
            "description": "Visit each listing for the full description, features, amenities, map coordinates, all photos, title type (Hard/Soft/Strata) and agency contact. Richer data, but slower.",
            "default": false
          },
          "maxRecords": {
            "title": "Max Records",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of listings to collect. Set 0 for unlimited.",
            "default": 0
          },
          "maxPages": {
            "title": "Max Pages Per Search",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum result pages to open per search. Set 0 for unlimited.",
            "default": 0
          },
          "startUrls": {
            "title": "Start URLs (advanced)",
            "type": "array",
            "description": "Optional. Paste your own realestate.com.kh search page links to scrape them directly. Leave empty to use the menus above.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "requestDelay": {
            "title": "Request Delay (ms)",
            "minimum": 500,
            "maximum": 10000,
            "type": "integer",
            "description": "Pause between requests to stay gentle on the site. 1000-2000ms recommended.",
            "default": 1000
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy recommended for reliable large scrapes.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}