{
  "openapi": "3.0.1",
  "info": {
    "title": "Property Finder UAE Scraper: Prices, New Listings & Stats",
    "description": "Export Property Finder UAE (propertyfinder.ae) sale and rent listings by emirate, property type, bedrooms and community: price, area, price per sq ft, location, listing date. Track new listings, price drops and removed ads; get median prices by community. No agent names or phone numbers.",
    "version": "0.1",
    "x-build-id": "Z9vmVqmm0IT6ZdfMw"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/datasmithlab~propertyfinder-uae-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-datasmithlab-propertyfinder-uae-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/datasmithlab~propertyfinder-uae-scraper/runs": {
      "post": {
        "operationId": "runs-sync-datasmithlab-propertyfinder-uae-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/datasmithlab~propertyfinder-uae-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-datasmithlab-propertyfinder-uae-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": {
          "purpose": {
            "title": "Buy or rent",
            "enum": [
              "buy",
              "rent"
            ],
            "type": "string",
            "description": "Listings for sale or for rent. One purpose per run.",
            "default": "buy"
          },
          "emirates": {
            "title": "Emirates",
            "type": "array",
            "description": "Each emirate is searched separately. Leave empty for Dubai (unless you paste URLs below).",
            "items": {
              "type": "string",
              "enum": [
                "dubai",
                "abu-dhabi",
                "sharjah",
                "ajman",
                "ras-al-khaimah",
                "umm-al-quwain",
                "fujairah"
              ],
              "enumTitles": [
                "Dubai",
                "Abu Dhabi",
                "Sharjah",
                "Ajman",
                "Ras Al Khaimah",
                "Umm Al Quwain",
                "Fujairah"
              ]
            }
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Leave empty for all types.",
            "items": {
              "type": "string",
              "enum": [
                "apartment",
                "villa",
                "townhouse",
                "penthouse",
                "duplex",
                "land",
                "compound",
                "wholeBuilding",
                "bungalow"
              ],
              "enumTitles": [
                "Apartment",
                "Villa",
                "Townhouse",
                "Penthouse",
                "Duplex",
                "Land",
                "Compound",
                "Whole building",
                "Bungalow"
              ]
            }
          },
          "bedrooms": {
            "title": "Bedrooms",
            "type": "array",
            "description": "Leave empty for all. Each choice is its own search (so a 2-bedroom pull reads only 2-bedroom pages).",
            "items": {
              "type": "string",
              "enum": [
                "studio",
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7"
              ],
              "enumTitles": [
                "Studio",
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7"
              ]
            }
          },
          "communities": {
            "title": "Communities",
            "type": "array",
            "description": "Optional. Names or slugs as on Property Finder, one per line: 'Dubai Marina', 'jumeirah-village-circle', 'palm-jumeirah'. Each is searched separately. Unknown names are reported as not found and cost nothing.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Property Finder listing URLs",
            "type": "array",
            "description": "Or paste English listing pages such as https://www.propertyfinder.ae/en/buy/dubai/2-bedroom-apartments-for-sale-dubai-marina.html. Only the page itself is used; query settings in the URL (price, sort, ...) are ignored because the site's robots.txt does not allow them - use the filters below.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItems": {
            "title": "Max listings",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many listing rows (you pay per row). Market summary rows are not counted. Property Finder lists newest first.",
            "default": 200
          },
          "priceFrom": {
            "title": "Price from (AED)",
            "minimum": 0,
            "type": "integer",
            "description": "Applied to the listing price (yearly rent for rentals). Listings without a price are skipped when a price filter is set."
          },
          "priceTo": {
            "title": "Price to (AED)",
            "minimum": 0,
            "type": "integer",
            "description": "Leave empty for no limit."
          },
          "areaFrom": {
            "title": "Area from (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "Built-up or plot area in square feet."
          },
          "areaTo": {
            "title": "Area to (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "Leave empty for no limit."
          },
          "furnished": {
            "title": "Furnishing",
            "type": "array",
            "description": "Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "furnished",
                "unfurnished",
                "partly"
              ],
              "enumTitles": [
                "Furnished",
                "Unfurnished",
                "Partly furnished"
              ]
            }
          },
          "completion": {
            "title": "Completion",
            "type": "array",
            "description": "Ready (completed) or off-plan. Leave empty for both.",
            "items": {
              "type": "string",
              "enum": [
                "ready",
                "offPlan"
              ],
              "enumTitles": [
                "Ready",
                "Off-plan"
              ]
            }
          },
          "listedWithinDays": {
            "title": "Listed within the last (days)",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Only listings published in the last N days. Because Property Finder lists newest first, reading stops as soon as older listings start - a cheap way to collect only new listings. Leave empty for no limit."
          },
          "onlyNewOrChanged": {
            "title": "Only new or changed listings",
            "type": "boolean",
            "description": "For scheduled runs: each run returns only listings that are NEW or had a PRICE_DROP / PRICE_UP since the last run with the same settings, and (when every search was read completely) REMOVED listings. The first run returns everything as NEW. Unchanged listings are not returned and not charged.",
            "default": false
          },
          "marketSummary": {
            "title": "Market summary by area and bedrooms",
            "type": "boolean",
            "description": "Add one row per purpose, emirate, community, property type and bedroom count: listings, median and quartile price, median area, median price per sq ft, median days on market, verified and furnished share, listings with a price drop. Uses every matching listing, also unchanged ones in monitoring mode.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Requests go out without a proxy first. Only if Property Finder blocks them is this proxy used (at most 3 new IPs, then the run stops and reports it). Bot checks are never solved.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}