Bina.az Scraper - Azerbaijan Property Listings avatar

Bina.az Scraper - Azerbaijan Property Listings

Pricing

from $1.76 / 1,000 property listings

Go to Apify Store
Bina.az Scraper - Azerbaijan Property Listings

Bina.az Scraper - Azerbaijan Property Listings

Pull bina.az listings: price in AZN, area, rooms, floor, address, photos and seller. Baku, Sumqayit, Ganja and all Azerbaijan. JSON or CSV.

Pricing

from $1.76 / 1,000 property listings

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Bina.az Scraper - Azerbaijan Property Listings & Prices 🚀

SIÁN Agency Store MyHome.ge Scraper Kufar Scraper Cian Scraper

🎉 78,000 live sale adverts from Azerbaijan's main property board, as a table

For analysts, agencies and investors who need Baku, Sumqayit and Ganja as rows, not browser tabs

🔎 What is the Bina.az Azerbaijan Property Scraper — and when should you use it?

The Bina.az Azerbaijan Property Scraper turns public bina.az property adverts from anywhere in Azerbaijan into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.

Use it when you need: Azerbaijani sale, monthly-rent and daily-rent adverts as rows. Asking price comes back in manat, with floor area, rooms, floor and floors in the building. Location is the city plus the district bina.az indexes. The seller block says whether an agency, a residential complex or a private owner placed the advert. Switch on full details and each row also carries the seller's complete advert text, every photo, the view count and the street address.

Use something else when: the property is not in Azerbaijan. Use MyHome.ge Scraper for Georgia's leading property portal, with the same sale-and-rent row shape. Use Kufar Scraper for Belarusian sale and rental stock from Kufar. Use Cian Scraper for Russia's leading property portal. This actor covers what bina.az publishes: apartments (new-build and Soviet-era), houses, offices, garages, land plots and commercial premises, each for sale, for monthly rent or for daily rent, across 71 cities. Seller phone numbers sit behind bina.az click-to-call and are never read. The site publishes only what is currently advertised, so there is no sold-price history.

🤖 Use with AI agents

Already connected to the Apify MCP server? Just ask for this Actor by name: sian.agency/bina-property-scraper

Your agent can pay for its own runs. This Actor is eligible for agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.

Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

I want property listings and asking prices from bina.az using the Apify Actor `sian.agency/bina-property-scraper`.
Use it when I need: Azerbaijani sale, monthly-rent and daily-rent adverts as rows. Asking price comes back in manat, with floor area, rooms, floor and floors in the building. Location is the city plus the district bina.az indexes. The seller block says whether an agency, a residential complex or a private owner placed the advert. Switch on full details and each row also carries the seller's complete advert text, every photo, the view count and the street address.
Don't use it when: the property is not in Azerbaijan — use myhome-ge-property-scraper or kufar-property-scraper or cian-property-scraper instead.
How to call it: set `dealType` to `sale`, `rent` or `daily-rent`, and `propertyCategory` to one of `apartments`, `new-build`, `old-build`, `houses`, `offices`, `garages`, `land` or `commercial`. Pick a `city` from the 71 bina.az indexes, or `any` for all of Azerbaijan. A form search with no city is refused before anything is fetched. Leave `propertyCategory` empty to read every section. Narrow with `rooms`, `minPrice`/`maxPrice` in AZN, `minArea`/`maxArea`, `hasRepair`, `hasBillOfSale` (kupcha) and `hasMortgage`. `includeDetails` opens each advert for the seller text, photos, views and street address, for an extra charge per advert. To expand adverts you already have, set `operation` to `detail` and pass `listingUrls`. To reuse a search you built on the site, paste the address bar into `searchUrls`.
Start with this input:
{
"operation": "search",
"dealType": "sale",
"propertyCategory": "apartments",
"city": "baki",
"maxResults": 50
}
Ask me which Azerbaijani city to cover, whether they want sale or rental adverts, and whether the full seller text and photos are worth the extra per-advert charge, then run the Actor and summarise the results as a table.

