Dubai Real Estate Data API
Integrate real-time Dubai property market data into your application. Access DLD transactions, rental yield, building analytics, and AI-powered search.
Quick Start
Get API Key
Sign up and request access. Receive your Bearer token instantly.
Make Request
Add your token to the Authorization header.
Get Data
Parse JSON responses with property data from DLD.
Authentication
Base URL
https://api.buyorsell24.comBearer Token Authentication
All API requests require a Bearer token in the Authorization header.
Authorization: Bearer YOUR_API_KEYAPI Endpoints
/transactionsFetch property transactions (sales, rentals, off-plan) from the Dubai Land Department.
Query Parameters
| Parameter | Type |
|---|---|
| type | string |
| area | string |
| min_price | number |
| max_price | number |
| from_date | string (ISO 8601) |
| to_date | string (ISO 8601) |
| limit | integer (max 100) |
| cursor | string |
Response Fields
| Field | Type |
|---|---|
| id | string |
| property_name | string |
| price_aed | number |
| area_sqft | number |
| transaction_date | string (ISO 8601) |
| location | object |
| developer | string |
/api/v1/buildingsPaginated building list with filters. Sub-endpoints: /buildings/Building ID, /buildings/Building ID/stats, /buildings/Building ID/transactions, /buildings/Building ID/units.
/api/v1/areasAll Dubai areas with building counts. Sub-endpoints: /areas/ID, /areas/ID/buildings, /areas/ID/projects, /areas/ID/stats, /areas/ID/transactions, /areas/compare, /areas/summary/NAME.
/api/v1/projectsPaginated project list. Sub-endpoints: /projects/ID, /projects/ID/buildings, /projects/ID/stats, /projects/ID/transactions, /projects/ID/units, /projects/ID/price-trends, /projects/ID/rentals, /projects/top-performing.
/api/v1/rent-contractsEjari rent contracts. Sub-endpoints: /rent-contracts/stats, /rent-contracts/summary, /rent-contracts/trends, /rent-contracts/areas, /rent-contracts/yield-by-area, /rent-contracts/ejari, /rent-contracts/ejari/stats, /rent-contracts/ejari/yield, /rent-contracts/ID/full.
/api/v1/search/propertiesAI-powered semantic property search. Also: GET /search/autocomplete, GET /search/buildings, GET /search/buildings/autocomplete, GET /search/projects, POST /search/describe.
/api/v1/developersDeveloper directory with AI-generated profiles. Sub-endpoints: /developers/ID, /developers/ID/projects, /developers/ID/stats, /developers/ID/transactions.
/api/v1/brokersBroker directory. Sub-endpoints: /brokers/top, /brokers/ID, /brokers/ID/areas, /brokers/ID/stats, /brokers/ID/transactions.
/api/v1/analytics/*Market analytics: /analytics/rental-by-area, /analytics/yield-by-building, /analytics/offplan-premium, /analytics/seasonality, /analytics/top-areas.
/api/v1/maps/*Map data: /maps/areas, /maps/areas/NAME, /maps/bounds, /maps/config, /maps/heatmap/properties, /maps/pois, /maps/pois/categories.
Code Examples
JavaScriptNode.js / Browser
// Fetch Dubai property transactions
const response = await fetch('https://api.buyorsell24.com/api/v1/transactions', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data.transactions);Pythonrequests library
import requests
# Fetch Dubai property transactions
response = requests.get(
'https://api.buyorsell24.com/api/v1/transactions',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
data = response.json()
print(data['transactions'])PHPcURL
<?php
$ch = curl_init('https://api.buyorsell24.com/api/v1/transactions');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
print_r($data['transactions']);
?>Gonet/http
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.buyorsell24.com/api/v1/transactions", nil)
req.Header.Add("Authorization", "Bearer YOUR_API_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}Rate Limits
Startup Lite
requests per minute
Data from 2020 onwards
Startup Growth
requests per minute
AI search + webhooks
Enterprise
unlimited requests
Full historical data from 1998
Error Codes
| Code | Status | Description |
|---|---|---|
| 200 | OK | Request successful |
| 400 | Bad Request | Invalid parameters |
| 401 | Unauthorized | Invalid or missing API key |
| 403 | Forbidden | Insufficient permissions |
| 404 | Not Found | Resource not found |
| 429 | Too Many Requests | Rate limit exceeded |
| 500 | Server Error | Internal server error |
Official SDKs
JavaScript / Node.js
npm install @dynamicweblab/realestate-apiFull TypeScript support, auto-generated types
Python
pip install dynamicweblab-realestateAsync/await support, Pydantic models
PHP
composer require dynamicweblab/realestate-phpPSR-4 autoloading, Laravel integration
Go
go get github.com/dynamicweblab/realestate-goContext support, connection pooling
Ready to Integrate?
Get your API key and start building with Dubai's most comprehensive real estate data.