Dubai Land Department transactions as JSON API
Dubai DLD Property Transactions API is a pay-per-record Apify Actor by Daemon Data that returns Dubai Land Department sales, mortgages and gifts with AED value and price/sqm as JSON, CSV or Excel. It costs $0.001 per transaction with the default options ($1.00 per 1,000); no login to the source site, no proxy, no browser, and the same input runs from the Apify console, one REST call, Python, Node.js, n8n or an AI assistant through MCP.
Daemon Data Dubai DLD Property Transactions API on Apify Listing as plain text
Checked on 18 Oct 2026
In the week to 18 Oct 2026 the register recorded about 4,100 transactions: 2,600 sales (1,650 off-plan, 950 ready), 1,300 mortgages and 160 gifts; about 2,500 of the sales were residential and 220 were land plots. On 21 Oct 2026 the last-24-hours example returned 1,000 transactions in 6 seconds.
Why teams use it
- Registered prices, not asking prices. Listing portals show what sellers want; DLD shows what buyers actually paid.
- Complete. A typical week has 3,000–6,000 transactions; the Actor pages through all of them, 500 at a time.
- Analysis-ready. Numeric AED values and areas, ISO dates, boolean off-plan/freehold flags,
pricePerSqmAedprecomputed, optional Arabic names. - Pre-registration vs completed sale. The
procedurefield separates developer pre-registrations (Sell - Pre registration) from completed sales (Sale,Delayed Sell), and mortgage registrations from modifications. - Open data, no personal data. Published by the Dubai Land Department for reuse; no owner names or contacts are included.
- From an AI assistant:* add the MCP connector
https://mcp.apify.com/?tools=data_daemon/dubai-property-transactionsin Claude, ChatGPT, Cursor or VS Code and ask for the data in plain words.
Output fields
The most useful top-level fields with values from a real record; the full list is transactionNumber, transactionDate, transactionDateTime, group, groupId, procedure, procedureId, usage, offPlan, freehold, area, areaId, project, masterProject, propertyType, propertySubType, rooms, parking, buildingAge, parcelId, propertyId, transactionValueAed, procedureAreaSqm, actualAreaSqm, pricePerSqmAed, nearestMetro, nearestMall, nearestLandmark, totalSellers, totalBuyers, source, scrapedAt. Per-field notes and the OpenAPI definition are on the Apify API page.
| Field | Type | Example |
|---|---|---|
transactionNumber | string | "11-29816-2026" |
transactionDate | string | "2026-10-14" |
transactionDateTime | string | "2026-10-14T12:19:09" |
group | string | "Sales" |
procedure | string | "Sale" |
usage | string | "Residential" |
offPlan | boolean | false |
freehold | boolean | true |
area | string | "BURJ KHALIFA" |
project | string | "BURJ KHALIFA TOWERS" |
masterProject | null | null |
propertyType | string | "Unit" |
propertySubType | string | "Flat" |
rooms | string | "2 B/R" |
parking | string | "B2-7328,B2-7328T" |
Input and how to call it
A verified example input (it returned data on 2026-10-23):
{
"transactionGroup": "sales",
"maxItems": 500
}
One HTTP call starts a run, waits for it and returns the records (token from console.apify.com):
curl -X POST "https://api.apify.com/v2/acts/data_daemon~dubai-property-transactions/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"transactionGroup": "sales", "maxItems": 500}'
Python: ApifyClient(token).actor("data_daemon/dubai-property-transactions").call(run_input=...), full file python/dubai-property-transactions.py. Node.js: node/dubai-property-transactions.mjs. n8n: importable workflow.
AI assistant (MCP): add the remote server https://mcp.apify.com/?tools=data_daemon/dubai-property-transactions with header Authorization: Bearer YOUR_APIFY_TOKEN in Claude, ChatGPT, Cursor or VS Code and ask for the data in plain words.
All input fields
| Field | Type | Meaning |
|---|---|---|
fromDate | string | Start of the transaction date range, YYYY-MM-DD (DD/MM/YYYY also accepted). Leave empty to use Days back instead, so a scheduled run never needs a date edit. An invalid date is ignored with a warning. |
toDate | string | End of the transaction date range, YYYY-MM-DD. Defaults to today (UTC). |
daysBack | integer | Used when From date is empty: fetch the last N days up to To date (or today). Default 7, minimum 1, maximum 365; values outside that range are clamped. Set 1 for a daily scheduled feed. All transactions run about 600 rows ($0.60) per working day and 4,000 ($4) per week; DLD registers nothing on weekends, so a weekend run returns 0 rows and costs nothing. |
transactionGroup | string | Filter by DLD transaction group: all, sales, mortgages or gifts. Weekly volume in Oct 2026: all about 4,000 rows ($4.00), sales about 2,600 ($2.60), mortgages about 1,300 ($1.30), gifts about 160 ($0.16). |
offPlan | string | Off-plan (developer pre-registration) vs completed properties: all, offplan or ready. Of about 2,600 weekly sales, roughly 1,650 are off-plan and 950 ready. |
freehold | string | Freehold vs non-freehold tenure: all, freehold or nonfreehold. |
usage | string | Property usage: all, residential or commercial. Of about 2,600 weekly sales, roughly 2,500 are residential and 70 commercial. |
propertyType | string | Property type: all, unit (apartments and villa units), building or land. Land plots are about 220 of the 2,600 weekly sales. |
includeArabic | boolean | Add an arabic object with the Arabic names for area, project, procedure etc. No extra charge. |
maxItems | integer | Stop after this many transactions (0 = all in range). Each transaction costs $0.001, so the default 200 = $0.20 and 2,000 = $2.00. A typical week has 3,000-6,000 transactions. |
sort | string | Sort order by DLD transaction number: TRANSACTION_NUMBER_ASC or TRANSACTION_NUMBER_DESC. Matters only when maxItems cuts the range short. |
areaId | string | Advanced: DLD internal area id, passed through to the gateway. The transactions feed returns areaId 0 on every row and, as of October 2026, 0 rows for any id sent here, so ids cannot be looked up from the output and this filter is not usable. Leave empty and filter on the area name in the results. |
Price
$0.001 per transaction ($1.00 per 1,000). List prices for Apify Free and Starter plans; Scale and Business plans pay 15% to 30% less.
| Event | Price | Per 1,000 | Charged when |
|---|---|---|---|
| Transaction | $0.001 | $1.00 | One Dubai Land Department transaction record. |
Worked example: the input above, capped at 500 transactions, costs at most $0.5. Apify's free plan includes $5 of usage a month, about 5,000 transactions; the Actor's own compute is included in the per-record price, and records skipped by filters, de-duplication or only-new mode are not charged.
What it is not for
Listings/asking prices; rental contracts; other emirates. The data belongs to its publisher; the Actor reads public pages and endpoints and leaves out personal contact details.
Ready-made example pages
Saved inputs you can run with one click on Apify (Examples tab); each has its own page:
- Dubai property sales in the last 7 days (DLD): Every Dubai property sale registered with the Dubai Land Department in the last 7 days: price in AED, price per sqm, area, project, rooms and off-plan/ready flag. Official DLD open data.
{"transactionGroup": "sales", "maxItems": 5000} - Dubai off-plan transactions this week: Off-plan property sales registered with the Dubai Land Department this week: developer project, area, unit type, AED price and price per sqm. Official DLD open data.
{"transactionGroup": "sales", "offPlan": "offplan", "maxItems": 5000} - Dubai mortgages registered this week (DLD): Mortgage registrations recorded by the Dubai Land Department in the last 7 days: mortgage value in AED, area, project, property type and procedure. Official DLD open data.
{"transactionGroup": "mortgages", "maxItems": 5000} - Dubai land plot sales in the last 7 days (DLD): Every land plot sale registered with the Dubai Land Department in the last 7 days: price in AED, plot area, price per sqm, area, master project and freehold flag. Official DLD open data.
{"transactionGroup": "sales", "propertyType": "land", "maxItems": 2000} - Dubai ready (secondary) property sales, last 7 days (DLD): Ready (completed, non-off-plan) property sales registered with the Dubai Land Department in the last 7 days: AED price, price per sqm, area, project, rooms and property type. Official DLD open data.
{"transactionGroup": "sales", "offPlan": "ready", "maxItems": 3000} - Dubai commercial property sales this week (DLD): Offices, shops and other commercial units sold in Dubai and registered with the Dubai Land Department in the last 7 days: AED value, price per sqm, area, project and size.
{"transactionGroup": "sales", "usage": "commercial", "maxItems": 5000} - Latest Dubai property transactions, last 3 days (DLD): The newest sales, mortgages and gifts registered with the Dubai Land Department in the last 3 days (3 days so that weekends are covered): AED value, price per sqm, area, project, rooms and size. Official DLD open data. S
{"daysBack": 3, "sort": "TRANSACTION_NUMBER_DESC", "maxItems": 3000} - Dubai DLD property transactions, last 24 hours, as JSON: Every Dubai Land Department transaction registered in the last day: sales, mortgages and gifts with area, project, property type, size and AED value, as JSON or CSV. Schedule it daily for a transaction feed.
{"daysBack": 1, "transactionGroup": "all", "sort": "TRANSACTION_NUMBER_DESC", "maxItems": 1000}
Questions buyers ask
How much does it cost to get Dubai property transactions?
$0.001 per transaction. A full week of all DLD transactions (about 4,100 rows) costs about $4.10; a week of sales alone about $2.60.
Is this the official DLD data?
Yes. It reads the Dubai Land Department's open-data transactions service, the same register that paid DLD data products resell.
Can I filter by area or off-plan?
Off-plan vs ready, sales / mortgages / gifts, freehold, usage and property type are input filters. For areas, filter the output on the area and project names: DLD's area-id parameter returns no rows and areaId is 0 on every row, so that field is hidden under Advanced.
Does it include price per square metre?
Yes, pricePerSqmAed is computed from the transaction value and the actual area.
Can I run it every day without editing dates?
Yes. Leave fromDate empty and set daysBack to 1; the window moves with the run date.
Alternatives, honestly
| Option | What it gives you | Where it falls short for this job |
|---|---|---|
| Dubai Pulse open-data portal | Official downloads by hand | Manual extracts, cleaning needed, no schedule |
| DXB Interact dashboard | Official charts and lookups | Not a data feed |
| Paid DLD data products | Cleaned data with support | Subscriptions; the register itself is open data |