Bayut Scraper — UAE Real Estate Listings, Prices & Agents avatar

Bayut Scraper — UAE Real Estate Listings, Prices & Agents

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Bayut Scraper — UAE Real Estate Listings, Prices & Agents

Bayut Scraper — UAE Real Estate Listings, Prices & Agents

Scrape Bayut.com property listings for sale or rent across the UAE. Extract price, beds, baths, area, location, agency, phone, WhatsApp, coordinates, permit and photos. No API key, no login.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Pull hundreds to thousands of Bayut.com property listings — with prices, agent phone numbers, WhatsApp, and location data — straight from the UAE's #1 property portal. No API key, no login, just clean JSON.

What does the Bayut Scraper do?

The Bayut Scraper extracts live property listings from Bayut.com, the UAE's largest real estate marketplace. Instead of rendering pages in a slow browser, it talks directly to Bayut's public Algolia search backend — the exact same engine that powers the website's own search — so you get structured, reliable JSON at speed.

You can scrape across all seven emirates (Dubai, Abu Dhabi, Sharjah, Ajman, Ras Al Khaimah, Fujairah, and Umm Al Quwain), for both for-sale and for-rent properties. Every listing comes back with more than 40 fields, including price in AED, bedrooms, bathrooms, area (in both square metres and square feet), coordinates, RERA/DLD permit numbers, agency details, and — crucially for lead generation — the agent's name, phone number, and WhatsApp.

It's completely keyless: no account, no token, no cookies. A single run can return hundreds to thousands of listings. Bayut caps deep pagination at 50,000 results per query, so narrow your filters when you need to go beyond that.

Who is it for?

  • Real estate agents and brokers — build fresh lead lists of competing and complementary listings, complete with agent phone numbers and WhatsApp for outreach.
  • Property investors — source deals, compare asking prices, and spot undervalued units or high-yield rental communities.
  • PropTech and data teams — feed clean, structured UAE property data into your own platforms, dashboards, and machine-learning models.
  • Lead-gen and marketing teams — assemble targeted contact lists by emirate, community, or property type for campaigns.
  • Market analysts and researchers — track price movements, off-plan supply, and rental trends per community over time.

Use cases

  • Lead lists with agent contacts — export every listing in a community together with the listing agent's name, phone, WhatsApp, and agency, ready for your sales pipeline.
  • Price benchmarking per community — pull all 2-bed apartments in Dubai Marina and compute the median AED price, price-per-sqm, and range to price your own stock competitively.
  • Off-plan tracking — monitor new off-plan and under-construction launches by emirate to catch fresh inventory the moment it appears.
  • Investment sourcing — filter by price ceiling, bedrooms, and completion status to surface deals that match your buy-box across all seven emirates.
  • Feeding CRMs and portals — schedule regular runs and push standardized listing data into your CRM, syndication portal, or internal database.

Why use this scraper?

  • 100% keyless — no Bayut account, API key, or login required. Point it at a city or community and go.
  • 40+ fields per listing, including agent phone & WhatsApp — one of the few scrapers that returns direct contact details alongside every property.
  • All seven emirates — Dubai, Abu Dhabi, Sharjah, Ajman, Ras Al Khaimah, Fujairah, and Umm Al Quwain, for both sale and rent.
  • Rich, precise filters — purpose, category, property type, price, beds, baths, area, furnishing, completion status, rent frequency, and free-text search.
  • Real numbers and geo — prices as numbers (not strings), areas in both sqm and sqft, plus latitude/longitude for mapping.
  • Export anywhere, pay per result — download to JSON, CSV, or Excel, or connect via API and integrations. You only pay for the listings you actually get.

What data can you extract?

Every listing returns a rich, flat JSON object. Here's every field the scraper produces:

