Bayut Property Listings Extractor
Pricing
from $3.99 / 1,000 results
Bayut Property Listings Extractor
Extract Bayut property listings from any search URL: price, beds, baths, size, location, photos, and agent contacts, exported to JSON, CSV, or Excel for market research, price tracking, and CRM feeds.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
Kawsar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Turn any Bayut search page into clean, structured property data. Paste a Bayut results URL and this actor returns every listing on those pages as rows you can sort, filter, and export: price, bedrooms, bathrooms, size, exact location with coordinates, all listing photos, and the agent and agency contact details.
Bayut is the UAE's largest real estate portal, with hundreds of thousands of active sale and rent listings across Dubai, Abu Dhabi, Sharjah, Ajman, and the rest of the Emirates. This actor reads those listings for you, follows the pagination automatically, and hands back structured data ready for analysis, a CRM, or a spreadsheet.
Why use this actor
- No manual copy paste. One search URL can produce hundreds of clean records in a single run.
- Full listing detail. Price, size, room counts, geolocation, every photo, and the agent behind each listing.
- Any Bayut search. Sale or rent, any city or community, and any filter combination Bayut supports.
- Automatic pagination. Give it a search URL and set how many listings you want. It walks the result pages until it has enough.
- Export anywhere. Download as JSON, CSV, Excel, or HTML, or pull the data through the Apify API.
What you can do with the data
- Compare asking prices and price per square foot across neighborhoods
- Track new sale or rent listings in a specific community over time
- Build agent and agency contact lists for outreach and lead generation
- Feed a property CRM or an internal listings database
- Collect listing photos and details for valuation models or market reports
- Analyze inventory levels and pricing trends for investment research
How it works
- You provide one or more Bayut search or category URLs.
- The actor loads each results page and reads the structured listing data on it.
- It moves through the paginated results until it reaches your
maxItemslimit. - Each property is saved as one record in the dataset, with duplicates removed.
You do not need an account, a login, or any browser setup. Point it at a URL and run.
Input
| Field | Type | Required | Description |
|---|---|---|---|
searchUrls | Array of strings | Yes | One or more Bayut search or category URLs. Pagination is handled for you. |
maxItems | Integer | No | Maximum number of listings to collect across all URLs. Default 100, maximum 5000. |
requestTimeoutSecs | Integer | No | Per request timeout in seconds. Default 45. |
Where to get a search URL
Open bayut.com, run any search, apply the filters you want, and copy the URL from your browser. Anything Bayut can display on a results page works here.
Examples:
- All properties for sale in Dubai:
https://www.bayut.com/for-sale/property/dubai/ - Apartments to rent in Dubai:
https://www.bayut.com/to-rent/apartments/dubai/ - Villas for sale in Abu Dhabi:
https://www.bayut.com/for-sale/villas/abu-dhabi/ - A filtered search by price, bedrooms, or community (copy the full URL after applying filters)
Example input
{"searchUrls": ["https://www.bayut.com/for-sale/property/dubai/","https://www.bayut.com/to-rent/apartments/dubai/"],"maxItems": 200,"requestTimeoutSecs": 45}
Output
Every listing becomes one dataset record. Here is a real example:
{"listingId": "16144665","propertyUrl": "https://www.bayut.com/property/details-16144665.html","listingTitle": "Lowest Price in Majan / 4% DLD Waiver / 40-60 Payment Plan","propertyType": "Apartment","purpose": "for-sale","price": 967000,"currency": "AED","bedrooms": 1,"bathrooms": 2,"areaSize": 680,"areaUnit": "SQFT","region": "Dubai","locality": "Majan","latitude": 25.090813566325,"longitude": 55.32188921802,"coverImage": "https://images.bayut.com/thumbnails/861100023-800x600.jpeg","images": ["https://images.bayut.com/thumbnails/861100023-800x600.jpeg","https://images.bayut.com/thumbnails/861100021-800x600.jpeg"],"imageCount": 16,"agentName": "Yassin El Forkani","agentPhone": "+97145880392","agencyName": "Forsa Properties","agencyUrl": "https://www.bayut.com/companies/forsa-properties-109521/","scrapedAt": "2026-08-23T05:44:59Z"}
Output field reference
| Field | Type | Description |
|---|---|---|
listingId | String | Bayut's unique listing identifier. |
propertyUrl | String | Direct link to the full listing page. |
listingTitle | String | The listing headline written by the agent. |
propertyType | String | Property category, for example Apartment, Villa, Townhouse. |
purpose | String | for-sale or for-rent, taken from the search URL. |
price | Number | Asking price. For rentals this is the period price shown on Bayut. |
currency | String | Price currency, usually AED. |
bedrooms | Number | Number of bedrooms. Studios return 0. |
bathrooms | Number | Number of bathrooms. |
areaSize | Number | Built up area value. |
areaUnit | String | Unit for the area, for example SQFT. |
region | String | City or emirate, for example Dubai. |
locality | String | Community or neighborhood, for example Majan. |
latitude | Number | Map latitude of the property. |
longitude | Number | Map longitude of the property. |
coverImage | String | URL of the main listing photo. |
images | Array | URLs of all listing photos. |
imageCount | Number | How many photos the listing has. |
agentName | String | Name of the listing agent. |
agentPhone | String | Agent contact phone number. |
agencyName | String | Name of the agency the agent works for. |
agencyUrl | String | Bayut profile URL of the agency. |
scrapedAt | String | UTC timestamp of when the record was collected. |
Exporting your results
After a run finishes, open the dataset and export in one click as JSON, CSV, Excel, or HTML table. You can also fetch results programmatically.
$curl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=csv"
Replace DATASET_ID with the ID shown on your run, and add your Apify token if the run is private.
Tips for better results
- Apply your filters on Bayut first, then copy the URL. The actor keeps whatever filters are in the URL.
- Add several search URLs in one run to cover multiple cities or purposes at once.
- Set
maxItemsto control run length and cost. Higher limits read more result pages. - Run on a schedule to track a market and spot new listings as they appear.
Frequently asked questions
Which Bayut pages are supported? Any search or category results page, for sale or for rent, in any city or community, with any filter combination.
How many listings can I collect?
Up to 5000 per run through the maxItems setting. Split very large jobs across multiple runs or schedule them.
Does it collect listing photos? Yes. Each record includes the cover image and the full list of photo URLs, along with a count.
Do I get agent contact details? Yes. Each listing includes the agent name and phone number, plus the agency name and profile URL when Bayut shows them.
Do I need a Bayut account? No. The actor only reads public listing data shown on Bayut search pages.
Notes and responsible use
This actor collects only public data that Bayut already displays on its search pages. Use it in line with Bayut's terms of service and applicable local laws, and treat any personal contact information responsibly.