Dubai Real Estate Scraper — DLD Projects & Transactions
Pricing
$5.00 / 1,000 result rows
Dubai Real Estate Scraper — DLD Projects & Transactions
Scrape Dubai Land Department open data: off-plan projects with completion %, licensed developers, the area and community gazetteer with coordinates, daily market totals, and sales, mortgage or gift transactions by area, community or project with worth, count and price per sqm. No UAE Pass needed.
Pricing
$5.00 / 1,000 result rows
Rating
0.0
(0)
Developer
R.L.
Maintained by CommunityActor stats
0
Bookmarked
12
Total users
8
Monthly active users
6 days ago
Last modified
Categories
Share
Extract Dubai real estate open data from the Dubai Land Department (DLD) — the official Dubai REST platform — as clean, structured JSON. Pull the registry of off-plan projects and licensed developers, the area & community gazetteer (with GPS coordinates), and market transaction data (sales and mortgage) broken down by area, community or project — for one place or for the whole of Dubai.
Anonymous and account-free — no UAE Pass login required. Fast, structured, and straight from DLD's own data API. Export to JSON, CSV, Excel, or the API.
What can you scrape from the Dubai Land Department?
- Off-plan projects — the full DLD project registry (name, status, completion %, developer; with details: location, buildings, lands, facilities).
- Developers — every licensed real-estate developer with logo and registry number.
- Areas & communities — the official gazetteer: 301 areas and 390 communities with ids, English/Arabic names and coordinates.
- Transaction market data — daily totals, and sales or mortgage worth & volume by area,
community or project (worth, count, total area, price per sqm). Leave
locationempty for a whole-of-Dubai breakdown across every area or community in the gazetteer. - English & Arabic output.
What can you use Dubai property data for?
- Real estate market analytics — transaction volumes, values and price-per-sqm by area.
- Off-plan & developer research — project pipelines and developer activity.
- Investment & due diligence — official DLD figures, not portal estimates.
- Data enrichment — join DLD area/community/project ids into your own datasets.
How do the six modes work?
1. Off-plan projects
Input:
{ "mode": "projects", "includeDetails": false, "maxItems": 2000 }
Output (one row per project):
{ "number": "11", "name": "La Vista 03", "status": "Finished","completion_ratio": 100.0, "developer_number": "4","developer_name": "Al Manal Development Fzco" }
(with includeDetails: true each row also carries latitude, longitude, buildings_count, lands_count, facilities.)
Add "query": "emaar" to filter projects by project or developer name.
2. Developers
Input:
{ "mode": "developers", "maxItems": 2000 }
Output:
{ "number": "1", "name": "Meraas Estates (L.L.C)", "name_ar": "مراس العقارية","logo_url": "https://mobile.dubailand.gov.ae/Repository/developers/1.png" }
3. Areas (gazetteer)
Input:
{ "mode": "areas" }
Output:
{ "id": 451, "name": "Al Hebiah Fifth", "name_ar": "الحبيه الخامسة","latitude": 25.0080936770622, "longitude": 55.238181632008 }
4. Communities (gazetteer)
Input:
{ "mode": "communities" }
Output:
{ "id": "A-230", "name": "Abu Hail", "name_ar": "ابو هيل","latitude": 25.2856161749436, "longitude": 55.3303925322859 }
5. Daily transaction totals
Input:
{ "mode": "dailyTransactions", "transactionType": "sales","fromDate": "2026-06-01", "toDate": "2026-06-30" }
Output (one row per day):
{ "date": "2026-06-30T00:00:00", "value": 1726307686.1,"off_plan_value": 808589549.89, "existing_plan_value": 917718136.21 }
6. Transactions by area / community / project
Input:
{ "mode": "transactions", "grouping": "community", "location": "Business Bay","transactionType": "sales", "fromDate": "2026-06-01", "toDate": "2026-09-01" }
Output (one row per entity × property type):
{ "grouping": "community", "entity_id": "A-526", "entity_name": "Business Bay","property_type_id": 1, "property_type": "Unit", "worth": 75185365.0, "count": 28.0,"total_area": 711.24, "per_sqm": 105710.08 }
Leave location empty and you get the whole of Dubai, broken down across all 390
communities (or all 301 areas) — a typical 90-day sales run returns ~350 rows covering ~230
communities. grouping: "project" is the exception: DLD publishes no project gazetteer, so that
grouping needs explicit DLD project ids in ids, and the run stops with a message if they are
missing rather than returning nothing.
Both transaction modes default to the last 90 days when you leave fromDate / toDate empty.
How do I query a Dubai area or community by name?
For transactions by area or community, give location as a name ("Business Bay", "Dubai
Marina") — the scraper resolves it to DLD's internal id automatically, by case-insensitive
substring match against the gazetteer's English name. A short or generic string can therefore
match several entities, and every match is included; give the fuller name to narrow it. Run the
Areas / Communities modes first to browse the exact spellings and ids DLD uses, or pass raw
ids through the advanced ids override.
Which Dubai communities can you name directly?
Verified against live communities and areas runs on 2026-09-27: DLD's gazetteer holds
390 communities and 301 areas. A sample of the places investors actually search for, and
the community id each name resolves to:
| Community / master development | location resolves to |
|---|---|
| Business Bay | A-526 and C-19 |
| Dubai Marina | C-44 |
| Palm Jumeirah | A-410 and C-111 |
| Burj Khalifa (the Downtown market) | A-390 and C-18 |
| Jumeirah Village Circle | C-82 |
| Jumeirah Village Triangle | C-83 |
| Dubai Hills | C-35 |
| DAMAC Hills | C-26 |
| Dubai Creek Harbour | C-30 |
| Dubai South | C-108 |
| Dubai Sports City | C-51 |
| Discovery Gardens | C-27 |
| Silicon Oasis | C-119 |
| Arjan | C-13 |
| Town Square | C-137 |
| International City Ph 1 / Ph 2 & 3 | C-66 / C-67 |
| Mirdif | A-232 |
Two things to know about these ids. The community gazetteer carries two id families: A-###
entries follow DLD's cadastral naming, while C-### entries are the master-development names
(returned in capitals). A name that exists in both families — Business Bay, Palm Jumeirah, Burj
Khalifa — resolves to both ids and you get a row for each; Dubai Marina exists only as a C-
community. And the gazetteer has no "Downtown Dubai" entry: that market is filed under Burj
Khalifa, so use that name (or the id) instead.
What do the DLD terms mean?
- Off-plan vs. completed (existing) — an off-plan property is sold before it is built, straight from the developer; a completed (or "existing", "ready") property already exists and is resold by its owner. In
dailyTransactionsthese are theoff_plan_valueandexisting_plan_valuecolumns of the same day's total; intransactionsmode thepropertyStatusinput picksoffplan,completed, orall. - Sales and mortgage — the two registration types this Actor can return. A sale is a transfer for a price; a mortgage registration is a property pledged against a loan (its "worth" is the loan-backed value, not a purchase price). Pick one per run with
transactionType— they are separate registers and are never mixed in one row. DLD also records gift (hiba) transfers, but publishes no open endpoint for them on this surface, sotransactionType: "gift"is not offered. - Worth, count and per sqm —
worthis the total AED value of the transactions in that row,counthow many there were,total_areatheir combined area in square metres, andper_sqmthe value per square metre. Average deal size isworth / count; these are DLD's own aggregates, not row-level deeds. - Area vs. community — DLD uses two overlapping place hierarchies. An area (sector) is the cadastral land division, with a numeric id (
451, "Al Hebiah Fifth"). A community is the marketing/administrative name people use, with a hyphenated id (A-230, "Abu Hail"). They do not map one-to-one, so pick thegroupingthat matches the geography you want, and expect different ids and names between the two. - Completion ratio — a project's construction progress in percent (
completion_ratio: 100.0means finished). It comes with a textualstatussuch asFinished. - Project number and developer number — DLD's permanent registry ids.
numberon a project row anddeveloper_number/numberon a developer row are what you join the two datasets on, and whatgrouping: "project"expects inids. - Mashrooi — the name of DLD's project/developer registry service, which is where the projects and developers modes read from. It uses a different endpoint and token than the transaction data, which is why those two modes accept different filters.
- UAE Pass — the UAE's national digital identity login. The Actor never uses it: it mints an anonymous guest token instead, which is why only DLD's public open data is in scope.
How much does it cost to scrape Dubai property data?
Pay per result — $5 per 1000 rows ($0.005 each), regardless of type (project, developer, area, community, daily total, or transaction breakdown row). Apify platform usage (compute) is billed on top at standard rates; no proxy traffic is required.
Rows are bounded by maxItems (0 means no limit), so a run's ceiling is maxItems × $0.005.
Setting Max total charge on the run caps it independently.
Known limitations
Project listing order is not stable, so maxItems is a count and not a defined
prefix. Dubai Land Department's project endpoint returns its 3,841 projects in
an order it chooses and gives no way to pin it. Its sort parameter is accepted
and ignored — four interleaved rounds alternating no-sort against sort=name in
one session returned an identical order on every arm, on the project and the
developer endpoint alike, so the Actor no longer sends it. Two runs with
identical input have come back with disjoint sets, and the order moved between
probes minutes apart. The listing also repeats projects across pages — a measured
400 rows held 394 distinct projects.
What that means in practice: a projects run capped by maxItems gives you that
many projects, but not a reproducible "first N", and a long paginated run can
deliver the same project twice. If you need the complete registry, run without
maxItems and de-duplicate on number. The areas, communities,
dailyTransactions and transactions modes are unaffected — they return their
whole result in one response.
Project free-text search is applied by the Actor, not by DLD. The project
endpoint accepts a free-text parameter and ignores it, so query is matched
against the rows as they arrive (project name in English or Arabic, and developer
name). A narrow query therefore pages through the listing to find its matches.
You are billed only for rows delivered, so a query matching nothing costs nothing.
per_sqm is unreliable when you group transactions by community. Checked on
2026-10-12 against worth / total_area on the same row: with
grouping = area all 120 sampled rows reconciled exactly; with
grouping = community, 54 of 120 did not — reporting a per_sqm between
1.9x and 35.9x (median 5.2x) the rate the row's own worth and total_area
imply. It is worst for units: 31 of 37 Unit rows, 9 of 13 Building/Villa,
14 of 70 Land.
total_area is the sound field and per_sqm is the unreliable one. Back-compute
the average property size both ways on those 54 rows and total_area gives a
plausible figure on 53 of them, against 34 from per_sqm — which produces
impossibilities like 1.7 sqm per unit in Madinat Al Mataar and 3.3 in Al Satwa,
where total_area gives 55 and 67 sqm.
So derive the rate yourself as worth / total_area rather than trusting
per_sqm on community rows. Area grouping is unaffected. We have not worked out
what denominator DLD uses for the community figure; the discrepancy is not a
function of count, and the rows do not inherit their parent area's rate.
Some projects carry a placeholder coordinate. Where DLD has no real location
for a project it returns 25.276987, 55.296249 (near the department's own
offices in Deira) rather than null — about a third of sampled project rows. Treat
that exact pair as "unknown", not as a location.
facilities is always empty. DLD returns an empty facilities list for every
project sampled, so the field is present for schema stability but carries no data.
FAQ
Do I need a UAE Pass account, login, or API key? No. The Actor mints an anonymous guest token at the start of each run, so nothing is tied to an identity and there is no key to enter. Only DLD's public open-data surface is reachable that way — the account-gated property wallet and Ejari contract management are out of scope.
Is this official Dubai government data? Yes. Every row comes from Dubai Land Department's own Dubai REST backend — the same endpoints the DLD app uses — not from a listings portal's estimates. Project and developer rows come from DLD's Mashrooi registry service.
What date range do transactions cover? Whatever you ask for with fromDate / toDate (YYYY-MM-DD). Leave them empty and both transaction modes use the last 90 days up to today. The gazetteer, project and developer modes are snapshots and ignore dates.
What does one row contain? It depends on the mode: one project, one developer, one area, one community, one calendar day (dailyTransactions), or one entity × property-type combination (transactions). Every row is charged the same $0.005.
Can I get individual deeds or buyer names? Not from this Actor, and no personal data anywhere. The Dubai REST endpoints it reads are aggregated — worth, count, total_area and per_sqm per area/community/project and property type. DLD does publish per-transaction rows on a different surface — transaction number, date, amount, size, rooms and buyer/seller counts, through the captcha-gated search on its open-data page and in bulk via Dubai Pulse — but not through the app backend this Actor uses. No buyer or seller names are published in either.
Does it include rental contracts or the rent index? No. Rental (Ejari) contract data sits behind UAE Pass, so this Actor covers sales and mortgage registrations plus the project/developer registry only.
Can I schedule it? Yes, with Apify Schedules. dailyTransactions is the natural one to schedule — each run appends the days in its window, so a weekly run keeps a market time-series up to date. The gazetteer changes rarely and does not need rescraping often.
Do I need a proxy? No. The DLD open-data API is not bot-gated, and the Actor works without one; if Apify Proxy is not available on your account the run logs a warning and continues directly.
What happens if my area name does not exist? The run stops with a message telling you the name could not be resolved, rather than silently returning nothing. Check the spelling against the Communities or Areas mode output, or pass the raw id in ids.
Support
Questions or a field you'd like added? Open an issue and we'll help.