FieldTypeDescription
idstringInternal listing identifier.
externalIDstringBayut's public listing ID (used in the URL).
referenceNumberstringAgency reference / MLS-style code for the listing.
titlestringListing headline as shown on Bayut.
purposestringfor-sale or for-rent.
pricenumberPrice in AED (numeric, not a string).
currencystringCurrency code, always AED.
rentFrequencystring | nullFor rentals: yearly, monthly, weekly, or daily. null for sales.
bedsnumberNumber of bedrooms (0 for studios).
bathsnumberNumber of bathrooms.
areaSqmnumberBuilt-up area in square metres.
areaSqftnumberSame area converted to square feet.
plotAreaSqmnumber | nullPlot/land area in square metres, where applicable.
categorystringHigh-level category: Residential or Commercial.
propertyTypestringType such as Apartment, Villa, Townhouse, Office, etc.
completionStatusstringready, under-construction, or off-plan.
furnishingStatusstringfurnished, unfurnished, or partly-furnished.
isVerifiedbooleantrue if the listing carries Bayut's TruCheck verification.
productTierstringListing prominence: superhot, hot, featured, or default.
citystringEmirate the property sits in.
communitystringPrimary community / area name.
subCommunitystringSub-community or tower/cluster name.
locationPathstringFull breadcrumb, e.g. Dubai > Dubai Islands > Bay Villas.
latitudenumberGeographic latitude.
longitudenumberGeographic longitude.
permitNumberstring | nullRERA/DLD permit or trakheesi number, where published.
agencyNamestringName of the listing agency.
agencyReraNumberstringAgency's RERA registration number.
contactNamestringListing agent's name.
phonestringAgent's phone number.
whatsappstringAgent's WhatsApp number.
amenitiesarray of stringsListed amenities (e.g. Swimming Pool, Gym or Health Club).
coverPhotostring (url)URL of the main cover image.
imagesarray of urlsURLs of all listing photos.
photoCountnumberNumber of photos on the listing.
videoCountnumberNumber of videos on the listing.
panoramaCountnumberNumber of 360° panorama tours.
createdAtstring (ISO)When the listing was first published.
updatedAtstring (ISO)When the listing was last updated.
urlstringDirect URL to the listing on Bayut.
scrapedAtstring (ISO)Timestamp when this record was scraped.

A real record from a run looks like this:

{
"externalID": "15854654",
"referenceNumber": "103583-6vnOsx",
"title": "Luxury Waterfront Villa | Private Beach Access | Premium Island Living",
"purpose": "for-sale",
"price": 4650000,
"currency": "AED",
"beds": 3,
"baths": 3,
"areaSqm": 314.2,
"areaSqft": 3382,
"category": "Residential",
"propertyType": "Villas",
"completionStatus": "under-construction",
"furnishingStatus": "unfurnished",
"isVerified": true,
"productTier": "superhot",
"city": "Dubai",
"community": "Dubai Islands",
"subCommunity": "Bay Villas",
"locationPath": "Dubai > Dubai Islands > Bay Villas",
"latitude": 25.319077,
"longitude": 55.327553,
"agencyName": "11Prop Realty",
"agencyReraNumber": "36449",
"contactName": "Ahmed Cheema",
"phone": "+971503218049",
"whatsapp": "971545695868",
"amenities": ["Swimming Pool", "Gym or Health Club", "Balcony or Terrace"],
"coverPhoto": "https://images.bayut.com/thumbnails/848452927-800x600.jpeg",
"url": "https://www.bayut.com/property/details-15854654.html",
"scrapedAt": "2026-07-26T09:16:00Z"
}

How to use

There are two simple ways to target the listings you want. Both take a few seconds to set up.

Option A — By city + filters

Best when you want everything in an emirate that matches a set of criteria (price band, bedrooms, property type).

  1. Set purpose to for-sale or for-rent.
  2. Choose your emirate with city (e.g. dubai).
  3. Add filters such as propertyType, priceMin, priceMax, bedsMin, and completionStatus.
  4. Set maxResults to how many listings you want.
  5. Click Start and download the results.
{
"purpose": "for-sale",
"city": "dubai",
"propertyType": "apartments",
"priceMin": 1000000,
"priceMax": 3000000,
"bedsMin": 2,
"completionStatus": "ready",
"sortBy": "newest",
"maxResults": 1000
}

Option B — By community (locationQuery)

Best when you care about a specific neighbourhood. Just type the community name and the scraper resolves it through Bayut's location index.

  1. Set purpose and (optionally) city.
  2. Put the community name in locationQuery (e.g. "Dubai Marina").
  3. Add any filters you want (beds, price, furnishing).
  4. Set maxResults and run.
{
"purpose": "for-rent",
"locationQuery": "Dubai Marina",
"bedsMin": 1,
"rentFrequency": "yearly",
"sortBy": "newest",
"maxResults": 500
}

Input parameters

