DM GlobalLuxury

Developers · AI Agents

Property Data Layer

A canonical, source-agnostic API that sits between our database and every consumer — the website, the AI chat, and external AI agents. The inventory is the product: agents can read and reason over it directly.

Entity graph

developer → project → property → unit → amenities → community (location) → nearby landmarks (schools, metro)

Endpoints

GET/api/v1/propertiesList properties. Filters: type, community, developer, minBedrooms, minPrice, maxPrice, offPlan, limit, offset.
GET/api/v1/properties/{slug}Full canonical property with its entire entity graph.
GET/api/v1/projectsOff-plan projects.
GET/api/v1/communitiesCommunities with nearby landmarks (schools, metro stations).
GET/api/v1/developersDevelopers.
GET/api/v1/market?community={name}Recorded sale and rent transactions and a price trend for a community (optional bedrooms).
GET/api/v1/updates?since={date}Listings added or changed since a date (default: last 7 days).
GET/api/v1/openapi.jsonOpenAPI 3.1 contract for the whole API.

For AI agents (A2A)

Personal AI agents can discover this portal from its Agent Card and query it agent-to-agent over JSON-RPC at /api/a2a. Send plain text or name a skill (property-search, project-search, developer-profiles, market-insights, locations, latest-updates, property-details, agent-directory). If nothing on the portal fits, send the buyer's contact details and requirements with sourcing-request and the team sources it from the market. Add an X-Agent-Id header so repeat queries are recognised.

curl -X POST https://dmglobal.me/api/a2a \
  -H 'Content-Type: application/json' -H 'X-Agent-Id: my-agent' \
  -d '{"jsonrpc":"2.0","id":1,"method":"message/send","params":{"message":{
        "role":"user","messageId":"m1",
        "parts":[{"kind":"text","text":"2 bed in Dubai Marina under 3M"}]}}}'

Try it

curl https://dmglobal.me/api/v1/properties?type=villa&offPlan=false
curl https://dmglobal.me/api/v1/properties/{slug}
curl https://dmglobal.me/api/v1/communities