Saudi Real Estate — Bayut, Wasalt, Aqar.fm, PropertyFinder avatar

Saudi Real Estate — Bayut, Wasalt, Aqar.fm, PropertyFinder

Pricing

Pay per event

Go to Apify Store
Saudi Real Estate — Bayut, Wasalt, Aqar.fm, PropertyFinder

Saudi Real Estate — Bayut, Wasalt, Aqar.fm, PropertyFinder

Saudi-only real estate intelligence across 4 verified platforms: Bayut.sa (72K listings), Wasalt.sa PIF-owned (24K), Aqar.fm, PropertyFinder.sa. REGA license cross-reference, installment plans, Vision 2030 zone tagging, Arabic district normalization. $4/1K listings.

Pricing

Pay per event

Rating

5.0

(1)

Developer

Omar Eldeeb

Omar Eldeeb

Maintained by Community

Actor stats

2

Bookmarked

4

Total users

2

Monthly active users

5 days ago

Last modified

Share

Saudi Real Estate Scraper

Saudi-only real estate intelligence across 4 verified platforms. No UAE-only wrappers pretending to cover KSA. No remote-dev guesses about Arabic district variants. No silent gaps on REGA license cross-reference.

Pulls listings from Bayut.sa (72K+ listings), Wasalt.sa (24K+, PIF-owned), Aqar.fm (1.5M total, #1 in KSA), and PropertyFinder.sa — normalizes everything into a single schema, surfaces the REGA license number as a cross-platform join key, and auto-tags Vision 2030 mega-project zones (NEOM, Red Sea, Diriyah, ROSHN, Qiddiya).


Why use this actor

  • REGA license cross-reference. Saudi Real Estate General Authority license number is the canonical join key across Bayut.sa, Wasalt.sa, and PropertyFinder.sa — surfaced under a single rega_license_number field. Aqar.fm doesn't expose it; that's an honest null, not silent data loss.
  • Installment plan extraction (Aqar.fm-unique). Most Saudi listings expose 2/4/12-month installment splits. No other actor surfaces these as structured fields.
  • Vision 2030 zone auto-tagging. Listings inside NEOM, Red Sea Project, Diriyah Gate, ROSHN developments, Qiddiya, and King Salman Park are auto-tagged via description regex + coordinate bounds.
  • Arabic district normalization. Variant spellings of top-50 KSA districts (النرجس / Narjis / Narjes / Al Narjis) collapse to canonical English + Arabic forms.
  • Per-platform field union, not lowest-common-denominator. PIF/Wasalt's darReference Saudi MoJ ID, Bayut's permitUrl link to rega.gov.sa, Aqar's REGA-declared reference price — all preserved alongside the unified schema.
  • No proxy needed for Aqar / Bayut / Wasalt. PropertyFinder rate-limits pages 2+ from non-US IPs — actor auto-falls-back to Apify US residential proxy on 403.

How to use

  1. Pick one or more platforms in the input form
  2. (Optional) filter by city, category, price range, REGA-verified-only, or Vision 2030 zone
  3. Run. First 10 chargeable events per run are free — try it before committing.

Input examples

Example 1 — Riyadh apartments on Bayut.sa

{
"platforms": ["bayut_sa"],
"cities": ["Riyadh"],
"categories": ["apartment"],
"listingType": "sale",
"maxListingsPerPlatform": 50
}

Example 2 — All 4 platforms, broad sweep

{
"platforms": ["bayut_sa", "wasalt", "aqar", "pf_sa"],
"listingType": "sale",
"maxListingsPerPlatform": 100
}

Example 3 — REGA-verified only (excludes Aqar.fm since Aqar doesn't expose license)

{
"platforms": ["bayut_sa", "wasalt", "pf_sa"],
"cities": ["Riyadh", "Jeddah"],
"listingType": "sale",
"regaVerifiedOnly": true,
"maxListingsPerPlatform": 200,
"fetchBayutRegaDetails": true
}

Example 4 — Vision 2030 mega-project zones only

{
"platforms": ["bayut_sa", "wasalt", "aqar"],
"listingType": "sale",
"vision2030ZonesOnly": true,
"priceMinSar": 2000000,
"maxListingsPerPlatform": 100
}

Example 5 — Aqar.fm with installment plans (3-bed villas in Jeddah)

{
"platforms": ["aqar"],
"cities": ["Jeddah"],
"categories": ["villa"],
"listingType": "sale",
"bedroomsMin": 3,
"priceMinSar": 500000,
"maxListingsPerPlatform": 200
}

Example 6 — PropertyFinder.sa with US proxy enabled (deeper pagination)

{
"platforms": ["pf_sa"],
"cities": ["Riyadh"],
"categories": ["apartment", "villa"],
"listingType": "sale",
"maxListingsPerPlatform": 500,
"useProxy": true
}

Output sample (Bayut.sa, REGA-verified)

{
"listing_id": "bayut_sa:87862279",
"platform": "bayut_sa",
"platform_listing_id": "87862279",
"source_url": "https://www.bayut.sa/en/property/details-87862279/",
"fetched_at": "2026-05-24T11:47:33Z",
"rega_license_number": "7200764863",
"rega_license_url": "https://eservicesredp.rega.gov.sa/public/OfficesBroker/ElanDetails/08de260f-cc78-49d0-86fa-5dbb34b9fd5c",
"rega_license_expires_at": "2026-12-29T00:00:00Z",
"is_rega_verified": true,
"price_sar": 720000,
"rega_declared_price_sar": null,
"installment_plans": null,
"is_auction": false,
"listing_type": "sale",
"rent_period": null,
"property_type": "apartment",
"property_type_raw": "Apartments",
"completion_status": "completed",
"area_sqm": 135,
"plot_area_sqm": null,
"bedrooms": 3,
"bathrooms": 4,
"living_rooms": null,
"furnished": false,
"amenities": ["Air Conditioning", "Built-in Cabinets", "Parking"],
"age_of_listing_days": 12,
"country": "SA",
"city_en": "Jeddah",
"city_ar": "جدة",
"district_en": "Al Nuzhah",
"district_ar": "النزهة",
"region_en": "Makkah Region",
"region_ar": "منطقة مكة المكرمة",
"location_path": ["KSA", "Jeddah", "Al Nuzhah"],
"coordinates": { "lat": 21.623646, "lng": 39.159675 },
"street_name": "فؤاد شاكر",
"street_direction": null,
"street_width_m": null,
"zip_code": null,
"vision_2030_zone": null,
"agent_name_en": "Adel Ayed",
"agent_name_ar": null,
"agent_phone": "+966115009156",
"agent_email": null,
"agent_whatsapp": "966114049994",
"brokerage_name": "Adel Ayed Real Estate",
"brokerage_logo_url": null,
"agent_capacity": "company_broker",
"cover_photo_url": "https://images.bayut.sa/.../cover.jpg",
"photo_urls": ["https://images.bayut.sa/.../cover.jpg"],
"photo_count": 26,
"video_count": 0,
"panorama_count": 0,
"title_en": "Spacious housing annex for sale in Al-Nazha district",
"title_ar": "ملحق سكني واسع للبيع في حي النزهة",
"description_en": null,
"description_ar": null,
"posted_at": "2026-05-12T08:14:11Z",
"updated_at": "2026-05-12T08:14:11Z",
"refreshed_at": "2026-01-05T16:47:34Z",
"is_verified": true,
"is_premium": true,
"is_featured": false,
"platform_score": 375,
"scraping_strategy": "window_state_algolia"
}

Output sample (Aqar.fm, with installment plans + Saudi-unique fields)

{
"listing_id": "aqar:6628451",
"platform": "aqar",
"platform_listing_id": "6628451",
"source_url": "https://sa.aqar.fm/villa-for-sale/jeddah/north-of-jeddah/al-murjan/villa-for-sale-6632320",
"fetched_at": "2026-05-24T11:47:33Z",
"rega_license_number": null,
"rega_license_url": null,
"rega_license_expires_at": null,
"is_rega_verified": null,
"price_sar": 2450000,
"rega_declared_price_sar": 3000000,
"installment_plans": {
"months_2": 1250000,
"months_4": 612500,
"months_12": 204167,
"monthly_rnpl": 12500
},
"is_auction": false,
"listing_type": "sale",
"property_type": "villa",
"area_sqm": 297,
"bedrooms": null,
"living_rooms": null,
"street_direction": "E",
"street_width_m": 12,
"city_en": "Jeddah",
"district_en": "Al Murjan",
"coordinates": { "lat": 21.6752, "lng": 39.1064 },
"vision_2030_zone": null,
"scraping_strategy": "rsc_chunks"
}

Pay-per-event pricing

EventPriceDescription
apify-actor-start$0.01Per run start. Apify default.
listing-fetched$0.004 (= $4/1,000)One normalized listing emitted to dataset. Primary event.
proxy-fetch$0.001 (= $1/1,000)Fires only when PropertyFinder.sa US-proxy fallback engages. Other platforms don't trigger this.

Free trial: first 10 chargeable events per run.

Cost scenarios

ScenarioListings × platformsTotal cost
Solo broker scanning Aqar Riyadh apartments500 listings$2.01
Mid-tier weekly Bayut+Aqar sweep5,000 listings$20.01
REIT monthly full Saudi sweep (4 platforms)100,000 listings$400
Vision 2030 entity quarterly intel (filtered)50,000 listings$200

vs Property Monitor ($135/mo UAE-only) + REIDIN ($1.5K–$5K/mo enterprise) + JLL bespoke reports ($5K–$50K). This actor is API-grade infrastructure at SMB pricing.


Data fields (canonical NormalizedListing schema)

FieldTypeNotes
listing_idstring${platform}:${platform_id}
platformenumbayut_sa / wasalt / aqar / pf_sa
platform_listing_idstringNative ID
source_urlstringDirect listing URL
fetched_atISO 8601When scraped
rega_license_numberstring | nullCross-platform JOIN KEY. Present on Bayut/Wasalt/PF, null on Aqar
rega_license_urlstring | nullDirect link to rega.gov.sa registry (Bayut only)
rega_license_expires_atISO 8601 | nullLicense expiry (Bayut only)
is_rega_verifiedbool | nullPlatform's verified flag
price_sarnumberCanonical Saudi Riyal price
rega_declared_price_sarnumber | nullREGA reference price (Aqar.fm exclusive)
installment_plansobject | null{months_2, months_4, months_12, monthly_rnpl} (Aqar.fm exclusive)
is_auctionbool
listing_typeenumsale / rent / off_plan / auction
rent_periodenum | nulldaily / monthly / yearly
property_typeenumapartment / villa / land / building / commercial / townhouse / penthouse / office / shop / hotel-apartment / other
area_sqmnumber | nullBuilt-up area in sqm
plot_area_sqmnumber | nullLand area (Bayut detail-page)
bedrooms / bathrooms / living_roomsnumber | nullCoerced to numbers (PF gives strings)
furnishedbool | null
amenitiesstring[]Expanded from PF short codes ("WT" → "Water")
age_of_listing_daysnumber | nullParsed from Wasalt Arabic relative time strings
city_en / city_arstring | null
district_en / district_arstring | nullNormalized via top-50 KSA district dictionary
region_en / region_arstring | null
location_pathstring[]Variable depth 2-5 levels
coordinates{lat, lng} | null
street_directionenum | nullN / NE / E / SE / S / SW / W / NW (Aqar.fm exclusive)
street_width_mnumber | nullAqar.fm exclusive
vision_2030_zoneenum | nullNEOM / Red Sea / Diriyah / ROSHN / Qiddiya / King Salman Park
agent_name_en / agent_name_ar / agent_phone / agent_email / agent_whatsappstrings | null
brokerage_name / brokerage_logo_urlstrings | null
agent_capacityenum | nullindividual / company_broker / developer
cover_photo_url / photo_urls[] / photo_count / video_count / panorama_countmedia
title_en / title_ar / description_en / description_arstrings | null
posted_at / updated_at / refreshed_atISO 8601 | null
is_verified / is_premium / is_featuredbooleans
platform_scorenumber | nullPF qs, Bayut indyScore, Wasalt totalScore
scraping_strategyenumnext_data / rsc_chunks / window_state_algolia / dom / graphql

Tips

  • Pair with Egyptian Real Estate Scraper for MENA-wide coverage. Same NormalizedListing-equivalent shape.
  • Pair with Gulf Used Cars if your buyer audience overlaps (Saudi consumers + brokers).
  • fetchBayutRegaDetails: true triggers an extra detail-page fetch per Bayut listing to extract permitNumber + permitUrl + full amenities. Doubles Bayut fetch count.
  • regaVerifiedOnly: true drops Aqar.fm listings (no REGA license exposed). Use when downstream KYB/compliance requires REGA verification.
  • Vision 2030 tagging is conservative — only tags when description matches OR coordinates fall inside tight project bounds. Broader zones (NEOM, Red Sea) require text match; narrower zones (Diriyah, King Salman Park) accept coordinate-only.

FAQ

Q: Why no Sakan.co / OpenSooq KSA / Haraj? A: All three returned YELLOW on the platform spike — Sakan is DOM-only (no JSON state), OpenSooq's KSA finder returns 404 from non-KSA IPs, Haraj's GraphQL endpoint has introspection blocked and would require operation reverse-engineering. Deferred to v1.1+.

Q: Why no Bayut UAE / PropertyFinder UAE / other GCC platforms? A: This actor is Saudi-positioned. For UAE/Qatar/Bahrain/Kuwait coverage, watch for a separate Gulf actor on its own roadmap.

Q: REGA license verification — is the license actually valid? A: We extract and surface the license number + permitUrl (Bayut). We do NOT call rega.gov.sa to verify validity in v1 (REGA portal is geo-locked from non-KSA IPs). Manual verification via the surfaced permitUrl is straightforward. Programmatic REGA cross-reference is a v1.1 add.

Q: Why does Aqar.fm have so few listings in my run? A: Aqar.fm's ?page=N pagination doesn't behave like a flat list — pagination requires Server Actions / RSC streaming we don't yet replicate. v1 collects from /en/all and city-specific category paths. Full inventory walk is a v1.1 enhancement.

Q: What does agent_phone: null mean? A: For platforms that gate phone behind a "click to reveal" UI (Aqar.fm, Wasalt), v1 surfaces null. Bayut.sa and PF.sa expose phone directly in the search-result payload.


This actor extracts publicly available real estate listings from Saudi real estate platforms. Use of the data is governed by each platform's terms of service. The actor does not verify the legitimacy of REGA licenses or the accuracy of listing details. Users are responsible for compliance with applicable Saudi regulations, including REGA, Ejar, and Sakani requirements where relevant. No warranty is provided on data quality or freshness.

Data attribution: Listings sourced from sa.aqar.fm, bayut.sa, wasalt.sa, propertyfinder.sa. Each source retains copyright in its original listing content; we provide a structured derivative for research and intelligence purposes.