{
  "openapi": "3.0.1",
  "info": {
    "title": "Aqar Scraper — Saudi Arabia Property Data & API",
    "description": "Scrape Aqar Saudi Arabia sale and rental listings with SAR prices, property details, GPS, photos, descriptions, seller and broker contacts, REGA advertising licenses, features and listing activity across Riyadh, Jeddah and the Kingdom.",
    "version": "0.1",
    "x-build-id": "i4GsU3s8qa4eiWhG7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/haketa~aqar-saudi-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-haketa-aqar-saudi-property-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/haketa~aqar-saudi-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-haketa-aqar-saudi-property-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/haketa~aqar-saudi-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-haketa-aqar-saudi-property-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": {
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Choose one or more Saudi cities. More cities produce more listings and broader market coverage.",
            "items": {
              "type": "string",
              "enum": [
                "riyadh",
                "jeddah",
                "makkah",
                "madinah",
                "dammam",
                "al-khobar",
                "taif",
                "abha",
                "tabuk",
                "buraydah"
              ],
              "enumTitles": [
                "Riyadh",
                "Jeddah",
                "Makkah",
                "Madinah",
                "Dammam",
                "Al Khobar",
                "Taif",
                "Abha",
                "Tabuk",
                "Buraydah"
              ]
            },
            "default": [
              "riyadh"
            ]
          },
          "customCities": {
            "title": "Additional city names",
            "type": "array",
            "description": "Optional. Enter any Saudi city in English or Arabic, one per line. The Actor resolves it against Aqar's current city catalog.",
            "items": {
              "type": "string"
            }
          },
          "cityIds": {
            "title": "Aqar city IDs",
            "type": "array",
            "description": "Optional. Add numeric Aqar city IDs, one per line. Examples: 21 for Riyadh and 66 for Jeddah.",
            "items": {
              "type": "string"
            }
          },
          "listingType": {
            "title": "Listing type",
            "enum": [
              "all",
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Collect all properties, sale listings only, or rentals only.",
            "default": "all"
          },
          "propertyType": {
            "title": "Property type",
            "enum": [
              "all",
              "apartment",
              "villa",
              "land",
              "house",
              "floor",
              "building",
              "office",
              "store",
              "warehouse",
              "farm",
              "room",
              "chalet",
              "rest_house",
              "camp"
            ],
            "type": "string",
            "description": "Select a specific property category or keep All properties for the largest dataset.",
            "default": "all"
          },
          "startUrls": {
            "title": "Aqar search or listing URLs",
            "type": "array",
            "description": "Optional. Paste Aqar search pages or individual property URLs. These are processed in addition to the city search above.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listingIds": {
            "title": "Aqar listing IDs",
            "type": "array",
            "description": "Optional. Paste Aqar listing IDs, one per line, to retrieve those exact properties with full details.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Total number of unique properties to save. Set to 0 for no result limit.",
            "default": 200
          },
          "maxPagesPerSearch": {
            "title": "Maximum pages per city",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Each search page normally contains about 20 listings. Increase this for deeper market coverage.",
            "default": 10
          },
          "includeDetails": {
            "title": "Include property details and contacts",
            "type": "boolean",
            "description": "Visit each listing for full description, all photos, seller or responsible employee phone, REGA license, detailed features and activity metrics.",
            "default": true
          },
          "includeRawData": {
            "title": "Include original source fields",
            "type": "boolean",
            "description": "Add the complete source listing object for advanced analysis. Leave off for a smaller, cleaner dataset.",
            "default": false
          },
          "minPrice": {
            "title": "Minimum price (SAR)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep listings at or above this price. Use 0 for no minimum.",
            "default": 0
          },
          "maxPrice": {
            "title": "Maximum price (SAR)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep listings at or below this price. Use 0 for no maximum.",
            "default": 0
          },
          "minArea": {
            "title": "Minimum area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep properties with at least this area. Use 0 for no minimum.",
            "default": 0
          },
          "maxArea": {
            "title": "Maximum area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep properties with at most this area. Use 0 for no maximum.",
            "default": 0
          },
          "regaLicensedOnly": {
            "title": "REGA-licensed listings only",
            "type": "boolean",
            "description": "Keep only listings explicitly marked as licensed by Saudi Arabia's Real Estate General Authority.",
            "default": false
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Keep properties with at least this many bedrooms. Use 0 for no minimum.",
            "default": 0
          },
          "minBathrooms": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Keep properties with at least this many bathrooms. Use 0 for no minimum.",
            "default": 0
          },
          "minLivingRooms": {
            "title": "Minimum living rooms",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Keep properties with at least this many living rooms. Use 0 for no minimum.",
            "default": 0
          },
          "furnished": {
            "title": "Furnishing",
            "enum": [
              "any",
              "furnished",
              "unfurnished"
            ],
            "type": "string",
            "description": "Keep all properties, furnished properties only, or unfurnished properties only.",
            "default": "any"
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "create_time",
              "last_update",
              "price",
              "area",
              "meter_price",
              "views"
            ],
            "type": "string",
            "description": "Choose how the final dataset is ordered after all filters and detail enrichment are applied.",
            "default": "create_time"
          },
          "sortDirection": {
            "title": "Sort direction",
            "enum": [
              "desc",
              "asc"
            ],
            "type": "string",
            "description": "Newest/highest first or oldest/lowest first.",
            "default": "desc"
          },
          "maxConcurrency": {
            "title": "Parallel detail requests",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Controls speed when detail enrichment is enabled. The default balances speed and reliability.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional Apify Proxy. Direct requests work by default; enable this only if your runs experience access errors.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}