{
  "openapi": "3.0.1",
  "info": {
    "title": "Dot Property Scraper | TH PH MY VN Listings",
    "description": "Scrape Dot Property Thailand, Philippines, Malaysia & Vietnam — condos, houses, land, offices for sale or rent. Extract prices, beds, area, features & images. Dot Property API alternative.",
    "version": "0.4",
    "x-build-id": "VNDFjPCubfHXmpoIO"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lentic_clockss~dot-property-th-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lentic_clockss-dot-property-th-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/lentic_clockss~dot-property-th-scraper/runs": {
      "post": {
        "operationId": "runs-sync-lentic_clockss-dot-property-th-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/lentic_clockss~dot-property-th-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-lentic_clockss-dot-property-th-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": {
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Dot Property search (SRP) or listing detail (LDP) URLs for TH/PH/MY/VN. Search URLs override market/location/category when provided.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "market": {
            "title": "Market",
            "enum": [
              "TH",
              "PH",
              "MY",
              "VN",
              "all"
            ],
            "type": "string",
            "description": "Primary country market. Use all for TH+PH+MY+VN. Ignored when markets is set.",
            "default": "TH"
          },
          "markets": {
            "title": "Markets",
            "type": "array",
            "description": "Optional multi-select of markets. Overrides market when non-empty.",
            "items": {
              "type": "string",
              "enum": [
                "TH",
                "PH",
                "MY",
                "VN"
              ]
            },
            "default": []
          },
          "location": {
            "title": "Location slug",
            "type": "string",
            "description": "Place slug (bangkok, metro-manila, kuala-lumpur). Leave empty to use each market default (VN defaults to national).",
            "default": "bangkok"
          },
          "areaSlugs": {
            "title": "Area slugs (TH)",
            "type": "array",
            "description": "TH only: run the search across multiple location slugs (e.g. bangkok, watthana, phra-khanong) as separate paginated slices. Each slice stops at the backend page cap. Ignored for other markets.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "channel": {
            "title": "Channel",
            "enum": [
              "BUY",
              "RENT"
            ],
            "type": "string",
            "description": "BUY (for sale) or RENT (for rent).",
            "default": "BUY"
          },
          "propertyType": {
            "title": "Property type",
            "enum": [
              "properties",
              "all",
              "condos",
              "houses",
              "apartments",
              "townhouses",
              "villas",
              "land",
              "serviced-apartments",
              "commercial-property",
              "offices",
              "shophouse",
              "warehouses",
              "hotels",
              "retail-spaces"
            ],
            "type": "string",
            "description": "Single category. Use all to expand primary residential + commercial types for the channel.",
            "default": "properties"
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Optional multi-select categories. Overrides propertyType when non-empty. all expands primary types.",
            "items": {
              "type": "string",
              "enum": [
                "all",
                "properties",
                "condos",
                "houses",
                "apartments",
                "townhouses",
                "villas",
                "land",
                "serviced-apartments",
                "commercial-property",
                "offices",
                "shophouse",
                "warehouses",
                "hotels",
                "retail-spaces"
              ]
            },
            "default": []
          },
          "maxItems": {
            "title": "Max listings per URL or market",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Most property rows for each start URL, or for each market when URLs are not provided. Default 70; larger numbers are collected in parts of 70. Categories for one market share its budget. The whole run stops at your maximum total charge. Free Apify plan: up to 200 rows per run and 10 runs of this Actor.",
            "default": 70
          },
          "maxPages": {
            "title": "Max search pages",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum SRP pages per search URL (~25–30 listings per page).",
            "default": 1
          },
          "scrapeDetails": {
            "title": "Scrape detail pages",
            "type": "boolean",
            "description": "Fetch each listing LDP (RSC unitDetail on TH; DOM on PH/MY/VN).",
            "default": true
          },
          "useBrowserFallback": {
            "title": "Browser / enhanced HTTP fallback",
            "type": "boolean",
            "description": "On Cloudflare blocks, retry with enhanced HTTP and Camoufox if installed. Default off (curl_cffi only).",
            "default": false
          },
          "useGraphql": {
            "title": "GraphQL search channel (TH)",
            "type": "boolean",
            "description": "TH only: fetch search pages through the public GraphQL JSON endpoint instead of the HTML search page. Other markets always use HTML. Default off.",
            "default": false
          },
          "sliceByArea": {
            "title": "Slice by area (TH)",
            "type": "boolean",
            "description": "TH only: split the location into its region and city areas and search each one separately, so broad areas are not cut off at the backend page cap. Ignored for other markets. Default off.",
            "default": false
          },
          "nationalSlice": {
            "title": "Whole-country slicing (TH)",
            "type": "boolean",
            "description": "TH only: with Slice by area on and Location empty, search every built-in TH region and city. Default off.",
            "default": false
          },
          "locale": {
            "title": "Locale path prefix",
            "enum": [
              "",
              "en",
              "th"
            ],
            "type": "string",
            "description": "Optional URL locale (mainly TH: en/th). Leave empty for market default.",
            "default": ""
          },
          "requestDelayMillis": {
            "title": "Delay between requests (ms)",
            "minimum": 0,
            "maximum": 15000,
            "type": "integer",
            "description": "Politeness delay between HTTP requests.",
            "default": 800
          },
          "maxConcurrency": {
            "title": "Request concurrency",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Max concurrent HTTP fetches for detail pages.",
            "default": 2
          },
          "workerBaseUrl": {
            "title": "Worker base URL (Advanced)",
            "type": "string",
            "description": "Optional per-run override of the control-plane endpoint. Production runs should leave this empty and use Actor env WORKER_BASE_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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}