Things you can ask your agent for:

  • Pull two-room flats for sale in Baku under 200000 AZN and rank the districts by median price per square metre.
  • Find renovated rentals in Sumqayit with a kupcha, newest first.
  • List the agencies advertising new-build apartments in Nasimi, sorted by how much stock each one holds.

Machine-readable API, MCP config and OpenAPI definition for this Actor are published at apify.com/sian.agency/bina-property-scraper.md.

📋 Overview

bina.az is the board Azerbaijani buyers actually use. About 78,000 sale adverts sit there today, plus monthly and daily rents, across 71 cities. This Actor turns those adverts into rows: price in manat, area, rooms, floor, district, seller type and the flags that matter locally (kupcha, ipoteka, təmir).

Why thousands of professionals choose us:

  • ✅ 71 cities, not a Baku dump: Sumqayit, Ganja, Khirdalan and Nakhchivan are first-class picks
  • ⚡ 25 adverts per request, newest, cheapest or largest first
  • 🎯 Typed columns: rooms, floor, area, kupcha, mortgage-eligible, renovated
  • 💰 $2.00 per 1,000 listing rows plus a $0.005 run start
  • 💎 Agency vs owner split on every row, with the company name on agency adverts
  • ✨ NEW: paste a bina.az search address and the deal type, category, city and filters in it are used

✨ Features

  • 🏠 Eight property sections: all apartments, new-build, Soviet-era, houses, offices, garages, land, commercial
  • 🤝 Sale, monthly rent and daily rent, each row labelled
  • 📍 71 cities picked from bina.az's own city list
  • 🛏️ Room filter as a multi-select; 5 means five or more
  • 📜 Kupcha, ipoteka and təmir as real filters, not keywords
  • 🖼️ Cover photo on every row, the full gallery when you open the advert
  • 🔗 Paste a search you built on bina.az
  • 📄 Full seller text on demand: one switch opens each advert for description, photos, views and street address

🎬 Quick Start

Pick a city, pick sale or rent, press Start. The form opens on Baku apartments for sale, newest first. Results land in a dataset you can download as JSON, CSV or Excel.

curl -X POST https://api.apify.com/v2/acts/sian.agency~bina-property-scraper/runs?token=YOUR_TOKEN \
-d '{"operation":"search","dealType":"sale","propertyCategory":"apartments","city":"baki","maxResults":50}'

🚀 Getting Started (3 Simple Steps)

Step 1: Choose the section

Pick sale, monthly rent or daily rent, then a property category.

Step 2: Choose where

Pick a city from the list, or leave it on Baku. All 71 cities bina.az indexes are there.

Step 3: Press Start

Raise Max listings if you want more than the first 50, then export the dataset.

That's it! In about a minute, you'll have:

  • Asking prices in AZN, with area, rooms and floor
  • District names as bina.az prints them
  • A dataset ready for Excel, BigQuery, a notebook or an AI agent

📥 Input Configuration

FieldTypeRequiredDescription
operationstringNosearch sweeps a category; detail opens specific adverts
dealTypestringNosale, rent or daily-rent
propertyCategorystringNoapartments, new-build, old-build, houses, offices, garages, land, commercial. Empty reads every section
citystringFor a form searchOne of 71 cities, or any for all of Azerbaijan. No default: an API call must name one
maxResultsintegerNoStop after this many adverts
roomsarrayNoRoom counts to keep; 5 means five or more
minPrice / maxPriceintegerNoPrice band in AZN; 0 means no bound
minArea / maxAreaintegerNoFloor area in square metres
hasRepairbooleanNoOnly renovated (təmirli) adverts
hasBillOfSalebooleanNoOnly adverts with a kupcha (çıxarış)
hasMortgagebooleanNoOnly mortgage-eligible (ipoteka) adverts
sortstringNonewest, cheapest, most-expensive, smallest, largest
includeDetailsbooleanNoOpen each advert for seller text, photos, views and street address
searchUrlsarrayNoPaste bina.az search addresses instead of using the form
listingUrlsarrayNoFull advert addresses for the detail operation

Example:

