{
  "openapi": "3.0.1",
  "info": {
    "title": "Bina.az Scraper - Azerbaijan Property Listings",
    "description": "Pull bina.az listings: price in AZN, area, rooms, floor, address, photos and seller. Baku, Sumqayit, Ganja and all Azerbaijan. JSON or CSV.",
    "version": "1.0",
    "x-build-id": "ZRTnl2kVvyQ6xNskT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~bina-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-bina-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~bina-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-bina-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~bina-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-bina-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": "🎯 What do you want to scrape?",
            "enum": [
              "search",
              "detail"
            ],
            "type": "string",
            "description": "Pick one per run. Property Search returns listing rows for any Azerbaijani city, deal type and property category, 25 adverts per request. Property Detail takes bina.az advert addresses and opens each one for the seller text, every photo, the view count and the street address.",
            "default": "search"
          },
          "dealType": {
            "title": "🤝 For sale or for rent",
            "enum": [
              "sale",
              "rent",
              "daily-rent"
            ],
            "type": "string",
            "description": "Sale adverts carry an asking price in AZN. Monthly rent adverts carry a monthly rent. Daily rent is the short-stay section. Land plots are sale-only, so a rent run against land returns nothing rather than an error.",
            "default": "sale"
          },
          "propertyCategory": {
            "title": "🏠 Property category",
            "enum": [
              "apartments",
              "new-build",
              "old-build",
              "houses",
              "offices",
              "garages",
              "land",
              "commercial"
            ],
            "type": "string",
            "description": "Which bina.az property section to read. Apartments is the largest. New-build and Soviet-era split the apartment section. Land is sale-only. Leave it empty to read every section."
          },
          "city": {
            "title": "📍 City",
            "enum": [
              "any",
              "baki",
              "gence",
              "sumqayit",
              "semkir",
              "sirvan",
              "salyan",
              "neftcala",
              "lenkeran",
              "celilabad",
              "imisli",
              "astara",
              "goytepe",
              "bilesuvar",
              "saatli",
              "sabirabad",
              "samaxi",
              "beyleqan",
              "berde",
              "seki",
              "mingecevir",
              "yevlax",
              "goycay",
              "agdas",
              "quba",
              "qusar",
              "xacmaz",
              "siyezen",
              "sabran",
              "tovuz",
              "agstafa",
              "xudat",
              "zaqatala",
              "qax",
              "xirdalan",
              "haciqabul",
              "oguz",
              "masalli",
              "ismayilli",
              "qebele",
              "zerdab",
              "xizi",
              "goranboy",
              "agsu",
              "balaken",
              "kurdemir",
              "ucar",
              "qazax",
              "naxcivan",
              "naftalan",
              "lerik",
              "gedebey",
              "agdam",
              "agcabedi",
              "fizuli",
              "goygol",
              "terter",
              "dashkesan",
              "aghdere",
              "cebrayil",
              "zengilan",
              "kelbecer",
              "qubadli",
              "lacin",
              "samux",
              "xankendi",
              "xocavend",
              "xocali",
              "susa",
              "yardimli",
              "qobustan",
              "nakhchivan"
            ],
            "type": "string",
            "description": "One of the 71 cities bina.az indexes, or all of Azerbaijan. Baku holds most of the stock. Needed for a form search; leave it empty only when you paste search or advert addresses."
          },
          "maxResults": {
            "title": "🔢 Max listings",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Stop after this many listings. One call returns up to 25, so a 50-listing run is two requests.",
            "default": 50
          },
          "rooms": {
            "title": "🛏️ Rooms",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only adverts with these room counts. 5 means five or more. Leave empty for every size. Applies to apartments and houses.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 room",
                "2 rooms",
                "3 rooms",
                "4 rooms",
                "5 or more"
              ]
            },
            "default": []
          },
          "minPrice": {
            "title": "💵 Min price (AZN)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest asking price or monthly rent in AZN. 0 means no lower bound.",
            "default": 0
          },
          "maxPrice": {
            "title": "💰 Max price (AZN)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest asking price or monthly rent in AZN. 0 means no upper bound.",
            "default": 0
          },
          "minArea": {
            "title": "📐 Min area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum floor area in square metres. 0 means no minimum.",
            "default": 0
          },
          "maxArea": {
            "title": "📏 Max area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum floor area in square metres. 0 means no maximum.",
            "default": 0
          },
          "hasRepair": {
            "title": "✨ Renovated only",
            "type": "boolean",
            "description": "Keep only adverts the seller marked as renovated (təmirli).",
            "default": false
          },
          "hasBillOfSale": {
            "title": "📜 Kupcha only",
            "type": "boolean",
            "description": "Keep only adverts that carry a kupcha (çıxarış), the Azerbaijani extract of title.",
            "default": false
          },
          "hasMortgage": {
            "title": "🏦 Mortgage-eligible only",
            "type": "boolean",
            "description": "Keep only adverts the seller marked as eligible for a bank mortgage (ipoteka).",
            "default": false
          },
          "sort": {
            "title": "↕️ Sort by",
            "enum": [
              "newest",
              "cheapest",
              "most-expensive",
              "smallest",
              "largest"
            ],
            "type": "string",
            "description": "Newest first is what you want on a schedule when you only care about what appeared since the last run.",
            "default": "newest"
          },
          "includeDetails": {
            "title": "📄 Add full details",
            "type": "boolean",
            "description": "Open each advert for the complete seller description, every photo, the view count and the street address. Search rows do not carry those. Costs one Property Detail event per enriched listing on top of the listing row.",
            "default": false
          },
          "searchUrls": {
            "title": "🌐 Search URLs",
            "type": "array",
            "description": "Paste bina.az search addresses instead of filling the fields above. Build the search on the site, copy the address bar, and the deal type, category, city and filters in it are read off the URL.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listingUrls": {
            "title": "🏠 Listing URLs",
            "type": "array",
            "description": "Used by Property Detail: bina.az advert addresses to expand, e.g. https://bina.az/items/6440130. Use the full address; a bare number is refused.",
            "default": [],
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}