{
  "openapi": "3.0.1",
  "info": {
    "title": "Property Finder (propertyfinder.ae) Scraper",
    "description": "Scrape Property Finder (propertyfinder.ae), the leading UAE property marketplace. Enriched property details by id/URL, search Buy/Rent by location, coordinates or URL, off-plan New Projects, a full agents + companies (brokerages) suite, and location autocomplete.",
    "version": "1.0",
    "x-build-id": "8vRSmxystFhWqKufw"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/one-api~propertyfinder-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-one-api-propertyfinder-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/one-api~propertyfinder-scraper/runs": {
      "post": {
        "operationId": "runs-sync-one-api-propertyfinder-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/one-api~propertyfinder-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-one-api-propertyfinder-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": {
          "property_inputs": {
            "title": "Property id, URL, or project slug (one per line)",
            "type": "array",
            "description": "Auto-detects each entry and calls the right endpoint:\n• A numeric listing id (e.g. `88748417`) → `/details/byid`\n• A `https://www.propertyfinder.ae/...` listing URL → `/details/byurl`\n• An off-plan project slug `developer/project` (e.g. `emaar-properties/creek-haven`) or a `/new-projects/...` URL → `/details/project`\n\nEach property row = one fully-enriched record (price, beds, baths, size, description, amenities, agent + company, permit/RERA, similar listings). Each project row = developer, payment plan, unit mix, handover date, amenities.",
            "items": {
              "type": "string"
            }
          },
          "search_inputs": {
            "title": "Location or propertyfinder.ae search URL (one per line)",
            "type": "array",
            "description": "Auto-detects each entry and routes to the right `/search/*` endpoint:\n• A propertyfinder.ae results URL (e.g. `https://www.propertyfinder.ae/en/search?c=1&l=50&t=1`) → `/search/byurl`\n• Anything else (an area / community name, e.g. `Dubai Marina`, `Downtown Dubai`, `Abu Dhabi`) → `/search/bylocation`\n\nThe Search Filters below apply to every location search. Each hit returns one row per property listing.",
            "items": {
              "type": "string"
            }
          },
          "coordinate_inputs": {
            "title": "Coordinates: lat,lon or lat,lon,radiusKm (one per line)",
            "type": "array",
            "description": "Radius search around a point via `/search/bycoordinates`. One point per line as `latitude,longitude` or `latitude,longitude,radiusKm` (radius in kilometres, default 5). Example: `25.078,55.14,3` searches 3 km around Dubai Marina. The Search Filters below also apply. One row per listing.",
            "items": {
              "type": "string"
            }
          },
          "newproject_inputs": {
            "title": "Location for off-plan New Projects (one per line)",
            "type": "array",
            "description": "Search off-plan / developer projects in an area via `/search/newprojects` (Property Finder models these as a distinct category, separate from Buy/Rent). One area per line (e.g. `Dubai`, `Dubai Marina`, `Abu Dhabi`). Each row = one project (developer, starting price, bedrooms range, delivery date). Use a project's slug in the Property Details section to fetch its full record.",
            "items": {
              "type": "string"
            }
          },
          "agent_search_inputs": {
            "title": "Agent search: area name or `name:<text>` (one per line)",
            "type": "array",
            "description": "Search individual real-estate agents (brokers) via `/agent/search`. Per line:\n• An area / community name (e.g. `Dubai Marina`) → agents active in that location\n• `name:<text>` (e.g. `name:Brooke`) → agents whose name matches the text\n\nEach row = one agent (name, rating, review count, total properties, verified flag, photo).",
            "items": {
              "type": "string"
            }
          },
          "agent_id_inputs": {
            "title": "Agent id (one per line)",
            "type": "array",
            "description": "For each numeric agent id (e.g. `257163`) the actor fetches `/agent/details` (full profile: rating, reviews, contact phone/WhatsApp, claimed transactions) PLUS `/agent/listings` (the properties that agent currently lists, as property rows). Get ids from the Agent search above.",
            "items": {
              "type": "string"
            }
          },
          "agency_search_inputs": {
            "title": "Company search: area name or `name:<text>` (one per line)",
            "type": "array",
            "description": "Search companies / brokerages via `/agency/search`. Per line:\n• An area / community name (e.g. `Dubai`) → companies active there\n• `name:<text>` (e.g. `name:Elite`) → companies whose name matches\n\nEach row = one company (name, phone, total agents, total properties, verified flag, logo).",
            "items": {
              "type": "string"
            }
          },
          "agency_id_inputs": {
            "title": "Company id (one per line)",
            "type": "array",
            "description": "For each numeric company id (e.g. `4302`) the actor fetches `/agency/details` (full profile: license, agent count, property count, contact) PLUS `/agency/listings` (the properties that company currently lists, as property rows). Get ids from the Company search above.",
            "items": {
              "type": "string"
            }
          },
          "autocomplete_inputs": {
            "title": "Location text to resolve (one per line)",
            "type": "array",
            "description": "Resolve a free-text place (city / community / tower) to the Property Finder location records used by Search, via `/autocomplete`. Each suggestion = one row (id, name, full name, type, slug, coordinates).",
            "items": {
              "type": "string"
            }
          },
          "searchType": {
            "title": "Listing type",
            "enum": [
              "For_Sale",
              "For_Rent"
            ],
            "type": "string",
            "description": "Buy or Rent. Applies to location/coordinate searches and to agent/company listings. (Off-plan projects use the dedicated New Projects section above.)",
            "default": "For_Sale"
          },
          "propertyType": {
            "title": "Property type",
            "enum": [
              "",
              "Apartment",
              "Villa",
              "Townhouse",
              "Penthouse",
              "Compound",
              "Duplex",
              "Full Floor",
              "Half Floor",
              "Whole Building",
              "Land",
              "Bulk Sale Unit",
              "Bungalow",
              "Hotel Apartment"
            ],
            "type": "string",
            "description": "Limit results to a property type. Leave as Any for all types. Applies to every search and to agent/company listings.",
            "default": ""
          },
          "priceRange": {
            "title": "Price range (AED)",
            "type": "string",
            "description": "Format: `min:1000000,max:5000000` — or just `min:1000000` / `max:5000000`. For rent, this is the price for the selected rent frequency.",
            "default": ""
          },
          "areaRange": {
            "title": "Area range (sqft)",
            "type": "string",
            "description": "Built-up area in square feet, e.g. `min:800,max:2000` (or just one half).",
            "default": ""
          },
          "bedrooms": {
            "title": "Bedrooms",
            "type": "string",
            "description": "Comma-separated bedroom counts to include, e.g. `1,2,3`. Use `0` (or `Studio`) for studios; `7` matches 7+.",
            "default": ""
          },
          "bathrooms": {
            "title": "Bathrooms",
            "type": "string",
            "description": "Comma-separated bathroom counts to include, e.g. `2,3`.",
            "default": ""
          },
          "furnishing": {
            "title": "Furnishing",
            "enum": [
              "All",
              "Furnished",
              "Unfurnished",
              "Partly"
            ],
            "type": "string",
            "description": "Filter by furnishing. Leave as Any for no filter.",
            "default": "All"
          },
          "completionStatus": {
            "title": "Completion status",
            "enum": [
              "Any",
              "Ready",
              "Off_Plan"
            ],
            "type": "string",
            "description": "Ready (completed) vs Off-Plan (under construction). Leave as Any for both.",
            "default": "Any"
          },
          "rentFrequency": {
            "title": "Rent frequency",
            "enum": [
              "Yearly",
              "Monthly",
              "Weekly",
              "Daily"
            ],
            "type": "string",
            "description": "Only used for Rent searches; silently ignored for Buy. Sets the rent price period.",
            "default": "Yearly"
          },
          "amenities": {
            "title": "Amenities",
            "type": "string",
            "description": "Comma-separated amenity names, e.g. `Balcony, Shared Pool, Covered Parking`. Supported: Central A/C, Maids Room, Balcony, Shared Pool, Shared Spa, Shared Gym, Concierge, Covered Parking, Water View, Landmark View, Pets Allowed, Study, Private Garden, Private Pool, Private Gym, Jacuzzi, Built-in Wardrobes, Walk-in Closet, Kitchen Appliances, Maid Service, Children's Play Area, Children's Pool, BBQ Area.",
            "default": ""
          },
          "sortOrder": {
            "title": "Sort order",
            "enum": [
              "Featured",
              "Newest",
              "Price_Low_to_High",
              "Price_High_to_Low",
              "Beds_Most",
              "Delivery_Earliest",
              "Distance"
            ],
            "type": "string",
            "description": "Result ordering for location/coordinate searches and listings.",
            "default": "Featured"
          },
          "commercial": {
            "title": "Commercial listings",
            "type": "boolean",
            "description": "Search commercial property (offices, shops, warehouses) instead of residential.",
            "default": false
          },
          "isVerified": {
            "title": "Verified listings only",
            "type": "boolean",
            "description": "Only return Property Finder TruCheck™-verified listings.",
            "default": false
          },
          "pages": {
            "title": "Pages per search",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many result pages to fetch for each location / coordinate / project / listings search (stops early when there are no more results).",
            "default": 1
          },
          "resultCount": {
            "title": "Results per page",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Listings per page for every search (1–50).",
            "default": 25
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}