FOR PROPERTY DATA BUILDERS

Dubai projects API

Connect your application to Dubai Off Plan Hub project, community and developer data through a simple JSON API.

QUICK START

Make your first request

Create an API client in the admin dashboard. Copy the API key and secret when they are shown, then send both values as request headers.

Base URLhttps://dubaioffplanhub.com/api/v1
curl --request GET \
  --url "https://dubaioffplanhub.com/api/v1/projects?limit=25" \
  --header "X-API-Key: YOUR_API_KEY" \
  --header "X-API-Secret: YOUR_API_SECRET"

Keep your secret on the server. It is displayed only once when a client is created or regenerated.

Authentication

Every API request requires an active API key and API secret. Pass the credentials in HTTP headers over HTTPS in production.

HeaderRequired value
X-API-KeyYour client API key
X-API-SecretYour client API secret

Suspended or revoked clients cannot make requests. API usage, response status and request timing are recorded for active clients.

Endpoints

MethodEndpointDescription
GET/projectsPaginated Dubai off-plan projects.
GET/projects/{slug}One project by its URL slug.
GET/communitiesAvailable communities with project totals.
GET/communities/{slug}A community and its projects.
GET/developersAvailable developers with project totals.
GET/developers/{slug}A developer and its projects.

Endpoint paths are relative to https://dubaioffplanhub.com/api/v1.

Filters and pagination

The projects collection accepts the following optional query parameters.

ParameterExamplePurpose
communityjvcFilter by a community slug or name.
developeremaarFilter by a developer slug or name.
statusunder-constructionFilter by project status.
property_typeapartmentFilter by property type.
min_price1000000Set a minimum starting price in AED.
max_price3000000Set a maximum starting price in AED.
qmarinaSearch project names, communities and developers.
page2Page number. Defaults to 1.
limit25Results per page. Defaults to 25; maximum is 100.
https://dubaioffplanhub.com/api/v1/projects?community=jvc&property_type=apartment&min_price=1000000&page=1&limit=25

Response format

Successful requests return JSON with success, data and, for collections, pagination metadata.

{
  "success": true,
  "data": [{"name": "…", "slug": "…", "community": "…", "developer": "…", "price_from": "…"}],
  "meta": {"page": 1, "limit": 25, "total": 562, "total_pages": 23}
}

Fields reflect the current project records. Values unavailable in the source data may be empty or null.

Errors and rate limits

HTTP statusCodeMeaning
401UNAUTHORIZEDThe API key or secret is missing or invalid.
404NOT_FOUNDThe requested resource does not exist.
429RATE_LIMITEDThe client has reached its daily request allowance.
503SERVICE_UNAVAILABLEThe API cannot connect to its data source.
{"success":false,"error":{"code":"UNAUTHORIZED","message":"Invalid API credentials."}}

Request limits are assigned to each client by an administrator. Check the API client area for your current status and daily allowance.