{
  "openapi": "3.0.1",
  "info": {
    "title": "Aqarmap Scraper - Egypt Property Listings for Sale and Rent",
    "description": "Scrape Aqarmap, Egypt's second-busiest property portal: EGP price, price per m², size, rooms, finish, compound and district. Cairo, Alexandria, sale and rent.",
    "version": "1.0",
    "x-build-id": "6KRY3VhvlIBAtohg0"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~aqarmap-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-aqarmap-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/sian.agency~aqarmap-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-aqarmap-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/sian.agency~aqarmap-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-aqarmap-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": {
          "operation": {
            "title": "🎯 Mode",
            "enum": [
              "search",
              "detail"
            ],
            "type": "string",
            "description": "Property Search reads Aqarmap results pages. Property Detail opens the advert addresses you paste in the Advert URLs field.",
            "default": "search"
          },
          "dealType": {
            "title": "🏷️ Sale or rent",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Which side of the market to read. For rentals every price is the monthly rent in EGP.",
            "default": "sale"
          },
          "propertyType": {
            "title": "🏠 Property type",
            "enum": [
              "apartment",
              "villa",
              "chalet",
              "furnished-apartment",
              "administrative",
              "commercial",
              "medical",
              "building",
              "land-or-farm",
              "land-or-commercial"
            ],
            "type": "string",
            "description": "Which kind of property. Apartments for sale is by far the largest section, with about 173,000 live adverts nationwide.",
            "default": "apartment"
          },
          "location": {
            "title": "📍 Where",
            "enum": [
              "all-egypt",
              "cairo",
              "cairo/new-cairo",
              "cairo/new-cairo/madinaty",
              "cairo/el-sheikh-zayed-city",
              "cairo/6th-of-october",
              "cairo/new-administrative-capital",
              "cairo/el-shorouk",
              "cairo/al-oubour",
              "cairo/badr-city",
              "cairo/nasr-city",
              "cairo/heliopolis",
              "cairo/new-heliopolis",
              "cairo/el-maadi",
              "cairo/mokattam",
              "cairo/el-mohandesen",
              "cairo/dokki",
              "cairo/al-zamalek",
              "cairo/ljyz",
              "cairo/el-haram",
              "cairo/faisal",
              "cairo/hadayek-el-ahram",
              "cairo/downtown",
              "alexandria",
              "alexandria/smouha",
              "alexandria/sydy-bshr",
              "alexandria/al-agamy",
              "north-coast",
              "north-coast/new-alamein",
              "north-coast/resorts",
              "ain-elsokhna",
              "red-sea",
              "red-sea/hurghada-city",
              "red-sea/el-gouna",
              "dakahlia/mansoura",
              "gharbia/tanta",
              "sharqia/10th-of-ramadan",
              "qalyubia",
              "ismailia",
              "port-said",
              "suez",
              "damietta",
              "marsa-matruh",
              "asyut",
              "el-minia"
            ],
            "type": "string",
            "description": "A district, a city or the whole country. New Cairo holds about 14,000 apartments for sale. For a single compound or a smaller neighbourhood, open it on aqarmap.com.eg and paste the address into Search page URLs.",
            "default": "cairo/new-cairo"
          },
          "maxPrice": {
            "title": "💰 Price up to (EGP)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest asking price in Egyptian pounds; for rentals, the monthly rent. Aqarmap applies it itself, so the row count you pay for already reflects it. Leave empty for no ceiling."
          },
          "maxResults": {
            "title": "🔢 Properties to collect",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "How many properties to return. Pages hold 22, so a run stops on the page that reaches this number.",
            "default": 100
          },
          "includeDetails": {
            "title": "📄 Open each advert in full",
            "type": "boolean",
            "description": "Also open every advert page for the seller's own description, seller type, view, year built or delivery, amenities, map point, installment plan and every photo. Billed as one Property Detail on top of the search row.",
            "default": false
          },
          "searchUrls": {
            "title": "🔗 Search page URLs",
            "type": "array",
            "description": "Paste Aqarmap results pages instead of using the fields above, for example https://aqarmap.com.eg/en/for-sale/apartment/cairo/new-cairo/compounds/ . English and Arabic addresses both work. A max price in the address is kept. An address with any other filter is refused before anything is charged, because Aqarmap asks automated tools not to use those filters. Ignored in Property Detail mode.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listingUrls": {
            "title": "🔗 Advert URLs",
            "type": "array",
            "description": "Aqarmap advert addresses for Property Detail, one per line, for example https://aqarmap.com.eg/en/listing/7145750-for-sale-cairo-new-cairo-bait-el-watan-fifth-neighborhood/ or just https://aqarmap.com.eg/en/listing/7145750/ .",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}