ParameterTypeDefaultDescription
purposeselect: for-sale, for-rentfor-saleWhether to scrape properties for sale or for rent.
cityselect emirate: dubai, abu-dhabi, sharjah, ajman, ras-al-khaimah, fujairah, umm-al-quwaindubaiThe emirate to search.
citiesarrayAdvanced: multiple emirates in one run.
locationQuerystringFree-text community name (e.g. "Dubai Marina"), resolved via Bayut's location index.
locationSlugsarrayAdvanced: raw location slugs (e.g. "/dubai/dubai-marina").
categoryselect: any, residential, commercialanyHigh-level property category.
propertyTypeselect: any, apartments, villas, townhouses, penthouses, residential-plots, residential-floors, offices, shops, warehouses, commercial-plots, commercial-buildingsanySpecific property type.
querystringFree-text keyword search.
priceMininteger (AED)Minimum price.
priceMaxinteger (AED)Maximum price.
bedsMinintegerMinimum number of bedrooms.
bathsMinintegerMinimum number of bathrooms.
areaMininteger (sqm)Minimum area in square metres.
areaMaxinteger (sqm)Maximum area in square metres.
furnishingStatusselect: any, furnished, unfurnished, partly-furnishedanyFurnishing filter.
completionStatusselect: any, ready, off-plananyReady vs off-plan filter.
rentFrequencyselect: any, yearly, monthly, weekly, dailyanyRent period (rentals only).
sortByselect: default, newest, price-asc, price-descdefaultSort order of results.
languageselect: en, arenLanguage for text fields.
maxResultsinteger500Maximum listings to return.
proxyConfigurationobjectOptional proxy settings (not required).

A complete input using most options:

{
"purpose": "for-sale",
"city": "dubai",
"cities": [],
"locationQuery": "Dubai Marina",
"locationSlugs": [],
"category": "residential",
"propertyType": "apartments",
"query": "",
"priceMin": 1000000,
"priceMax": 5000000,
"bedsMin": 2,
"bathsMin": 2,
"areaMin": 90,
"areaMax": 300,
"furnishingStatus": "any",
"completionStatus": "ready",
"rentFrequency": "any",
"sortBy": "newest",
"language": "en",
"maxResults": 1000
}

Output example

Each item in the dataset looks like this:

{
"externalID": "15854654",
"referenceNumber": "103583-6vnOsx",
"title": "Luxury Waterfront Villa | Private Beach Access | Premium Island Living",
"purpose": "for-sale",
"price": 4650000,
"currency": "AED",
"beds": 3,
"baths": 3,
"areaSqm": 314.2,
"areaSqft": 3382,
"category": "Residential",
"propertyType": "Villas",
"completionStatus": "under-construction",
"furnishingStatus": "unfurnished",
"isVerified": true,
"productTier": "superhot",
"city": "Dubai",
"community": "Dubai Islands",
"subCommunity": "Bay Villas",
"locationPath": "Dubai > Dubai Islands > Bay Villas",
"latitude": 25.319077,
"longitude": 55.327553,
"agencyName": "11Prop Realty",
"agencyReraNumber": "36449",
"contactName": "Ahmed Cheema",
"phone": "+971503218049",
"whatsapp": "971545695868",
"amenities": ["Swimming Pool", "Gym or Health Club", "Balcony or Terrace"],
"coverPhoto": "https://images.bayut.com/thumbnails/848452927-800x600.jpeg",
"url": "https://www.bayut.com/property/details-15854654.html",
"scrapedAt": "2026-07-26T09:16:00Z"
}

Tips for best results

  • Use locationQuery for precise areas. Typing a community name like "Business Bay" or "Palm Jumeirah" is more accurate than relying on the emirate alone.
  • Narrow filters to beat the 50,000 cap. Bayut limits deep pagination to 50k results per query. If a search is huge, split it by price band, bedrooms, or property type to capture everything.
  • For rentals, always set rentFrequency. yearly is standard in the UAE, but set monthly, weekly, or daily for short-term stock so prices are comparable.
  • Sort by newest for fresh leads. New listings mean agents who are actively working the deal — ideal for outreach.
  • Filter isVerified listings (post-run) when you only want TruCheck-verified properties with confirmed details.
  • Know your area units. areaSqm is in square metres and areaSqft is the same figure in square feet — pick whichever your audience expects and don't mix them.
  • Raise maxResults when you need volume; lower it when you're testing filters to save time and cost.
  • Use phone and whatsapp for outreach. These fields power your lead lists — WhatsApp especially is the primary channel for UAE property inquiries.
  • Combine priceMin/priceMax with bedsMin to build a tight buy-box that surfaces only relevant investment stock.
  • Switch language to ar if you need Arabic titles and location names for a local-facing product.

Integrations

