{
  "openapi": "3.0.1",
  "info": {
    "title": "Yeniemlak.az Scraper: Azerbaijan Real Estate Ads & Prices",
    "description": "Scrape yeniemlak.az, the Azerbaijani property board (about 32,000 ads): sale, monthly and daily rent for flats, houses, land, offices and garages with AZN price, price per m2, district, metro, rooms, area, floor, photos and seller role. Also realtor offices, market stats and the Baku price index.",
    "version": "0.1",
    "x-build-id": "WlmiQ9O5ugliXDY2c"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~yeniemlak-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-yeniemlak-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/recordsdata~yeniemlak-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-yeniemlak-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/recordsdata~yeniemlak-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-yeniemlak-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": {
          "mode": {
            "title": "What to collect",
            "enum": [
              "search",
              "urls",
              "agencies",
              "market",
              "prices"
            ],
            "type": "string",
            "description": "search = live sale and rent listings for the filters below. urls = the yeniemlak.az listing, search or realtor addresses and listing numbers you list. agencies = the realtor offices of the site's directory. market = listing counts and price statistics per deal type, property type and city. prices = the site's monthly Baku apartment price index per area (since 2012).",
            "default": "search"
          },
          "maxItems": {
            "title": "Maximum items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stops after this many rows (all record types together). Free plans are limited to 10 items per run.",
            "default": 50
          },
          "operation": {
            "title": "Deal type",
            "enum": [
              "sale",
              "rent",
              "rent-daily",
              "all"
            ],
            "type": "string",
            "description": "Sale, monthly rent, daily rent or all three. In market mode, all three are reported as separate rows.",
            "default": "sale"
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Which categories to read (search and market modes). Each type is its own search on the site. Choose all property types to read the combined list.",
            "items": {
              "type": "string",
              "enum": [
                "all",
                "apartment",
                "house",
                "land",
                "commercial",
                "office",
                "garage",
                "other"
              ],
              "enumTitles": [
                "All property types",
                "Apartments",
                "Houses and villas",
                "Land plots",
                "Commercial objects",
                "Offices",
                "Garages",
                "Other"
              ]
            },
            "default": [
              "apartment"
            ]
          },
          "cities": {
            "title": "Cities and regions",
            "type": "array",
            "description": "City or region names as the site prints them (Bakı, Sumqayıt, Gəncə, Xırdalan, Abşeron, ...) or in English (Baku, Ganja, Sumgait); site ids work too. Empty means all of Azerbaijan.",
            "items": {
              "type": "string"
            }
          },
          "districts": {
            "title": "Districts",
            "type": "array",
            "description": "Districts (rayon) of Baku, Abşeron or Sumqayıt, for example Yasamal, Nəsimi, Səbail or Xətai. With cities given, only the districts of those cities count.",
            "items": {
              "type": "string"
            }
          },
          "settlements": {
            "title": "Settlements and micro-districts",
            "type": "array",
            "description": "Settlements (qəsəbə) and micro-districts inside the Baku districts, for example Badamdar, Bakıxanov, Buzovna or Mərdəkan.",
            "items": {
              "type": "string"
            }
          },
          "metroStations": {
            "title": "Metro stations",
            "type": "array",
            "description": "Baku metro stations the ad names as nearby, for example 28 May, Nizami or Gənclik.",
            "items": {
              "type": "string"
            }
          },
          "minPrice": {
            "title": "Minimum price (AZN)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price in manat. For rent this is the monthly (or daily) rent. 0 means no minimum.",
            "default": 0
          },
          "maxPrice": {
            "title": "Maximum price (AZN)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price in manat. 0 means no maximum.",
            "default": 0
          },
          "minRooms": {
            "title": "Minimum rooms",
            "minimum": 0,
            "type": "integer",
            "description": "Fewest rooms (otaq). 0 means any.",
            "default": 0
          },
          "maxRooms": {
            "title": "Maximum rooms",
            "minimum": 0,
            "type": "integer",
            "description": "Most rooms. 0 means any.",
            "default": 0
          },
          "minAreaM2": {
            "title": "Minimum area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest built area in square metres. 0 means any.",
            "default": 0
          },
          "maxAreaM2": {
            "title": "Maximum area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Largest built area in square metres. 0 means any.",
            "default": 0
          },
          "minLandSot": {
            "title": "Minimum land (sot)",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest plot in sot for land and houses (1 sot = 100 m2). 0 means any.",
            "default": 0
          },
          "maxLandSot": {
            "title": "Maximum land (sot)",
            "minimum": 0,
            "type": "integer",
            "description": "Largest plot in sot. 0 means any.",
            "default": 0
          },
          "minFloor": {
            "title": "Minimum floor",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest floor of the flat. 0 means any.",
            "default": 0
          },
          "maxFloor": {
            "title": "Maximum floor",
            "minimum": 0,
            "type": "integer",
            "description": "Highest floor of the flat. 0 means any.",
            "default": 0
          },
          "buildingCondition": {
            "title": "New or old building",
            "enum": [
              "any",
              "new",
              "used"
            ],
            "type": "string",
            "description": "Flats in a new building (yeni tikili) or an old one (köhnə tikili).",
            "default": "any"
          },
          "titleDeed": {
            "title": "Title deed (kupça)",
            "enum": [
              "any",
              "with",
              "without"
            ],
            "type": "string",
            "description": "Only ads with or without a title deed.",
            "default": "any"
          },
          "mortgageOnly": {
            "title": "Mortgage-eligible only",
            "type": "boolean",
            "description": "Only ads the seller marks as suitable for a mortgage loan.",
            "default": false
          },
          "withPhotos": {
            "title": "Only ads with photos",
            "type": "boolean",
            "description": "Skip ads without photos.",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Only ads posted in the last N days. The site lists the newest ads first, so the search ends once a page holds only older ads. 0 means no date limit.",
            "default": 0
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "all",
              "owner",
              "agent"
            ],
            "type": "string",
            "description": "owner = ads by the property owner, agent = ads by realtors and intermediaries, all = both. Needs the listing page of every ad (switched on automatically). Owners are never named and their phone numbers are never output.",
            "default": "all"
          },
          "startUrls": {
            "title": "Addresses",
            "type": "array",
            "description": "urls mode: listing addresses (https://yeniemlak.az/elan/...), search addresses (https://yeniemlak.az/elan/axtar?...), realtor profile addresses (https://yeniemlak.az/640110), /rieltor or /bakida-evlerin-qiymeti.",
            "items": {
              "type": "string"
            }
          },
          "listingIds": {
            "title": "Listing numbers",
            "type": "array",
            "description": "urls mode: yeniemlak.az listing numbers (the digits at the end of an /elan/ address).",
            "items": {
              "type": "string"
            }
          },
          "agencyCity": {
            "title": "Realtor city filter",
            "type": "string",
            "description": "agencies mode: only realtor offices whose address contains this text, for example Sumqayıt. Empty means the whole directory.",
            "default": ""
          },
          "fetchAgencyListingCounts": {
            "title": "Count each realtor's ads",
            "type": "boolean",
            "description": "agencies mode: open each realtor profile to add the number of live ads (one extra request per office).",
            "default": true
          },
          "priceIndexFromYear": {
            "title": "Price index from year",
            "minimum": 2012,
            "maximum": 2100,
            "type": "integer",
            "description": "prices mode: first year of the monthly figures to return, from 2012 on.",
            "default": 2025
          },
          "priceIndexAreas": {
            "title": "Price index areas",
            "type": "array",
            "description": "prices mode: only areas whose name contains one of these words (for example Yasamal, Sumqayıt, Bakı şəhəri). Empty means all areas.",
            "items": {
              "type": "string"
            }
          },
          "scrapeDetails": {
            "title": "Open every listing",
            "type": "boolean",
            "description": "On: open each listing page for the full description, every photo, amenities, seller role and the posting details (listing-detail-record). Off: card data only from the search page, about 25 times faster (listing-record).",
            "default": true
          },
          "includeContactDetails": {
            "title": "Include realtor contacts",
            "type": "boolean",
            "description": "Adds the name and phone of the realtor on realtor ads, and the phones and e-mail of directory offices. Off by default. Property owners (private sellers) are never named and their phone numbers and e-mails are never output, and contact details written inside descriptions are removed.",
            "default": false
          },
          "includeRaw": {
            "title": "Include raw site data",
            "type": "boolean",
            "description": "Adds a raw object with the unprocessed site fields that have no dedicated column.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new listings (monitor)",
            "type": "boolean",
            "description": "Skip listings already delivered by an earlier run of the same search, so scheduled runs only return and charge for what is new. The memory is stored in your own Apify account.",
            "default": false
          },
          "trackPriceChanges": {
            "title": "Report price changes",
            "type": "boolean",
            "description": "With Only new listings: also return a listing again when its price changed since the last run, with the previous price and the change in percent (changed-listing-record).",
            "default": false
          },
          "stateKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional label to keep several monitors on the same search apart.",
            "default": ""
          },
          "resetSeen": {
            "title": "Forget seen listings",
            "type": "boolean",
            "description": "Clear the monitor memory for this search before the run, so everything counts as new.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Parallel connections",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "Each connection uses its own proxy address and sends at most 25 requests per minute, the pace the site's rate limit allows. More connections read faster; 3 is a good balance.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "The site blocks the address ranges of cloud platforms, so leave the Apify proxy on when running on Apify.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}