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