{
"listingId": "6483817",
"propertyTitle": "Satılır · 4 otaqlı · 95 m² · Sumqayıt",
"url": "https://bina.az/items/6483817",
"price": 132000,
"priceCurrency": "AZN",
"pricePerSqm": 1389,
"dealType": "sale",
"propertyCategory": "old-build",
"rooms": 4,
"area": 95,
"floor": 2,
"totalFloors": 5,
"hasBillOfSale": true,
"hasMortgage": false,
"hasRepair": true,
"city": "Sumqayıt",
"address": "Sumqayıt şəhəri",
"sellerName": "Rövşən",
"sellerType": "agency",
"agencyName": "Prime Əmlak",
"agencyUrl": "https://bina.az/agentlikler/prime-emlak",
"imageUrl": "https://bina.azstatic.com/uploads/full/2026%2F09%2F23%2F09%2F50%2F52%2F5e915cf9-2661-4126-9cce-7b23b17005f4%2F55595_uxLM_5oyRrFxCuOfvaoJ0g.jpg",
"imageCount": 17,
"views": 18,
"listedAt": "2026-09-23T09:51:53+04:00",
"status": "success"
}

Bulk listing expansion:

{
"operation": "detail",
"listingUrls": [
{ "url": "https://bina.az/items/6440130" },
{ "url": "5639851" }
]
}

📤 Output

Results are saved to the Apify dataset with 30+ fields including:

FieldTypeDescription
listingIdstringbina.az advert ID
propertyTitlestringBuilt from deal type, rooms, area and district
urlstringLink back to the advert
pricenumberAsking price or rent, in AZN
priceCurrencystringAlways AZN
pricePerSqmnumberPrice divided by floor area
rooms / area / floor / totalFloorsnumberSize and floor facts
hasBillOfSale / hasMortgage / hasRepairbooleanKupcha, ipoteka, renovated
city / district / addressstringWhere it is. Address arrives on a detail row
sellerName / sellerTypestringContact name, and agency, developer or owner
agencyName / agencyUrlstringAgency brand and its bina.az page, on detail rows
imageUrl / imageUrls / imageCountstring, array, numberCover photo on every row; gallery and count on detail rows
descriptionText / viewsstring, numberSeller text and view count on detail rows
listedAtstringWhen the advert was last bumped

Example:

{
"listingId": "6440130",
"propertyTitle": "Satılır · 3 otaqlı · 104 m² · Nəsimi r.",
"url": "https://bina.az/items/6440130",
"price": 365000,
"priceCurrency": "AZN",
"pricePerSqm": 3510,
"dealType": "sale",
"rooms": 3,
"area": 104,
"floor": 2,
"totalFloors": 19,
"hasBillOfSale": true,
"hasMortgage": true,
"hasRepair": true,
"city": "Bakı",
"district": "Nəsimi r.",
"address": "Nəsibbəy Yusifbəyli küçəsi",
"sellerName": "Mətanət",
"sellerType": "agency",
"imageCount": 1,
"views": 155,
"listedAt": "2026-09-18T11:33:40+04:00",
"status": "success"
}

💼 Use Cases & Examples

1. Baku apartment market study

Analysts who need Yasamal against Nasimi as a comparable table.

Input: Baku, apartments, optional room and price band. Output: asking price, area, rooms, floor, district, new-build vs Soviet-era. Use: price per square metre by district, split by new towers and older stock.

2. Agency lead list

Proptech and CRM vendors selling into Azerbaijani agencies.

Input: a district, then group the dataset by agency name. Output: company name on every agency advert. Use: see who holds the stock in a neighbourhood before you approach any of them.

3. Private-owner sourcing

Acquisition desks who want the half of the market no agency has signed.

Input: a search, then keep rows whose seller type is owner. Open details for the street address. Output: the seller name, the district, the street on a detail row. Use: an approach list that has not already been worked by three agencies.

4. New listing watch

Aggregators keeping a live mirror of Azerbaijani supply.

Input: a saved search sorted newest first, on a schedule. Output: everything bumped since your last run. Use: keep the advert IDs you have seen, and pay only for what is new.

5. Rental yield screen

Investors comparing neighbourhoods before they buy.

