{
  "openapi": "3.0.1",
  "info": {
    "title": "Advanced UAE Dubai Property Leads Scraper",
    "description": "Extract property data from Dubai's top platforms PropertyFinder, Bayut, and Dubizzle. Get listings with pricing, locations, agent contacts, and specs in minutes. Advanced filters by price, area, and amenities. Perfect for investors, developers, and researchers tracking Dubai's property market.",
    "version": "0.1",
    "x-build-id": "NirSRgZp0ccRfqqpk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parseforge~uae-dubai-property-leads-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parseforge-uae-dubai-property-leads-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/parseforge~uae-dubai-property-leads-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parseforge-uae-dubai-property-leads-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/parseforge~uae-dubai-property-leads-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parseforge-uae-dubai-property-leads-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": [
          "category",
          "maxPages",
          "sources"
        ],
        "properties": {
          "propertiesUrls": {
            "title": "🔗 Individual Property URLs (Optional)",
            "type": "array",
            "description": "Extract data from specific individual property detail pages only. Supports PropertyFinder, Bayut, and Dubizzle URLs. When provided, the scraper will ONLY extract these specific properties and ignore all other settings (category/maxPages/sources). Leave empty to scrape listing pages normally. IMPORTANT: Only provide URLs to individual property detail pages, NOT listing/search pages.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "category": {
            "title": "Category",
            "enum": [
              "rent",
              "buy"
            ],
            "type": "string",
            "description": "Property category: rent or buy (only used when scraping listing pages)",
            "default": "rent"
          },
          "maxPages": {
            "title": "Max Pages per Source",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum number of pages to scrape from each source",
            "default": 2
          },
          "sources": {
            "title": "Sources",
            "uniqueItems": true,
            "type": "array",
            "description": "Property sources to scrape",
            "items": {
              "type": "string",
              "enum": [
                "propertyfinder",
                "bayut",
                "dubizzle"
              ]
            },
            "default": [
              "propertyfinder",
              "bayut",
              "dubizzle"
            ]
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Free users: Limited to 100. Paid users: Optional, max 1,000,000"
          },
          "minPrice": {
            "title": "Min Price (AED)",
            "type": "integer",
            "description": "Minimum property price in AED"
          },
          "maxPrice": {
            "title": "Max Price (AED)",
            "type": "integer",
            "description": "Maximum property price in AED"
          },
          "minBedrooms": {
            "title": "Min Bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of bedrooms (0 for studio)"
          },
          "maxBedrooms": {
            "title": "Max Bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of bedrooms"
          },
          "minBathrooms": {
            "title": "Min Bathrooms",
            "minimum": 1,
            "type": "integer",
            "description": "Minimum number of bathrooms"
          },
          "maxBathrooms": {
            "title": "Max Bathrooms",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of bathrooms"
          },
          "minArea": {
            "title": "Min Area (sqft)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum property area in square feet"
          },
          "maxArea": {
            "title": "Max Area (sqft)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum property area in square feet"
          },
          "propertyTypes": {
            "title": "Property Types",
            "type": "array",
            "description": "Filter by property types. Leave empty for all types.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Filter by specific locations/areas in Dubai. Leave empty for all locations.",
            "items": {
              "type": "string"
            }
          },
          "furnishingStatus": {
            "title": "Furnishing Status",
            "enum": [
              "all",
              "furnished",
              "unfurnished",
              "partly-furnished"
            ],
            "type": "string",
            "description": "Filter by furnishing status",
            "default": "all"
          },
          "completionStatus": {
            "title": "Completion Status",
            "enum": [
              "all",
              "ready",
              "off-plan"
            ],
            "type": "string",
            "description": "Filter by completion status",
            "default": "all"
          },
          "amenities": {
            "title": "Required Amenities",
            "type": "array",
            "description": "Filter properties that have ALL of these amenities",
            "items": {
              "type": "string"
            }
          },
          "extractDetailedInfo": {
            "title": "Extract Detailed Info",
            "type": "boolean",
            "description": "Extract additional property details (unit numbers, floor, parking spaces, etc.). May slow down scraping.",
            "default": false
          },
          "extractAgentContact": {
            "title": "Extract Agent Contact",
            "type": "boolean",
            "description": "Include agent contact information (name, phone, email)",
            "default": true
          },
          "proxyConfiguration": {
            "title": "🌍 Proxy",
            "type": "object",
            "description": "Proxy settings for reliable scraping. Apify Proxy with RESIDENTIAL group is recommended for Bayut and Dubizzle.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "AE"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}