{
  "openapi": "3.0.1",
  "info": {
    "title": "Propertyfinder Listings Scraper",
    "description": "[💰 $0.9 / 1K] Extract Propertyfinder listings (UAE, Qatar, Bahrain, Saudi, Egypt). Get prices, beds, size, amenities, images, agent and brokerage contacts, RERA permits, locations. Filter by country, purpose (rent/buy/off-plan), type, price, beds — or paste search URLs.",
    "version": "1.0",
    "x-build-id": "gEwkA0yahK85SWd2i"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~propertyfinder-listings-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-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/solidcode~propertyfinder-listings-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-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/solidcode~propertyfinder-listings-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-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 URLs",
            "type": "array",
            "description": "Paste Propertyfinder search URLs directly (for example, https://www.propertyfinder.ae/en/rent/properties-for-rent.html?l=50 or https://www.propertyfinder.ae/en/buy/properties-for-sale.html?l=86&t=35). All filters baked into each URL are honored. When provided, the guided filters below are ignored for these URLs.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "ae",
              "qa",
              "bh",
              "sa",
              "eg"
            ],
            "type": "string",
            "description": "Which Propertyfinder regional site to search. Egypt is Arabic-first — listings are still available in English but coverage is broader in Arabic.",
            "default": "ae"
          },
          "purpose": {
            "title": "Purpose",
            "enum": [
              "rent",
              "buy",
              "newProjects"
            ],
            "type": "string",
            "description": "What kind of listings to search for: existing properties to rent, existing properties to buy, or off-plan / new developments.",
            "default": "rent"
          },
          "locationQuery": {
            "title": "Location",
            "type": "string",
            "description": "City, neighbourhood, or community name (for example, 'Dubai Marina', 'Downtown Dubai', 'The Pearl'). Resolved to the matching community via Propertyfinder's autocomplete — ambiguous queries pick the best of the top 20 matches, so use the most specific name you know. Leave empty to search the whole country."
          },
          "propertyType": {
            "title": "Property Type",
            "enum": [
              "any",
              "apartment",
              "villa",
              "townhouse",
              "penthouse",
              "compound",
              "duplex",
              "fullFloor",
              "halfFloor",
              "wholeBuilding",
              "bungalow",
              "hotelApartment",
              "land",
              "bulkSaleUnit",
              "bulkRentUnit"
            ],
            "type": "string",
            "description": "Limit results to a single property type. To collect multiple types, run the actor more than once or paste multiple Search URLs.",
            "default": "any"
          },
          "bedroomsMin": {
            "title": "Minimum Bedrooms",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Only include properties with at least this many bedrooms (0 = studio). Leave empty for any."
          },
          "bedroomsMax": {
            "title": "Maximum Bedrooms",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Only include properties with at most this many bedrooms (8 means 7+). Leave empty for any."
          },
          "priceMin": {
            "title": "Minimum Price",
            "minimum": 0,
            "type": "integer",
            "description": "Only include properties at or above this price, in local currency (AED for UAE, QAR for Qatar, BHD for Bahrain, SAR for Saudi Arabia, EGP for Egypt). Leave empty for no minimum."
          },
          "priceMax": {
            "title": "Maximum Price",
            "minimum": 0,
            "type": "integer",
            "description": "Only include properties at or below this price, in local currency. Leave empty for no maximum."
          },
          "rentFrequency": {
            "title": "Rent Frequency",
            "enum": [
              "any",
              "yearly",
              "monthly",
              "weekly",
              "daily"
            ],
            "type": "string",
            "description": "How rent is quoted. Only applied when Purpose is 'For Rent'; ignored for Buy and Off-plan. Tip: defaults vary by country (UAE prefers Yearly, Qatar prefers Monthly) — pick 'Any' to avoid filtering out the bulk of listings.",
            "default": "any"
          },
          "furnishing": {
            "title": "Furnishing",
            "enum": [
              "any",
              "furnished",
              "unfurnished",
              "partlyFurnished"
            ],
            "type": "string",
            "description": "Filter by furnishing status.",
            "default": "any"
          },
          "completionStatus": {
            "title": "Completion Status",
            "enum": [
              "any",
              "ready",
              "offPlan"
            ],
            "type": "string",
            "description": "Whether the property is ready-built or still under construction (off-plan). Only applies to Buy and Off-plan; ignored for Rent.",
            "default": "any"
          },
          "sortBy": {
            "title": "Sort By",
            "enum": [
              "featured",
              "newest",
              "priceAsc",
              "priceDesc",
              "bedsAsc",
              "bedsDesc"
            ],
            "type": "string",
            "description": "How results should be ordered on Propertyfinder before collection. 'Featured' is the site's default ranked order; 'Newest' lists by listed date.",
            "default": "featured"
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "ar"
            ],
            "type": "string",
            "description": "Language of titles, descriptions, and location names in the output. For Egypt, Arabic produces broader coverage than English.",
            "default": "en"
          },
          "includeListingDetails": {
            "title": "Include Full Listing Details",
            "type": "boolean",
            "description": "Also visit each listing's detail page to fold in the full description, full amenities list, floor plans, and RERA permit numbers. Off by default — Propertyfinder currently blocks most detail-page requests from datacenter IPs, so enabling this slows the run and most detail-only fields still come back empty. Every listing already includes title, price, beds/baths, size, location, agent + brokerage contacts, and listing-card images even with this off.",
            "default": false
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of listings to collect across all searches. Set to 0 to collect everything Propertyfinder has for the search. Results are collected one page at a time (~25 per page), so the actor may overshoot this cap by a few records on the final page.",
            "default": 200
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}