{
  "openapi": "3.0.1",
  "info": {
    "title": "Propertyfinder UAE Scraper",
    "description": "Extract property listings from propertyfinder.ae at scale. Get comprehensive data including prices, property details, images, agent contacts, broker info, RERA numbers, coordinates, amenities, and more. Perfect for UAE real estate analytics, market research, and investment analysis.",
    "version": "1.0",
    "x-build-id": "dn8Bdg0jcDdZF5BO5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~propertyfinder-ae-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-propertyfinder-ae-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/abotapi~propertyfinder-ae-scraper/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-propertyfinder-ae-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/abotapi~propertyfinder-ae-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-propertyfinder-ae-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": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Search Mode",
            "enum": [
              "search",
              "url"
            ],
            "type": "string",
            "description": "How to find properties to scrape",
            "default": "search"
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Location slugs (Search mode only). Example: 'dubai', 'abu-dhabi', 'dubai/downtown-dubai'. Leave empty for all UAE.",
            "items": {
              "type": "string"
            }
          },
          "urls": {
            "title": "Search URLs",
            "type": "array",
            "description": "PropertyFinder search page URLs to scrape (URL mode only). Supports pagination — the scraper will follow pages from where the URL starts.",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Category",
            "enum": [
              "buy",
              "rent"
            ],
            "type": "string",
            "description": "Buy or Rent (Search mode only)",
            "default": "buy"
          },
          "propertyTypes": {
            "title": "Property Types",
            "type": "array",
            "description": "Property types (Search mode only): properties, apartments, studio-apartments, villas, townhouses, penthouses, hotel-apartments, compounds, land, duplexes, whole-buildings, bulk-sale-units, bungalows, full-floors, half-floors.",
            "items": {
              "type": "string"
            }
          },
          "sort": {
            "title": "Sort By",
            "enum": [
              "nd",
              "mr",
              "pa",
              "pd",
              "ba",
              "bd"
            ],
            "type": "string",
            "description": "Sort order for results (Search mode only)",
            "default": "nd"
          },
          "maxListings": {
            "title": "Max Listings",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of listings to scrape. Set 0 for unlimited.",
            "default": 100
          },
          "maxPages": {
            "title": "Max Pages Per Search",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum pages to paginate per search URL (~20 listings/page).",
            "default": 20
          },
          "minPrice": {
            "title": "Min Price (AED)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price filter. Leave empty for no minimum."
          },
          "maxPrice": {
            "title": "Max Price (AED)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price filter. Leave empty for no maximum."
          },
          "minBedrooms": {
            "title": "Min Bedrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Minimum bedrooms filter."
          },
          "maxBedrooms": {
            "title": "Max Bedrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum bedrooms filter."
          },
          "furnishing": {
            "title": "Furnishing",
            "enum": [
              "any",
              "furnished",
              "unfurnished",
              "partly-furnished"
            ],
            "type": "string",
            "description": "Furnishing filter",
            "default": "any"
          },
          "completionStatus": {
            "title": "Completion Status",
            "enum": [
              "any",
              "completed",
              "off_plan"
            ],
            "type": "string",
            "description": "Property completion status. 'off_plan' includes both off-plan and off-plan primary.",
            "default": "any"
          },
          "proxy": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy settings. Datacenter proxies usually work. Use residential if you get blocked."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}