Apify makes it easy to send scraped listings wherever you work:

  • Google Sheets — push results straight into a spreadsheet for analysis or sharing.
  • Slack — get notified with new listings or run summaries in a channel.
  • Zapier — connect Bayut data to 6,000+ apps without code.
  • Make (Integromat) — build visual automations that route listings to your tools.
  • Webhooks — fire a POST to your own endpoint the moment a run finishes.
  • Schedule — run the scraper hourly, daily, or weekly to keep your data fresh automatically.

API usage

You can trigger the scraper from anywhere. Replace <YOUR_TOKEN> with your Apify API token.

cURL

curl -X POST "https://api.apify.com/v2/acts/logiover~bayut-scraper/runs?token=<YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"purpose": "for-sale",
"city": "dubai",
"propertyType": "apartments",
"priceMax": 3000000,
"maxResults": 500
}'

Node.js (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_TOKEN>' });
const run = await client.actor('logiover/bayut-scraper').call({
purpose: 'for-sale',
city: 'dubai',
propertyType: 'apartments',
priceMax: 3000000,
maxResults: 500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient("<YOUR_TOKEN>")
run = client.actor("logiover/bayut-scraper").call(run_input={
"purpose": "for-sale",
"city": "dubai",
"propertyType": "apartments",
"priceMax": 3000000,
"maxResults": 500,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Use with AI agents (MCP)

The Bayut Scraper works with AI agents through the Model Context Protocol (MCP). Once connected via the Apify MCP server, an assistant like Claude can call the scraper directly, pass in filters, and reason over the returned listings — no glue code required. That means you can ask in plain language for a lead list or a price comparison and get structured results back.

Example prompt: "Using the Bayut Scraper, find all ready 2-bedroom apartments for sale in Dubai Marina under 3,000,000 AED, then give me the five cheapest with their price, area in sqm, and the listing agent's phone and WhatsApp."

FAQ

Is the Bayut Scraper really keyless?

Yes. It uses Bayut's public Algolia search backend directly, so there's no API key, no login, and no cookies to manage. You just set your filters and run it.

Which emirates does it cover?

All seven: Dubai, Abu Dhabi, Sharjah, Ajman, Ras Al Khaimah, Fujairah, and Umm Al Quwain. You can target one via city or several via cities.

Does it handle both sale and rent?

Yes. Set purpose to for-sale or for-rent. For rentals you can also filter by rentFrequency (yearly, monthly, weekly, or daily).

Do I actually get the agent's phone and WhatsApp?

Yes. Every listing includes contactName, phone, and whatsapp, along with the agencyName and agencyReraNumber — ideal for building outreach and lead lists.

How many listings can I get per run?

A single run commonly returns hundreds to thousands of listings. You control the ceiling with maxResults.

What is the 50,000 cap?

Bayut's search backend limits deep pagination to 50,000 results per query. To pull more than that from a broad search, split it into narrower queries (by price band, bedrooms, or property type).

Are prices returned as numbers?

Yes. The price field is a numeric value in AED (for example 4650000), so you can sort, filter, and calculate on it directly. The currency field is always AED.

Can I tell off-plan from ready properties?

Yes. The completionStatus field returns ready, under-construction, or off-plan, and you can filter runs with the completionStatus input.

Can I export the data?

Absolutely. Results are stored in an Apify dataset and can be downloaded as JSON, CSV, or Excel, or accessed through the API and integrations like Google Sheets and Zapier.

The scraper only collects publicly available listing data. You are responsible for how you use it, including compliance with Bayut's Terms of Service and applicable data-protection laws. See the section below.

How fresh is the data?

Data is pulled live at the moment you run the scraper, and each record carries a scrapedAt timestamp plus the listing's own createdAt and updatedAt. Schedule regular runs to keep it current.

Yes — see the Related scrapers section below for other UAE and international property tools.

This scraper collects only publicly available property data that Bayut already displays on its website. It does not bypass logins or access private information.

That said, you are responsible for how you use the data. Some fields (agent names, phone numbers, WhatsApp) are personal data, and how you store, process, and contact people is governed by applicable privacy and data-protection laws (such as the UAE's PDPL and, where relevant, GDPR). You should also review and respect Bayut's Terms of Service. Use the output responsibly and lawfully.

Looking to expand your property data coverage? Check out these other logiover scrapers:

  • Dubizzle Scraper — listings from Dubizzle, the UAE's other major property and classifieds marketplace.
  • Property Finder Scraper — properties, prices, and agents from Property Finder across the UAE.
  • Zoopla Scraper — UK residential sale and rental listings from Zoopla.
  • UK Land Registry Scraper — official sold-price and property ownership data for England and Wales.