Bayut Property Scraper avatar

Bayut Property Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Bayut Property Scraper

Bayut Property Scraper

Scrape Bayut.com UAE listings, property details, agency / agent / truBroker lookups, claimed-deals stats, agent stories, and location autocomplete in real time. Search by city or neighbourhood externalID with full filters (purpose, completion status, price, beds, baths, area).

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

ONE API

ONE API

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

6 days ago

Last modified

Share

Bayut.com Property Scraper

Scrape Bayut.com UAE property listings (Dubai, Abu Dhabi, Sharjah, Ajman, RAK, Fujairah, UAQ), full property details, agency / agent / truBroker lookups, claimed-deals stats, agent stories, and location autocomplete — all from one Actor. Backed by realtyapi.io's real-time Bayut API.

⭐️ Found this useful? Please leave 5 stars! Issues / requests: 📬 oneapi.project@gmail.com


What you can do

SectionWhat it doesInput format
🏠 Property DetailsFull details for a specific listingexternalID digits, Bayut listing URL, or details_NNN slug — auto-detected per row
🔎 Search ListingsPaginated UAE property search with full filter setlocation externalID (e.g. 5002 for Dubai), Bayut slug, or Bayut search URL
🔍 AutocompleteLocation lookup: cities, neighbourhoods, sub-communities, towerspartial query string (dubai marina, palm jumeirah)
🏢 Agency DetailsFull agency profile by externalIDdigits
👤 Agents under an AgencyAll agents at one agency, with their slugsagency externalID
👤 Agent DetailsFull agent profile with listing countsagent slug <name>-<externalID>
TruBroker AgentsTop-ranked agents in a locationlocation externalID
📖 Agent StoriesRecent posts/updates an agent has publishedagent externalID
💰 Agent Claimed DealsLifetime deal count + total transaction price (For Sale, For Rent, Wanted)agent externalID

You can fill any combination of sections in a single run — leave the others empty.


Output

Each listing / agent / agency / story / autocomplete suggestion is pushed as one dataset row, flattened to friendly columns plus a Raw column with the original JSON.

ModeExternal IDStatusPrice (AED)BedsBathsSqftTypeCompletionCityCommunityAgency
search/byid11602994active15599999578612Villasunder-constructionDubaiThe Oasis by EmaarHills Field Real Estate
details/property15062791active15599999578612Villasunder-constructionDubaiThe Oasis by EmaarHills Field Real Estate
autocomplete5002locationDubai
trubroker/byid2099259rank 184712Dubai

Plus: Reference Number, Title, Purpose, Rent Frequency, Plot Area Sqft, Permit Number, Furnishing, Verified, Sub Community, Latitude, Longitude, Created At, Updated At, Photo (cover URL), Photo Count, Panorama Count, Video Count, Agent ID, Agent Name, Phone, WhatsApp, Listing URL.

For nested fields (full photo arrays, panoramas, payment plans, amenities, completion details, multi-language titles), the complete upstream JSON is in the Raw column.

Area note: Bayut's API returns area in square metres. The Area Sqft and Plot Area Sqft columns are converted to sqft for you. The areaSqftRange filter is also taken in sqft and converted before sending.


Sample input

{
"property_inputs": [
"15062791",
"https://www.bayut.com/property/details_15062791.html"
],
"search_inputs": ["5002", "dubai-marina"],
"purpose": "for-sale",
"category": "residential",
"completionStatus": "completed",
"priceRange": "min:1000000,max:5000000",
"beds": "3",
"areaSqftRange": "min:1500",
"pages": 2,
"autocomplete_inputs": ["dubai marina"],
"agency_inputs": ["10499"],
"agency_agents_inputs": ["10499"],
"agent_inputs": ["salma-mohamed-mahmoud-hashem-2521536"],
"trubroker_inputs": ["6901"],
"stories_inputs": ["2510010"],
"claimeddeals_inputs": ["1919589"]
}

Search filters (apply to every search_inputs row)

  • purposefor-sale (default) or for-rent.
  • categoryresidential (default) or commercial.
  • completionStatuscompleted (ready), under-construction (off-plan), or empty (any).
  • priceRangemin:X | max:Y | min:X,max:Y in AED.
  • beds, baths — exact integer match (Bayut's API only accepts a single value, not a range). For studios use 0.
  • areaSqftRangemin:X | max:Y | min:X,max:Y in sqft (we convert to sqm internally).
  • furnishingStatusfurnished, unfurnished, partly-furnished, or empty (any).
  • rentFrequencyyearly, monthly, weekly, daily (used only when purpose=for-rent).
  • hasPanorama, hasVideo, hasFloorplan — booleans, true = listings with that asset only.
  • agency_external_ids — comma list (e.g. 10499,29599755) — restrict to those agencies.
  • hitsPerPage — 1–25 (Bayut's max page size). Default 25.
  • pages — pages to fetch per query (1–50). Bayut deep pagination caps around 40 pages.

Pricing

Pay per result — $3 per 1,000 items pushed. Failed inputs return a row with Status: ERROR: ... and are billed the same as a successful row.

To cap spend, set Max paid dataset items on the run page.


Tips

  • Need just one property? Use property_inputs — auto-detects externalID, URL, or details_NNN slug.
  • Pull all listings in a city? Use search_inputs: ["5002"] (Dubai) with pages: 5 for ~125 listings; 5002=Dubai, 6020=Abu Dhabi, 6901=Sharjah, 5891=Ajman, 7008=RAK.
  • Don't know the location externalID? Run autocomplete_inputs first with the area name (e.g. dubai marina) — the first result's External ID is what you want.
  • Find every agent at an agency? Use agency_agents_inputs: ["<agencyID>"] — returns each agent with their slug, ready to drop into agent_inputs.
  • Off-plan only? Set completionStatus: "under-construction".
  • Top agents in a city? Use trubroker_inputs: ["5002"] with purpose=for-sale, completionStatus=completed.
  • Resolve a Bayut search URL? Drop the URL into search_inputs — we extract the location slug and resolve via autocomplete.