Bayut Properties Search Scraper (UAE)
Pricing
from $1.26 / 1,000 results
Bayut Properties Search Scraper (UAE)
Property listings from Bayut.com, the UAE's largest property portal: price in AED, rent frequency, beds, baths, area in m² and sqft, location chain with coordinates, agency and agent contacts, verification and listing tier. Rent or sale, any category and location.
Pricing
from $1.26 / 1,000 results
Rating
0.0
(0)
Developer
Ibnu Adzim
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Property listings from Bayut.com, the UAE's largest property portal — Dubai, Abu Dhabi, Sharjah and the other emirates, for rent or for sale: price in AED, rent frequency, bedrooms, bathrooms, area in m² and sqft, the full location chain (emirate → community → sub-community → building) with coordinates, agency and agent contact details, verification status, furnishing, completion status, paid listing tier, photo count, timestamps, and the listing URL.
Need the full listing? This Actor returns search results (the card data). For each listing's full description, amenities, every photo, floor plans, videos and the agent profile, pass this Actor's
urlcolumn to Bayut Properties Detail Listing Scraper.
HTTP only. It reads the structured page state Bayut ships with every search page — the same objects its own front end renders — so every field is the site's own value. No login, no API key, no browser.
What it is for
- Rent and price monitoring by community and property type, on a schedule.
- Agent and agency lead lists — every row carries the agency, agent name and phone / mobile / WhatsApp numbers published on the ad.
- Market research — 24 listings per request, with Bayut's own location and category ids for joining.
Input
| field | what it does |
|---|---|
purpose | to-rent or for-sale. |
category | Bayut's URL slug: apartments, villas, townhouses, penthouse, hotel-apartments, offices, shops, … or property for everything. |
locations | One search per entry — the location path from any Bayut URL: dubai, dubai/dubai-marina, abu-dhabi, sharjah, dubai/jumeirah-village-circle-jvc. |
maxItems | Listings per location (default 100, 0 = no cap). |
maxPages, maxConcurrency, minRequestInterval, proxyConfiguration | Limits and transport. |
Each location gets its own SEARCH_SUMMARY row, followed by its LISTING rows.
Five things about this site worth knowing before you trust a run
1. A category Bayut does not know returns every property type, silently
/to-rent/notacategory/dubai/dubai-marina/ is HTTP 200 with 5,571 real
listings — every type in Dubai Marina — while the real apartments search has
5,441. Nothing errors, and the page even echoes the bogus slug back. This
Actor does not trust the echo: it checks that the rows on page 1 actually
carry the purpose, category and location you asked for. If they don't, the
search stops with zero rows and filterApplied: false, instead of handing
you thousands of listings under the wrong label.
2. There are two totals, and they disagree
For rent / apartments / Dubai the search engine estimates 126,085 matches
(and says itself that the figure is not exhaustive), while the page prints
94,869. Neither is provably right, so the summary carries both, named for
what they are: nbHitsEstimate (with nbHitsIsExhaustive) and
siteDisplayedCount. On a narrower search they converge (Dubai Marina:
5,441 vs 5,448).
3. Page one is an advert slot, not a sample
In the default order the first pages are all superhot — the most expensive
paid tier (30/30 in the verification run). Every row keeps its product
tier and the summary counts them in listingTierCounts, so a first page is
never mistaken for a representative one.
4. area is square metres; the site shows square feet
area: 90.95 is displayed on Bayut as "979 sqft". area is passed through
untouched and areaSqft is added, computed exactly the way the site computes
its label (checked 4/4 against live cards).
5. "Rent" is spelled two ways
The URL says to-rent; every row says purpose: "for-rent". Both are correct —
just don't filter your output on the URL spelling.
Proxy — why UAE residential is the default, and required
Bayut serves an in-house "Security check" JavaScript challenge to every datacenter and non-UAE address measured — 56 of 56 requests across seven TLS fingerprints, from both Apify's datacenter proxy and its bare servers — and the real page to a UAE residential address on every fingerprint tried. It is decided by the IP, not the browser fingerprint. Switching the proxy off or to datacenter will get you an error row explaining exactly that, not empty data.
A page costs about 270 KB of residential transfer (the page is 2.3 MB uncompressed).
Output
LISTING rows are Bayut's own listing objects, untouched (49 fields), plus
areaSqft, url, searchPage, searchRank and the envelope
(_input, _source, _scrapedAt, recordType). Timestamps
(createdAt, updatedAt) are Unix seconds, as Bayut sends them.
{"recordType": "LISTING","externalID": "15736690","title": "Upgraded | Full Marina View | Luxury Furniture","purpose": "for-rent","price": 199900,"rentFrequency": "yearly","rooms": 2,"baths": 3,"area": 127.46297088,"areaSqft": 1372,"furnishingStatus": "furnished","product": "superhot","url": "https://www.bayut.com/property/details-15736690.html"}
Limits — what this Actor does not claim
- Listing detail pages (full description, amenities, all photos) are not fetched; the search page already carries 49 fields per listing.
- Price, bedroom and other query-string filters are not offered: they were not verified against the rows they return, and on this site an unrecognised value is answered with results, not an error.
- The totals are Bayut's own estimates (see 2 above).