{
  "openapi": "3.0.1",
  "info": {
    "title": "Property Finder Scraper: UAE Listings, Transactions & Prices",
    "description": "Returns Property Finder listings (UAE, Qatar, Bahrain, Egypt, Saudi) by URL or city/community: price, size, bedrooms, location, broker; optional market data. Example: city=\"Dubai\", locations=[\"Dubai Marina\"]. Pay per event: $0.0008 per listing, $0.0015 market data.",
    "version": "0.1",
    "x-build-id": "ndD779yqEfqnBusVV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kyungminlee~propertyfinder-listings-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kyungminlee-propertyfinder-listings-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/kyungminlee~propertyfinder-listings-scraper/runs": {
      "post": {
        "operationId": "runs-sync-kyungminlee-propertyfinder-listings-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/kyungminlee~propertyfinder-listings-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-kyungminlee-propertyfinder-listings-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": {
          "searchUrls": {
            "title": "Search or listing URLs",
            "type": "array",
            "description": "Optional list of Property Finder result page URLs, e.g. [\"https://www.propertyfinder.ae/en/buy/dubai/apartments-for-sale-dubai-marina.html\"]; works on .ae, .qa, .bh, .eg, .sa English pages, also /en/plp/ pages. /search?... URLs are rejected (robots.txt). Minimal run: give searchUrls and/or city/locations. Using both runs both.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "ae",
              "qa",
              "bh",
              "eg",
              "sa"
            ],
            "type": "string",
            "description": "Enum ae, qa, bh, eg, sa (default ae): Property Finder site used by the city/locations search. URLs in searchUrls always use their own site.",
            "default": "ae"
          },
          "offeringType": {
            "title": "Buy or rent",
            "enum": [
              "buy",
              "rent",
              "commercial-buy",
              "commercial-rent"
            ],
            "type": "string",
            "description": "Enum buy, rent, commercial-buy, commercial-rent (default buy).",
            "default": "buy"
          },
          "city": {
            "title": "City / emirate",
            "type": "string",
            "description": "City or region as Property Finder names it, e.g. \"Dubai\", \"Abu Dhabi\", \"Doha\", \"Cairo\", \"Ar Riyadh\". Empty = whole country. Setting city or locations triggers the location search even if searchUrls is also given."
          },
          "locations": {
            "title": "Locations (communities)",
            "type": "array",
            "description": "Optional list of communities inside city, e.g. [\"Dubai Marina\", \"Business Bay\"]; sub-community as \"Dubai Marina > Marina Gate\". Each location is a separate search with its own maxListingsPerSearch. Unknown names are reported in the run log.",
            "items": {
              "type": "string"
            }
          },
          "propertyType": {
            "title": "Property type",
            "enum": [
              "properties",
              "apartments",
              "villas",
              "townhouses",
              "penthouses",
              "duplexes",
              "compounds",
              "hotels-hotel-apartments",
              "full-floors",
              "half-floors",
              "whole-buildings",
              "bulk-sale-units",
              "bungalows",
              "land",
              "twin-houses",
              "rest-houses",
              "offices",
              "retail-spaces",
              "shops",
              "warehouses",
              "labor-camps",
              "business-centres"
            ],
            "type": "string",
            "description": "Enum for the location search (default properties = all types): apartments, villas, townhouses, penthouses, offices, land, etc. Commercial types need offeringType commercial-buy or commercial-rent.",
            "default": "properties"
          },
          "bedrooms": {
            "title": "Bedrooms",
            "uniqueItems": true,
            "type": "array",
            "description": "Optional list of bedroom counts, e.g. [1, 2]. Location search reads one page per value; for searchUrls results are filtered. Empty = all. Each value is a separate search with its own listing cap.",
            "items": {
              "type": "string",
              "enum": [
                "studio",
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7+"
              ],
              "enumTitles": [
                "Studio",
                "1 bedroom",
                "2 bedrooms",
                "3 bedrooms",
                "4 bedrooms",
                "5 bedrooms",
                "6 bedrooms",
                "7+ bedrooms"
              ]
            }
          },
          "furnishing": {
            "title": "Furnishing",
            "enum": [
              "any",
              "furnished",
              "unfurnished",
              "partly-furnished"
            ],
            "type": "string",
            "description": "Enum any, furnished, unfurnished, partly-furnished (default any).",
            "default": "any"
          },
          "completionStatus": {
            "title": "Completion status",
            "enum": [
              "any",
              "ready",
              "off-plan"
            ],
            "type": "string",
            "description": "Enum any, ready, off-plan (default any). Applies only to offeringType buy; rentals ignore it.",
            "default": "any"
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Optional integer, lowest listed price in the listing's own currency (AED, QAR, BHD, EGP or SAR), e.g. 1000000. Rents compared as listed (yearly in UAE). Listings with hidden price are skipped when a price filter is set."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Optional integer, highest listed price in the listing's own currency (AED, QAR, BHD, EGP or SAR), e.g. 3000000."
          },
          "maxListingsPerSearch": {
            "title": "Maximum listings per search",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Integer, default 200 (prefill 50): max listings saved per search URL and per location (and per bedroom value). Each listing saved is one charged 'listing' event ($0.0008); the run's max charge can stop earlier.",
            "default": 200
          },
          "includeMarketData": {
            "title": "Include market data (recorded transactions & price trends)",
            "type": "boolean",
            "description": "Boolean (default false). true = open every listing page and add market data (similar-unit sale/rent transactions, community/building price trends, average price and deviation, developer, service charge). One extra request per listing (~12 min per 1,000); charged as extra 'market-data' event ($0.0015) only when data exists.",
            "default": false
          },
          "includeDescription": {
            "title": "Include description",
            "type": "boolean",
            "description": "Boolean (default true). Include listing description text; phone numbers, e-mails and WhatsApp links are masked. Set false for smaller rows.",
            "default": true
          },
          "maxPagesPerSearch": {
            "title": "Maximum result pages per search when filtering",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Integer, default 100: cap on result pages (25 listings each) read per search while price, completion or URL bedroom/furnishing filters are active. Unfiltered searches are not limited by it.",
            "default": 100
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify proxy settings object, default {\"useApifyProxy\": false} (run's own IP works). Set {\"useApifyProxy\": true} to rotate IPs when requests are refused.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}