Bina.az Scraper - Azerbaijan Property Listings
Pricing
from $1.76 / 1,000 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Ü
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Bina.az Scraper - Azerbaijan Property Listings & Prices 🚀
🎉 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
| Field | Type | Required | Description |
|---|---|---|---|
operation | string | No | search sweeps a category; detail opens specific adverts |
dealType | string | No | sale, rent or daily-rent |
propertyCategory | string | No | apartments, new-build, old-build, houses, offices, garages, land, commercial. Empty reads every section |
city | string | For a form search | One of 71 cities, or any for all of Azerbaijan. No default: an API call must name one |
maxResults | integer | No | Stop after this many adverts |
rooms | array | No | Room counts to keep; 5 means five or more |
minPrice / maxPrice | integer | No | Price band in AZN; 0 means no bound |
minArea / maxArea | integer | No | Floor area in square metres |
hasRepair | boolean | No | Only renovated (təmirli) adverts |
hasBillOfSale | boolean | No | Only adverts with a kupcha (çıxarış) |
hasMortgage | boolean | No | Only mortgage-eligible (ipoteka) adverts |
sort | string | No | newest, cheapest, most-expensive, smallest, largest |
includeDetails | boolean | No | Open each advert for seller text, photos, views and street address |
searchUrls | array | No | Paste bina.az search addresses instead of using the form |
listingUrls | array | No | Full 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:
| Field | Type | Description |
|---|---|---|
listingId | string | bina.az advert ID |
propertyTitle | string | Built from deal type, rooms, area and district |
url | string | Link back to the advert |
price | number | Asking price or rent, in AZN |
priceCurrency | string | Always AZN |
pricePerSqm | number | Price divided by floor area |
rooms / area / floor / totalFloors | number | Size and floor facts |
hasBillOfSale / hasMortgage / hasRepair | boolean | Kupcha, ipoteka, renovated |
city / district / address | string | Where it is. Address arrives on a detail row |
sellerName / sellerType | string | Contact name, and agency, developer or owner |
agencyName / agencyUrl | string | Agency brand and its bina.az page, on detail rows |
imageUrl / imageUrls / imageCount | string, array, number | Cover photo on every row; gallery and count on detail rows |
descriptionText / views | string, number | Seller text and view count on detail rows |
listedAt | string | When 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 ApifyClientclient = 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)
- Trigger: Schedule, daily or weekly
- HTTP Request: Call the Actor API with your saved search
- Process: Drop advert IDs you have already stored
- 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
PAID Tier (Production Ready)
- 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.
❓ 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
cityto a city such asbaki, or toanyfor the whole country. - Or paste a bina.az search address into
searchUrls, or advert addresses intolistingUrls. - 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.
⚖️ Is it legal to scrape data?
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
- For issues or questions, open an issue in the actor's repository
- Check SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools