# Yeniemlak.az Scraper: Azerbaijan Real Estate Ads & Prices (`recordsdata/yeniemlak-scraper`) Actor

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.

- **URL**: https://apify.com/recordsdata/yeniemlak-scraper.md
- **Developed by:** [RecordsData](https://apify.com/recordsdata) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 listing cards

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![RecordsData](https://api.apify.com/v2/key-value-stores/AAm3a1h3Z9nYfrvh9/records/banner?v=3)

## 🏠 Yeniemlak.az Scraper: Azerbaijan Real Estate Listings and Price Index - RecordsData

> 🚀 **Export yeniemlak.az property ads in minutes.** Search about 32,000 live ads for sale, monthly rent and daily rent, read single ads by number, list the realtor offices of the site directory and download the site's monthly Baku apartment price index back to 2012. Prices are in AZN, text is in Azerbaijani, and rows export as JSON, CSV, Excel, XML or HTML.

**Quick answer:** the Yeniemlak.az Scraper is an Apify Actor that collects public real estate listings from yeniemlak.az, the Azerbaijani property board, with price in manat, price per m2, rooms, built area, land in sot, floor, amenities, photos and posting date. It filters by city, district, settlement, metro station, price, rooms, area and seller type, and it can return only new ads or price changes on each scheduled run. Pay per result: $20.00 per 1,000 listing cards, $32.00 per 1,000 full ads. Free plans return up to 10 items per run. Last updated: 2026-10-11.

| 🎯 Target audience | 💡 Primary use cases |
|---|---|
| Investors, analysts, proptech teams, agencies, banks, relocation advisers, researchers | Price per m2 by district, rental yield, new-ad alerts, lead lists of realtor offices, historical price trends for Baku |

### 📋 What the Yeniemlak.az Scraper does

The Actor reads the same public pages every visitor of yeniemlak.az sees. The site is server-rendered, so no browser is needed. Five modes cover it.

- **search**: ads for a deal type (sale, monthly rent, daily rent or all three) and one or more of seven property types. Filter by cities, districts, settlements, metro stations, price, rooms, built area, land in sot, floor, new or old building, title deed (kupça), mortgage, photos, posting date and seller type.
- **urls**: paste ad addresses, search addresses, realtor profile addresses or ad numbers, mixed in one run.
- **agencies**: the realtor directory of the site with the business name (when the office has one), address, city and the number of live ads of each office. A city text filter narrows it.
- **market**: one summary row per deal type, property type and place: the site ad count plus average, median, minimum and maximum price, price per m2 and area, measured on the first 50 ads.
- **prices**: the monthly apartment price per m2 that the site publishes for Baku and its areas since 2012, split into new and old buildings, with the number of ads counted, the monthly change and the dollar rate.

### 📊 Output

Every row has a `recordType`: `listing`, `agency`, `market-stat` or `price-index`. A listing row comes in two depths. With **Open every listing** on (the default) it carries the full ad page. With it off, it carries the card data from the search page only, about 25 times faster. The dataset schema defines 87 columns. Fields without a value are left out of a row, never filled with `null`. The column order is fixed, with `scrapedAt` last.

| Field | Type | Example |
|---|---|---|
| `listingId`, `url`, `title`, `recordType` | string | `214318` |
| `price`, `pricePerM2`, `previousPrice`, `priceChangePct` | number (AZN) | `800` |
| `operation`, `rentPeriod`, `propertyType`, `condition` | string | `rent` |
| `city`, `region`, `neighborhood`, `address`, `metroStation` | string | `Nəsimi rayonu` |
| `rooms`, `areaBuilt`, `areaLand`, `floor`, `floors` | number | `55` |
| `amenities`, `isRenovated`, `furnished`, `hasGas`, `hasElevator`, `hasBalcony` | array, boolean | `true` |
| `description`, `images`, `imageCount`, `imageUrl` | string, array | `6` |
| `publishedAt`, `daysOnMarket`, `viewCount`, `scrapedAt` | date, number | `2026-10-11` |
| `sellerType`, `isPrivateSeller`, `agentName`, `agentPhone` | string, boolean | `agent` |
| `listingCount`, `avgPrice`, `medianPrice`, `period`, `pricePerM2New`, `pricePerM2Used`, `monthlyChangePct` | number, string | `2026-09` |

Areas are in m2. Land plots are quoted by the site in sot (1 sot = 100 m2) and are converted into `areaLand` in m2, so houses, plots and flats compare directly. `floor` is the floor of the flat and `floors` the number of floors of the building. Description, address and place names stay in Azerbaijani.

Real `listing` row (rent, Baku), shortened:

```json
{
  "imageUrl": "https://yeniemlak.az/get-img/11102026W1214318.jpeg",
  "recordType": "listing",
  "title": "2-room apartment for rent, 55 m2, Bakı, Nəsimi rayonu",
  "listingId": "214318",
  "url": "https://yeniemlak.az/elan/kiraye-2-otaqli-bina-evi-menzil-nesimi-rayonu-nizami-kucesi-137-214318",
  "operation": "rent",
  "rentPeriod": "month",
  "propertyType": "apartment",
  "condition": "used",
  "price": 800,
  "currency": "AZN",
  "pricePerM2": 14.55,
  "address": "Nizami küçəsi 137",
  "city": "Bakı",
  "region": "Nəsimi rayonu",
  "metroStation": "28 May",
  "rooms": 2,
  "areaBuilt": 55,
  "floor": 5,
  "floors": 5,
  "amenities": ["Renovated", "Gas", "Balcony", "Furnished"],
  "description": "28 May metrosunun 1 addımlığında, şəhərin tam mərkəzində Nizami küçəsində əla təmirli 2 otaqlı mənzil icarəyə verilir. ...",
  "images": ["https://yeniemlak.az/get-img/11102026W1214318.jpeg", "..."],
  "imageCount": 6,
  "publishedAt": "2026-10-11",
  "viewCount": 25,
  "sellerType": "agent",
  "scrapedAt": "2026-10-11T13:50:29.049Z"
}
```

### ✨ Why choose this Actor

- 🏙️ **The whole site**: sale, monthly rent and daily rent, seven property types, 74 cities and regions, no page limit.
- 🔎 **Filters the site applies itself**, so you only read (and pay for) the ads you need.
- 🧾 **Clean units**: manat, m2, sot converted to m2, ISO dates, and the language stated in every row.
- 🔁 **Monitor mode**: receive only unseen ads, plus ads whose price changed.
- 📉 **History**: the Baku price index since 2012 in the same format.

### 📈 How it compares to alternatives

| | RecordsData Yeniemlak Scraper | Bina.az Scraper | Tap.az Listings actor |
|---|---|---|---|
| Price | $20.00 per 1,000 cards, $32.00 full | From $2.00 per 1,000, $3.00 detail | $2.00 per 1,000 plus start fee |
| Site read | yeniemlak.az | bina.az | tap.az apartments |
| Data | Cards, full ads, realtor offices, price index | 30+ fields, filters, sorting | About 12 fields, no description |
| New ads, price changes | Monitor mode with previous price | Not shown on its page | Not shown on its page |

Read on 2026-10-11 from the public Apify Store pages. No Actor on the Store reads yeniemlak.az, so the other two cover different portals and cannot return its ads. They are also much cheaper per row: both start near $2.00 per 1,000, while ours costs $20.00 per 1,000 cards, about ten times as much. Pick ours when you need yeniemlak.az itself, its monthly Baku price index, realtor offices or price-change alerts. For bina.az or tap.az data, those Actors are the right tool, and Bina.az lists sorting that ours lacks.

### 💵 Pricing and cost examples

Pay per event, one event per row delivered. Skipped repeats, errors and empty searches are not charged.

| Row type | Price per 1,000 |
|---|---|
| Listing card (search page data) | $20.00 |
| Listing with full details | $32.00 |
| Listing with changed price | $32.00 |
| Realtor office | $24.00 |
| Market summary | $16.00 |
| Price index month | $4.00 |

- 500 Baku apartment cards: 500 x $0.02 = $10.00.
- 200 full ads of houses in Sumqayıt: 200 x $0.032 = $6.40.
- The 21 realtor offices of the directory: 21 x $0.024 = $0.50.
- A daily monitor that finds 40 new full ads and 5 price changes: 45 x $0.032 = $1.44 per day.

### 🚀 How to use

1. Create a free account at [console.apify.com](https://console.apify.com) and open the Actor.
2. Choose **What to collect**. For a first test keep **Search listings**, pick a deal type and a property type, and set **Maximum items** to 10.
3. Name the places, for example `Baku` or `Bakı`, `Sumqayıt`, `Gəncə`, or districts such as `Yasamal` and `Nəsimi`.
4. Add the limits you need: price in AZN, rooms, area, floor, new or old building, seller type.
5. Press **Start**, then open the dataset and download JSON, CSV, Excel, XML or HTML.
6. To watch a market, turn on **Only new listings** and **Report price changes**, give the search a **Monitor name** and schedule the Actor.

### ⚙️ Input

| Input | Meaning |
|---|---|
| `mode` | search, urls, agencies, market or prices |
| `operation`, `propertyTypes` | Sale, monthly rent, daily rent; seven property types |
| `cities`, `districts`, `settlements`, `metroStations` | Places, in Azerbaijani or English |
| `minPrice`, `maxPrice`, `minRooms`, `maxRooms`, `minAreaM2`, `maxAreaM2` | Limits in AZN and m2 |
| `maxItems` | Row cap (free plans: 10) |

A minimal JSON example:

```json
{ "mode": "search", "operation": "sale", "propertyTypes": ["apartment"], "cities": ["Baku"], "districts": ["Yasamal"], "minRooms": 2, "maxRooms": 3, "maxPrice": 250000, "maxItems": 50 }
```

### 💼 Business use cases

- 📈 **Investors and analysts**: price per m2 and median by district, new against old buildings, the monthly index for the long view.
- 🏢 **Agencies and proptech**: new ads into a CRM, owner ads split from realtor ads, realtor office lists.
- 🏦 **Banks and valuers**: ads with title deed against the rest, asking prices by metro station.
- 🏗️ **Developers and land buyers**: plots by size in sot and how long ads stay online.

### 🔌 Automating the Yeniemlak.az Scraper

Schedule runs in Apify Console and send results to Make, Zapier or n8n, Slack or e-mail alerts, Google Sheets, Airbyte or a webhook, or call the Actor from the Apify API and the Python or JavaScript client with `run_input={"mode": "search", "cities": ["Baku"], "maxItems": 30}`.

### 🤖 Ask an AI assistant about this scraper

The Apify MCP server (`mcp.apify.com`) exposes this Actor as a tool, so Claude, ChatGPT or another MCP client can run it from a chat and fill the fields itself.

Example prompt: "Using the Yeniemlak.az Scraper, get 30 two- and three-room apartments for rent in Yasamal posted in the last 7 days, then tell me the median rent per m2."

Tool description for an agent: "Collects public real estate ads from yeniemlak.az (Azerbaijan) for sale, monthly rent or daily rent. Input: mode (search, urls, agencies, market, prices), operation, propertyTypes, cities, districts, price, rooms and area limits, maxItems. Returns typed rows with price in AZN, price per m2, location, specifications, amenities, photos and posting date."

### Frequently Asked Questions

#### 🏠 What data can I scrape from yeniemlak.az?

Property ads for sale, monthly rent and daily rent: apartments, houses and villas, land plots, commercial objects, offices, garages and other. A full ad row has price, price per m2, location, metro station, rooms, area, floor, amenities, description, photos, posting date and view count. You can also read the realtor directory and the monthly Baku price index.

#### 🔎 How do I scrape apartments for one city or district?

Put the city in **Cities and regions** (`Baku`, `Bakı`, `Sumqayıt`, `Gəncə` and so on) and, if you want, the district in **Districts** (`Yasamal`, `Nəsimi`, `Səbail`). With cities given, only the districts of those cities count. A name the Actor does not know ends the run with one free error row that lists what to fix.

#### 🔢 How many ads can one search return?

All of them. The site has no depth limit: a search page holds 25 ads and the Actor keeps turning pages until your **Maximum items** is reached or the results end. The site holds about 32,000 live ads.

#### 🧾 What is the difference between card rows and full rows?

Card rows come from the search page: price, place, rooms, area, floor, a short text and one photo. Full rows open the ad page and add the whole description, every photo, amenities, the seller type and the exact address text. Turn off **Open every listing** when cards are enough, because it is about 25 times faster.

#### 💱 Which currency, units and language are used?

Prices are in Azerbaijani manat (`AZN`), stated in every row. Areas are in m2, land from the site's sot unit is converted to m2 (1 sot = 100 m2), and dates are ISO dates. Descriptions, addresses and place names stay in Azerbaijani; field names and amenity names are in English.

#### 🧑 Does it return names, phones or e-mails?

Not of private owners. Owners are never named, their phone numbers and e-mail addresses are never output, and phone numbers or e-mails written inside descriptions are replaced by `[contact removed]`. Realtor ads can include the realtor's name and phone only if you turn on **Include realtor contacts**, which is off by default. Directory offices show a business name when the entry is one, and a personal name only with that switch.

#### 🔁 How do I get only new ads or price changes?

Turn on **Only new listings** and give the search a **Monitor name**. The next run skips ads it delivered before and you are not charged for skipped ones. Add **Report price changes** to receive an ad again with the previous price and the change in percent whenever its price moved. Schedule the Actor daily for an alert feed.

#### 👤 Can I get only owner ads or only realtor ads?

Yes. Set **Seller type** to owners or realtors. The site shows the seller role only on the ad page, so the Actor opens the ads to check it. Owner ads are rare: one owner-only rental run in Baku opened 75 ad pages to find 3 owner ads and took 130 seconds, so expect these runs to be slower.

#### 🛡️ Do I need a proxy or an API key?

No key is needed. The site blocks cloud platform address ranges, so the Actor uses the Apify proxy that is part of your account, spreads requests over several connections and keeps each to at most 25 requests per minute, the pace the site allows. You can set 1 to 6 parallel connections; 3 is the default.

#### 📊 How does the price index work?

The site publishes the average apartment price per m2 by month and area for Baku and its districts, Sumqayıt, Gəncə and Abşeron. The **prices** mode returns one row per month and area from the year you choose (back to 2012), with new and old building prices, ads counted, monthly change and the dollar rate.

#### 🧪 What happens if my input is wrong or nothing matches?

A wrong value, such as an unknown city or a minimum price above the maximum, ends the run as succeeded with one free error row that says what to fix. A search with no matches ends as succeeded with no rows. Neither is charged. A deleted ad number returns one free error row that says it is no longer available.

### ⚖️ Limits and legal notes

- The Actor reads public pages that need no login. It reads the robots.txt of the site at the start of every run and obeys any rule or crawl delay in it (at the time of writing the site publishes none).
- Photos are returned as links only. The site terms reserve the rights to its content: use the data in line with them and with the privacy law that applies to you.
- The site has no coordinates, so rows carry an address text and place names but no latitude or longitude. Ad numbers that no longer exist cannot be read.
- Free Apify plans return up to 10 items per run.

### 🔗 Recommended Actors

- [RecordsData collection](https://apify.com/RecordsData): other real estate and public data scrapers by the same team.

**🆘 Need help?** Write to <contact.punkrecordsdata@gmail.com> or open an issue in the Issues tab.

> **⚠️ Disclaimer:** This is an independent tool and is not affiliated with, endorsed by or sponsored by yeniemlak.az. Yeniemlak is a trademark of its owner. The Actor collects only publicly available data.

# Actor input Schema

## `mode` (type: `string`):

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).

## `maxItems` (type: `integer`):

Stops after this many rows (all record types together). Free plans are limited to 10 items per run.

## `operation` (type: `string`):

Sale, monthly rent, daily rent or all three. In market mode, all three are reported as separate rows.

## `propertyTypes` (type: `array`):

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.

## `cities` (type: `array`):

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.

## `districts` (type: `array`):

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.

## `settlements` (type: `array`):

Settlements (qəsəbə) and micro-districts inside the Baku districts, for example Badamdar, Bakıxanov, Buzovna or Mərdəkan.

## `metroStations` (type: `array`):

Baku metro stations the ad names as nearby, for example 28 May, Nizami or Gənclik.

## `minPrice` (type: `integer`):

Lowest price in manat. For rent this is the monthly (or daily) rent. 0 means no minimum.

## `maxPrice` (type: `integer`):

Highest price in manat. 0 means no maximum.

## `minRooms` (type: `integer`):

Fewest rooms (otaq). 0 means any.

## `maxRooms` (type: `integer`):

Most rooms. 0 means any.

## `minAreaM2` (type: `integer`):

Smallest built area in square metres. 0 means any.

## `maxAreaM2` (type: `integer`):

Largest built area in square metres. 0 means any.

## `minLandSot` (type: `integer`):

Smallest plot in sot for land and houses (1 sot = 100 m2). 0 means any.

## `maxLandSot` (type: `integer`):

Largest plot in sot. 0 means any.

## `minFloor` (type: `integer`):

Lowest floor of the flat. 0 means any.

## `maxFloor` (type: `integer`):

Highest floor of the flat. 0 means any.

## `buildingCondition` (type: `string`):

Flats in a new building (yeni tikili) or an old one (köhnə tikili).

## `titleDeed` (type: `string`):

Only ads with or without a title deed.

## `mortgageOnly` (type: `boolean`):

Only ads the seller marks as suitable for a mortgage loan.

## `withPhotos` (type: `boolean`):

Skip ads without photos.

## `postedWithinDays` (type: `integer`):

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.

## `sellerType` (type: `string`):

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.

## `startUrls` (type: `array`):

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.

## `listingIds` (type: `array`):

urls mode: yeniemlak.az listing numbers (the digits at the end of an /elan/ address).

## `agencyCity` (type: `string`):

agencies mode: only realtor offices whose address contains this text, for example Sumqayıt. Empty means the whole directory.

## `fetchAgencyListingCounts` (type: `boolean`):

agencies mode: open each realtor profile to add the number of live ads (one extra request per office).

## `priceIndexFromYear` (type: `integer`):

prices mode: first year of the monthly figures to return, from 2012 on.

## `priceIndexAreas` (type: `array`):

prices mode: only areas whose name contains one of these words (for example Yasamal, Sumqayıt, Bakı şəhəri). Empty means all areas.

## `scrapeDetails` (type: `boolean`):

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).

## `includeContactDetails` (type: `boolean`):

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.

## `includeRaw` (type: `boolean`):

Adds a raw object with the unprocessed site fields that have no dedicated column.

## `onlyNew` (type: `boolean`):

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.

## `trackPriceChanges` (type: `boolean`):

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).

## `stateKey` (type: `string`):

Optional label to keep several monitors on the same search apart.

## `resetSeen` (type: `boolean`):

Clear the monitor memory for this search before the run, so everything counts as new.

## `maxConcurrency` (type: `integer`):

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.

## `proxyConfiguration` (type: `object`):

The site blocks the address ranges of cloud platforms, so leave the Apify proxy on when running on Apify.

## Actor input object example

```json
{
  "mode": "search",
  "maxItems": 10,
  "operation": "sale",
  "propertyTypes": [
    "apartment"
  ],
  "cities": [
    "Baku"
  ],
  "districts": [],
  "settlements": [],
  "metroStations": [],
  "minPrice": 0,
  "maxPrice": 0,
  "minRooms": 0,
  "maxRooms": 0,
  "minAreaM2": 0,
  "maxAreaM2": 0,
  "minLandSot": 0,
  "maxLandSot": 0,
  "minFloor": 0,
  "maxFloor": 0,
  "buildingCondition": "any",
  "titleDeed": "any",
  "mortgageOnly": false,
  "withPhotos": false,
  "postedWithinDays": 0,
  "sellerType": "all",
  "startUrls": [
    "https://yeniemlak.az/elan/axtar?elan_nov=1&emlak=1&seher%5B%5D=7"
  ],
  "listingIds": [],
  "agencyCity": "",
  "fetchAgencyListingCounts": true,
  "priceIndexFromYear": 2025,
  "priceIndexAreas": [],
  "scrapeDetails": true,
  "includeContactDetails": false,
  "includeRaw": false,
  "onlyNew": false,
  "trackPriceChanges": false,
  "stateKey": "",
  "resetSeen": false,
  "maxConcurrency": 3,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Key fields per row

## `fullData` (type: `string`):

Complete dataset with all fields

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10,
    "propertyTypes": [
        "apartment"
    ],
    "cities": [
        "Baku"
    ],
    "districts": [],
    "settlements": [],
    "metroStations": [],
    "startUrls": [
        "https://yeniemlak.az/elan/axtar?elan_nov=1&emlak=1&seher%5B%5D=7"
    ],
    "listingIds": [],
    "priceIndexAreas": [],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("recordsdata/yeniemlak-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "maxItems": 10,
    "propertyTypes": ["apartment"],
    "cities": ["Baku"],
    "districts": [],
    "settlements": [],
    "metroStations": [],
    "startUrls": ["https://yeniemlak.az/elan/axtar?elan_nov=1&emlak=1&seher%5B%5D=7"],
    "listingIds": [],
    "priceIndexAreas": [],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("recordsdata/yeniemlak-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "propertyTypes": [
    "apartment"
  ],
  "cities": [
    "Baku"
  ],
  "districts": [],
  "settlements": [],
  "metroStations": [],
  "startUrls": [
    "https://yeniemlak.az/elan/axtar?elan_nov=1&emlak=1&seher%5B%5D=7"
  ],
  "listingIds": [],
  "priceIndexAreas": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call recordsdata/yeniemlak-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,recordsdata/yeniemlak-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/qdj0VccXv7uPruJQf/builds/WlmiQ9O5ugliXDY2c/openapi.json
