Bayut Scraper | UAE Saudi Egypt Bahrain Qatar avatar

Bayut Scraper | UAE Saudi Egypt Bahrain Qatar

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Bayut Scraper | UAE Saudi Egypt Bahrain Qatar

Bayut Scraper | UAE Saudi Egypt Bahrain Qatar

Scrape Bayut UAE, Saudi Arabia, Egypt, Bahrain & Qatar listings for sale or rent. Extract prices, beds, agency & photos. Bayut API alternative.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

2 days ago

Last modified

Share

Scrape Bayut sale and rent listings across the Middle East — then download structured real estate data as Excel, CSV, or JSON.

This Actor is a practical Bayut API alternative for market research, investor screening, rental comps, and lead lists. Choose a market such as UAE or Saudi Arabia, pick Buy or Rent, and get listing rows with prices, beds, baths, area, agency, verification, amenities, and photos when present on the detail page.

  • Pull homes for sale and apartments for rent from Bayut UAE, Saudi Arabia, Egypt, Bahrain, and Qatar
  • Enrich search results with detail-page fields (description, amenities, off-plan / payment plans, media)
  • Filter by property type (apartments, villas, office-spaces, …) — or paste known search / detail URLs
  • Export to Excel / CSV / JSON, or connect Make, n8n, Zapier, Python, or MCP
  • Pay per event — Actor start + each Dataset listing; no subscription

What does the Bayut Scraper do?

It turns a Bayut search into a clean Apify Dataset of property listings across five MENA markets.

Under the hood, the Actor:

  1. Builds the Bayut search URL for your market, channel, location, and property type
  2. Opens pages in Patchright Chrome (CloakBrowser) with a market-matched residential proxy
  3. Collects listing cards from window.state.algolia.content.hits[]
  4. Optionally opens detail pages and merges window.state.property.data
  5. Writes normalized records you can download or push into automations

Residential proxy matched to the market is recommended. Plain HTTP / curl is blocked by Bayut Captcha on most hosts.


What data can you extract from Bayut?

Data pointBuyRent
Title & listing URL
List price or rent + period
Beds / baths / size (sqm)
Property type & purpose
Market + currency
Address / location tree
GPS coordinates (when shown)
Agency / contact availability
Verification / product labels
Amenities & photo gallery
Off-plan / payment plans
Completion / furnished

Every Dataset row also includes scrapedAt and source = bayut. An OUTPUT / RUN_SUMMARY record in the key-value store reports counts and warnings.


Why scrape Bayut property listings?

Market research and comps

Build sale and rent comps for Dubai, Riyadh, Cairo, Bahrain, and Qatar without copy-pasting from the site.

Investor and off-plan screening

Track prices, completion status, and payment-plan summaries when Bayut exposes them on the detail page.

Lead lists and agency coverage

Collect public agency names, listing URLs, and contact-method availability (without clicking Call / WhatsApp / Email).

Automations and AI agents

Schedule runs and send Datasets to Sheets, Slack, CRM, Make, n8n, Zapier, or an AI agent via Apify MCP / API.


How to scrape Bayut (no code required)

  1. Click Try for free
  2. Choose a market (AE / SA / EG / BH / QA)
  3. Choose a channel (Buy or Rent)
  4. Optionally set location, property type, max listings, and whether to open detail pages
  5. Keep Apify RESIDENTIAL proxy enabled (leave country empty for auto match)
  6. Click Start — open the Dataset tab when the run finishes

Start with maxItems: 5–10 and scrapeDetails: false to verify, then scale up.


Markets covered

CodeSiteDefault locationCurrencyURL style
AEbayut.comdubaiAED/for-sale/{type}/{loc}/
SAbayut.sariyadhSAR/en/for-sale/{type}/{loc}/
EGbayut.egcairoEGP/en/{loc}/{type}-for-sale/
BHbayut.bhbahrainBHD/en/for-sale/{type}/{loc}/
QAbayut.qaqatarQAR/en/for-sale/{type}/{loc}/

Use markets: ["BH", "QA"] or market: "all" for multi-country runs (maxItems is fair-split). Jordan, Oman, and Kuwait are out of scope for now.


Pricing — how much does it cost to scrape Bayut?

Pay per event. No subscription.

EventPriceWhen charged
apify-actor-start (Actor Start)$0.005When a normal run starts (scaled by allocated memory GB; min 1 event)
apify-default-dataset-item (result)$2.50 / 1,000 ($0.0025 each)Each listing written to the default Dataset

User pays platform usage costs: Yes — compute, residential proxy, and other platform usage are billed to the user in addition to event charges.

Example product charges (events only):

ScenarioApprox. event charge
Canary: 10 listings$0.005 + 10 × $0.0025 = $0.030
City scan: 100 listings$0.005 + $0.25 = $0.255
1,000 listings$0.005 + $2.50 = $2.505

Platform usage (especially residential proxy + browser memory) is separate and depends on run duration and memory. Default memory is 2048 MB (≈ 2× Actor Start events under PPE).

Note: The Actor path remains bayut-uae-scraper for API compatibility; the product covers UAE, Saudi Arabia, Egypt, Bahrain, and Qatar.


Input

FieldDescription
market / marketsAE, SA, EG, BH, QA, or all
channelBUY (for-sale) or RENT (to-rent / for-rent)
locationPath slug; empty → market default (dubai, riyadh, cairo, …)
propertyType / propertyTypese.g. apartments, villas, office-spaces (property / all = market all-types)
expandPrimaryCategoriesExpand all into primary slugs instead of one all-types URL
maxItems / maxPagesCaps (1–2000 / 1–100); ≈24 listings per SRP page
maxMarketConcurrencyParallel country browser sessions (default 2)
strictQualityFail run if required Dataset fields are missing (default true)
scrapeDetailsEnrich each card from the listing detail page
startUrlsOptional SRP or LDP URLs (overrides market/channel/type)
proxyConfigurationApify RESIDENTIAL recommended; omit country for per-market match

Open the Input tab in Console for the full form and tooltips.


Output example

You can download the Dataset as JSON, CSV, Excel, or HTML.

{
"id": 11786692,
"listingId": "11786692",
"externalId": "11786692",
"url": "https://www.bayut.com/property/details-11786692.html",
"source": "bayut",
"market": "AE",
"channel": "BUY",
"title": "Spacious 2 Bedroom Apartment in Downtown Dubai",
"price": "AED 2,100,000",
"priceAmount": 2100000,
"currency": "AED",
"numBedrooms": 2,
"numBathrooms": 2,
"propertyType": "Apartments",
"size": 115.5,
"sizeUnit": "sqm",
"address": "Downtown Dubai · Dubai",
"agency": { "name": "Example Realty" },
"scrapedAt": "2026-07-19T04:00:00+00:00"
}

Our scrapers are ethical and do not extract private user data such as emails, phone numbers from lead forms, or WhatsApp chats. They only extract what is publicly shown on listing pages. Personal data may still appear in public listing text; 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. If you are unsure, consult your lawyers. Always respect Bayut’s Terms of Use and robots rules for automated access.

This Actor does not click Call, WhatsApp, Email, or other lead CTAs.


FAQ

Can I scrape Bayut UAE apartments for sale?

Yes. Set market to AE, channel to BUY, location to dubai (or another slug), and propertyType to apartments.

Can I scrape Bayut Saudi Arabia or Egypt?

Yes. Use market: "SA" (default location riyadh) or market: "EG" (default location cairo). Egypt uses SEO URLs such as /en/cairo/apartments-for-rent/.

Does this work as a Bayut API?

There is no official public Bayut listings API for this use case. This Actor is a practical Bayut API alternative that returns structured Dataset rows you can call via the Apify API, schedules, or integrations.

Why do I need a residential proxy?

Bayut challenges non-browser and many datacenter IPs with Captcha. Apify RESIDENTIAL proxies matched to the market country are strongly recommended.

What about Live View / Standby?

Standby mode exposes operational endpoints only (/, /health, /input-example, /openapi.json) — documented in the Standby tab. It does not run a full scrape. Always start a normal Actor run to collect listings.

Can I request Jordan / Oman / Kuwait?

Not yet. Those markets raise a clear input validation error (JO / OM / KW). Supported markets: AE, SA, EG, BH, QA.

Where can I get help?

Open an Issue on the Actor page in Apify Console with the Run ID, input JSON, and a short description of the failure. Include whether Captcha or empty results appeared in the log.


Tips for better Bayut scraping

  • Start small (maxItems: 5, scrapeDetails: false) to validate a market before large runs
  • Leave apifyProxyCountry empty so each market uses a matching residential country
  • Prefer specific propertyType values when you need a category; property / all uses the market all-types slug
  • For multi-market runs, leave location empty so each market uses its default city
  • Raise memory only if the browser is unstable — higher memory increases Actor Start event count under PPE