How to Get Dubai Real Estate Transaction Data via API
If you’re building a valuation tool, an investment dashboard, or a market-research product for the UAE, you eventually hit the same wall: you need real transaction data, not just current asking prices. What did units in Dubai Marina actually rent for last quarter? How have Downtown sale prices moved year-over-year? This guide shows you how to pull that data programmatically.
Asking price vs. transaction data — why it matters
A listing tells you what a seller hopes to get. A transaction tells you what someone actually paid. For anything involving pricing — automated valuations, yield analysis, comparables — you want transaction data, because it’s grounded in closed deals and registered lease contracts rather than aspirational list prices.
In the UAE, this data comes from official registration (the Dubai Land Department for Dubai, ADREC for Abu Dhabi) and covers both sales and rental contracts. The challenge has always been access. That’s what the API solves.
The transactions endpoint
The get-transactions endpoint returns historical transactions for a location. The key parameters:
| Parameter | Required | Notes |
|---|---|---|
location_id | yes | Resolve it from /autocomplete-location |
transaction_type | yes | sold or rented |
property_type | no | apartment, villa, townhouse, … |
bedrooms | no | 0 for studio |
period | no | 1y, 2y, … |
page | no | Pagination, 1-based |
Quick start (cURL)
curl --request GET \
--url 'https://propertyfinder-uae-data.p.rapidapi.com/get-get-transactions?location_id=5003&transaction_type=rented&period=1y' \
--header 'x-rapidapi-host: propertyfinder-uae-data.p.rapidapi.com' \
--header 'x-rapidapi-key: YOUR_API_KEY'
Resolve a location, then pull transactions (Python)
Location IDs come from the autocomplete endpoint, so the typical flow is two calls:
import requests
from statistics import median
HOST = "propertyfinder-uae-data.p.rapidapi.com"
HEADERS = {"x-rapidapi-host": HOST, "x-rapidapi-key": "YOUR_API_KEY"}
# 1. Resolve the location_id for Dubai Marina
loc = requests.get(f"https://{HOST}/autocomplete-location",
headers=HEADERS, params={"query": "Dubai Marina"}).json()
location_id = loc["data"]["locations"][0]["id"]
# 2. Pull the last 12 months of rental contracts
res = requests.get(f"https://{HOST}/get-get-transactions", headers=HEADERS, params={
"location_id": location_id,
"transaction_type": "rented",
"property_type": "apartment",
"period": "1y",
})
hits = res.json()["data"]["hits"]
rents = [h["amount"] for h in hits if h.get("amount")]
print(f"{len(rents)} contracts · median annual rent: AED {median(rents):,.0f}")
Responses follow the standard envelope — {"success": true, "data": {...}} — with the transaction array under the hits key, plus total, totalPages, and page for pagination. Loop page until you’ve collected the full history you need.
Turning transactions into insight
Once you have the raw records, a few conventions keep your numbers honest:
- Annualise rents consistently. A contract’s total amount depends on its duration, so normalise to an annual figure before comparing.
- Use medians, not averages. A handful of penthouse or villa deals will drag an average well above what a typical tenant pays. Medians are far more representative.
- Segment by type and bedroom. Blending villa and apartment rents into one “area rent” hides more than it reveals.
We apply exactly these rules to build our UAE market data pages — for example, the Dubai Marina market report shows median rent by bedroom, rent per square foot, and the multi-year trend, all derived from this endpoint. It’s a good reference for the kind of analysis you can build on top of the raw data.
Abu Dhabi transactions
Abu Dhabi registrations come through a separate source. Use the get-adrec-transactions endpoint for areas like Al Reem Island, Yas Island, and Saadiyat Island. The shape mirrors the Dubai endpoint, so the same code works with a different path.
Want the trend, not the raw rows?
If you only need direction-of-travel rather than every record, the price-trend-of-location endpoint returns rent and price trends for a community directly — handy for charts and summary cards.
Next steps
- Browse precomputed area stats in the UAE market data hub
- Read the full Dubai Rental Market 2025 report
- Learn to analyse UAE rental yields by pairing transactions with listings
- Get a free API key and start pulling data
Transaction data is the foundation of every serious UAE property tool. With one endpoint and a few lines of code, it’s now a request away.
Ready to Build with UAE Real Estate Data?
Get your API key and start making requests in minutes. Free tier available with 700 requests per month.