{
  "openapi": "3.0.1",
  "info": {
    "title": "UAE Real Estate Agent Scraper",
    "description": "Bayut agent scraper: extract UAE real estate agent profiles and leads: mobile numbers, WhatsApp, agency, RERA licence, TruBroker status and property listings. Search agents by location, name or specialisation in Dubai, Abu Dhabi and across the UAE. Broker lead generation, no proxies. Propertyfinder.",
    "version": "0.0",
    "x-build-id": "tQHgfF6Irpin07Gug"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/happyendpoint~uae-real-estate-agent-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-happyendpoint-uae-real-estate-agent-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/happyendpoint~uae-real-estate-agent-scraper/runs": {
      "post": {
        "operationId": "runs-sync-happyendpoint-uae-real-estate-agent-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/happyendpoint~uae-real-estate-agent-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-happyendpoint-uae-real-estate-agent-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": "Mode",
            "enum": [
              "location_search",
              "agent_search",
              "agent_search_by_name",
              "agent_details",
              "agent_properties"
            ],
            "type": "string",
            "description": "Select the operation to perform.\n\n**Typical workflow:**\n1. Run **Location Search** to get a location ID\n2. Run **Agent Search** (or **Agent Search by Name**) to find agents\n3. Copy the `agent_external_id` from results\n4. Run **Agent Details** or **Agent Properties** using that ID",
            "default": "location_search"
          },
          "query": {
            "title": "Location Name",
            "type": "string",
            "description": "**[Location Search only]** Enter any area, district, or city in Dubai / UAE.\n\nExamples: `Dubai Marina`, `Business Bay`, `Jumeirah`, `Abu Dhabi`.",
            "default": "Dubai"
          },
          "location_ids": {
            "title": "Location ID(s)",
            "type": "string",
            "description": "**[Agent Search only]** The `externalID` from a Location Search result. For multiple locations, separate with commas.\n\nExamples: `5003` (Dubai Marina) · `5002` (All of Dubai) · `5003,5060` (multiple areas)."
          },
          "purpose": {
            "title": "Purpose",
            "enum": [
              "for-sale",
              "for-rent"
            ],
            "type": "string",
            "description": "**[Agent Search only]** Filter agents by the transaction type they handle.",
            "default": "for-sale"
          },
          "category": {
            "title": "Specialisation",
            "enum": [
              "residential",
              "commercial"
            ],
            "type": "string",
            "description": "**[Agent Search only]** Filter agents by the property category they specialise in.",
            "default": "residential"
          },
          "completion_status": {
            "title": "Listing Type",
            "enum": [
              "",
              "completed",
              "under-construction"
            ],
            "type": "string",
            "description": "**[Agent Search only]** Filter agents by the type of listings they carry.\n\n⚠️ Most relevant when Purpose is **For Sale**. Off-plan agents specialise in new developments."
          },
          "agent_name": {
            "title": "Agent Name",
            "type": "string",
            "description": "**[Agent Search by Name only]** Enter the agent's full name or partial name.\n\nExamples: `John`, `Sarah`, `Ahmed`, `Rehab`."
          },
          "agent_id": {
            "title": "Agent ID",
            "type": "string",
            "description": "**[Agent Details / Agent Properties]** The `agent_external_id` value from an Agent Search or Agent Search by Name result.\n\nExample: `2402738`."
          },
          "maxItems": {
            "title": "Max Results",
            "minimum": 1,
            "type": "integer",
            "description": "**[Agent Search / Agent Search by Name / Agent Properties only]** Maximum number of results to save. Pages are fetched automatically until this number or the last page is reached.\n\nResults per page:\n- Agent Search: 40 agents per page\n- Agent Search by Name: 20 agents per page\n- Agent Properties: 25 listings per page",
            "default": 100
          },
          "page": {
            "title": "Start Page",
            "minimum": 1,
            "type": "integer",
            "description": "**[Agent Search / Agent Search by Name / Agent Properties only]** Page to start from. Leave at 1 to start from the first result.",
            "default": 1
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}