# Changelog of MENA Property Gateway — Bayut + Dubizzle + DLD Data (`sian.agency/mena-property-gateway`) Actor

- **URL**: https://apify.com/sian.agency/mena-property-gateway/changelog.md
- **Full Actor documentation**: https://apify.com/sian.agency/mena-property-gateway.md

## Changelog

All notable changes to MENA Property Gateway will be documented in this file.

### \[2026-05-21]

#### 🎉 MENA Property Gateway — Launch!

- **Bayut + Dubizzle in One Run** — Unified UAE property scraping across both top portals in a single Apify job, with `platforms: both` as the default; pick one side if you only need it. Replaces the daily manual two-actor join most UAE agencies do in spreadsheets today.
- **Cross-Platform Agent Matching (Bundle-Unique)** — `AgentMatched` event pairs each agent's Bayut listings with their Dubizzle inventory in a dedicated `_type: agent-match` row, surfacing dual-listed agents, pricing arbitrage, and high-inventory recruitment targets. Unique on Apify Store.
- **Dubai Land Department (DLD) Deed Enrichment** — `DldDeedEnriched` event adds building floor count, parking spaces, off-plan completion %, RERA permit number, and DLD validation URL to every Dubizzle row. Unique on Apify Store.
- **Per-Platform Detail Enrichment** — `BayutDetailEnriched` + `DubizzleDetailEnriched` events add the full upstream `/details` payload (amenities, photos, completionDetails, indyScore) when you need the long form.
- **Unified Row Schema with `source_platform` Discriminator** — One flat row shape across Bayut, Dubizzle, and bundle agent-match rows. No more writing platform-specific transformers downstream.
- **Both `area_sqm` AND `area_sqft` on Every Row** — Bayut returns m² natively, Dubizzle returns ft²; the bundle cross-computes the other unit so your code never does conversion.
- **Bilingual EN+AR Fields Everywhere** — `listingTitle` + `listingTitleAr` + `url` + `url_ar` on both portals; Bayut adds `listingTitleZh` (Chinese) and `listingTitleRu` (Russian) for international-buyer dashboards.
- **5 Search Modes** — `location` (place name, both platforms), `locationId` (numeric ID, both platforms), `coordinates` (lat,lng,radius, Dubizzle only), `polygon` (GeoJSON area, Dubizzle only), `byurl` (paste a Dubizzle search URL).
- **RERA Permit + Off-Plan Metadata** — Every listing surfaces `permit_number`, `completion_status` (`completed` / `off-plan` / `under-construction`), and `is_verified` for compliance and due-diligence workflows.
- **HTML Market Report** — Auto-saved to the key-value store at `report.html` with per-platform breakdown, median price, AED/sqm + AED/sqft, breakdowns by purpose / property type / neighbourhood, and per-query totals.
- **Retry-Helper Rows** — Failed queries land as `_type: retry-helper` rows at the end of the dataset so you can resume the exact failures without rerunning the entire job.
- **FREE Tier with Full Feature Access** — 1 query × 25 listings per platform, every column included (bilingual fields, both area units, RERA permits, HTML market report). No credit card required.

#### 💎 User Benefits

- **Save 5+ hours/week per UAE real-estate agency** that today runs two separate Bayut + Dubizzle scrapers and joins their CSVs by hand
- **One pipeline, two portals** — pipe a single Apify dataset into Snowflake / BigQuery / Postgres / Looker / Tableau without writing platform-specific transformers
- **Honest headline pricing** — `BayutListingExtracted` and `DubizzleListingExtracted` are priced identically ($0.005 BRONZE) so the Apify Store snapshot tells the truth regardless of which platforms you pick
- **Sister-actor parity for bulk rows** — bundle premium lives only on the unique events (DLD, agent matching, detail enrichment) you actually use
- **Bilingual EN+AR coverage out of the box** — region-aware reporting, multilingual SEO landing pages, and bilingual investor newsletters in one dataset

#### 🎯 Use Cases

- **UAE real-estate agencies** running cross-portal inventory sync — replace the daily manual two-actor join with one Apify run
- **Sales teams** scoring agent recruitment opportunities by surfacing high-inventory dual-listed agents across Bayut + Dubizzle
- **Investment desks** performing DLD-verified off-plan due diligence with RERA permit lookup on every Dubizzle row
- **MENA proptech platforms** powering Looker, Tableau, Metabase, or Superset dashboards with one ELT pipeline instead of two
- **Compliance teams** building RERA permit + DLD validation audit trails for anti-money-laundering screens
- **Bilingual UAE brands** publishing Arabic + English market dashboards and investor newsletters from a single dataset
- **Real-estate researchers** benchmarking AED/sqm and AED/sqft across Dubai, Abu Dhabi, Sharjah, and KSA neighbourhoods

#### 🛡️ Reliability

- **Commercial real-estate-data API backbone** with primary + 2 backup keys and silent failover — no anti-bot brittleness
- **Charge-after-success invariant** — every billable event charges only after the corresponding work succeeds; charge failures are non-fatal
- **Per-listing graceful degradation** — a 422 on one row never fails the whole run; failed queries surface as `retry-helper` rows
- **256 MB memory baseline** sized for the two-platform JSON working set + agent-match in-memory caches