Input: two runs over the same Baku districts, one sale and one rent. Output: rooms, area and price on both sides. Use: a gross-yield picture per neighbourhood that no single bina.az page shows.

6. New-build vs Soviet-era split

Valuers who need the two apartment stocks kept apart.

Input: new-build in one run, old-build in another, same city. Output: the same columns, two datasets. Use: a two-room flat in a 1980s block against the same thing in a new tower.

7. Full-country extract

Data teams building a repeatable Azerbaijani market index.

Input: one category, city set to all of Azerbaijan, a high row budget. Output: the entire category in one dated dataset. Use: the sale corpus is about 78,000 live adverts; a national snapshot is a normal run.

🔗 Integration Examples

JavaScript/Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('sian.agency/bina-property-scraper').call({
operation: 'search',
dealType: 'sale',
propertyCategory: 'apartments',
city: 'baki',
maxResults: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/bina-property-scraper').call(
run_input={
'operation': 'search',
'dealType': 'rent',
'propertyCategory': 'apartments',
'city': 'baki',
'maxResults': 200,
}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item['price'], item['city'], item['area'])

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~bina-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation":"search","propertyCategory":"houses","dealType":"sale","city":"gence","maxResults":100}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: Schedule, daily or weekly
  2. HTTP Request: Call the Actor API with your saved search
  3. Process: Drop advert IDs you have already stored
  4. Action: Append the new rows to a sheet, a database or a Slack alert

📊 Performance & Pricing

FREE Tier (Try It Now)

  • 25 adverts per run — every field, every filter, same data
  • No credit card required
  • Enough to check the fields against your own model before you commit
  • Unlimited adverts per run, up to 50,000 in a single sweep
  • 25 adverts per request
  • Pay-per-result: charged per advert returned, never for a search that matched nothing

💰 $2.00 per 1,000 listing rows plus a $0.005 run start. Opening an advert for the seller text and photos is $3.00 per 1,000.

🔗 View current pricing

❓ Frequently Asked Questions

Q: How many adverts can one search return? A: As many as match, up to your max. Each request returns up to 25. The sale corpus is about 78,000 live adverts.

Q: Do I need an API key, a login or a proxy? A: No. Pick a city and press Start.

Q: Which currency are the prices in? A: Azerbaijani manat (AZN), which is how bina.az quotes them.

Q: What do the full details add? A: The complete seller description, every photo, the view count and the street address. Search rows do not carry those.

Q: Can I get seller phone numbers? A: No. bina.az reveals a phone number only behind its own click-to-call, and this actor does not touch it.

Q: Can I paste a bina.az search address? A: Yes. Build the search on bina.az, copy the address bar into Search URLs, and the deal type, category, city and filters in it are used.

Q: Does it cover the whole of Azerbaijan? A: Yes — all 71 cities bina.az lists, and every property category for sale, monthly rent and daily rent.

Q: How long does a run take? A: A 50-row Baku sweep finishes in under a minute. A few thousand rows take a few minutes.

🐛 Troubleshooting

The run returned zero rows

  • Check the city, category and deal type. Land plots are sale-only, so a rent run against land returns nothing.
  • Widen the price or room filter. A 5-room band in a small town can be empty.

The run failed with "Pick a City"

  • A form search needs a city. Set city to a city such as baki, or to any for the whole country.
  • Or paste a bina.az search address into searchUrls, or advert addresses into listingUrls.
  • A run stopped this way costs only the start fee.

A pasted advert address was rejected

  • Use the full advert address, such as https://bina.az/items/6440130. A bare number is refused before the run starts.
  • Search addresses go in Search URLs, not Listing URLs.

Only one photo per row

  • Search rows carry the cover photo only. For the whole gallery, turn on Add full details or run Property Detail on the adverts you already have.

An advert looks withdrawn

  • bina.az publishes what is currently advertised. Sold and taken-down adverts disappear. Re-run the search.

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the legality of web scraping.

bina.az, Bina and Digital Classifieds MMC are trademarks of their respective owners. This actor is not affiliated with, endorsed by, or sponsored by bina.az or Digital Classifieds MMC.

🤝 Support

Join our active support community


Built by SIÁN Agency | More Tools