Developers · AI agents

Dubai property facts for AI agents

An MCP server and a REST API with the same tools, for 293 areas across Dubai: fair price ranges from registered sales (apartments also by building), new Ejari rents, comparables, a quarterly sale and rent index and a 12-month forecast with a public backtest. Every answer says how old the data is, where it comes from and when it abstains.

MCP (Streamable HTTP, no login): https://fairsqft.com/mcp
REST: https://fairsqft.com/api/v1/ · openapi.json
Areas: 293 DLD master projects, data as of 2026-10-13: 36 with full coverage, 65 partial and 192 where we abstain on prices (rents and comparables still show when there are enough). Busiest with full coverage: Dubai Marina, Downtown Dubai, International City Phase 1, Discovery Gardens, DMCC Master Community, Palm Jumeirah, Meydan One Community, Sobha Hartland.

Connect

  • Claude (claude.ai or Desktop): Settings → Connectors → Add custom connector → https://fairsqft.com/mcp.
  • Claude Code: claude mcp add --transport http fairsqft https://fairsqft.com/mcp
  • ChatGPT (developer mode), Cursor, VS Code and other MCP clients: add a remote server with that URL.
{
  "mcpServers": {
    "fairsqft": { "url": "https://fairsqft.com/mcp" }
  }
}

Tools

ToolWhat it does
list_areas(query?, coverage?, property_type?, limit?, detail?)Dubai areas covered, with data freshness and coverage level.
get_area_snapshot(area, segment?, building?)Price and rent ranges from registered DLD deals and Ejari contracts, with sample sizes, 12-month forecast interval and our public backtest. Abstains when the sample is too small.
check_price(area, property_type, bedrooms | layout, size_sqft? | plot_sqft? + bua_sqft?, building?, price_aed, intent: buy | rent)Compares an asking price or rent against the fair range from real closed deals in the same segment.
get_comparables(area, segment, building?, months = 12, limit = 10)Recent registered sales in the segment: date, price, size, type.
estimate_rent(area, segment)Rent range from new Ejari contracts started in the last 12 months, with n.
get_market_trend(area)Quarterly sale and rent index for the area.
get_broker_guides(area, topic?)Broker-attributed facts about the area (author BRN, date, source), only those published with the broker's permission.
start_brief(area, property_type, bedrooms, budget_aed, timeline?, financing?, must_haves?)Prepares a Brief Battle request: brokers in the area compete for 72 hours with real units, ranked against DLD fair value. Returns a link the buyer opens to confirm and submit; nothing is sent until the buyer confirms.

Every answer carries as_of, sources (DLD open data, with links), method_url, abstain with a reason, attribution, licence and the disclaimer. When a segment has too few registered deals, the tool abstains instead of guessing: please pass that on to your user.

Areas accept names or slugs ("Dubai Marina", "JVC", "jumeirah-park"); an ambiguous name returns the candidates. Apartments are priced by area, type and bedrooms, and by building when DLD has at least 6 ready sales of that type in the building in 12 months. Rents come from Ejari, which has no building, so they are by area.

start_brief does not post anything. It returns a prefilled link to fairsqft.com/brief; the buyer adds their email there and confirms. Brokers see the brief only after that, without the buyer's contact details. It runs in the areas where verified brokers have joined.

Examples

MCP, one call:

curl -s https://fairsqft.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"check_price",
       "arguments":{"area":"jumeirah-park","property_type":"villa","bedrooms":4,
                    "bua_sqft":5000,"price_aed":9000000}}}'

The same question over REST:

curl -s 'https://fairsqft.com/api/v1/areas/jumeirah-park/check-price?property_type=villa&bedrooms=4&bua_sqft=5000&price_aed=9000000'

The answer (shortened):

{
  "abstain": false, "reason": null,
  "segment": "villa-4br", "verdict": "within_range",
  "vs_median_pct": -4.8, "fair_range_aed": [8310000, 11200000],
  "n_sales_12m": 38, "confidence": "high",
  "comparables": [ … five closest-size registered sales … ],
  "as_of": "2026-10-13", "sources": [ … DLD open data … ],
  "method_url": "https://fairsqft.com/method/",
  "attribution": "Source: Dubai Land Department (DLD) open data, published on data.dubai. …",
  "licence": { "name": "Dubai Open Data Licence (data.dubai)", … },
  "disclaimer": "Based on Dubai Land Department open data. Not a valuation, not financial advice."
}
REST endpointTool
GET /api/v1/areaslist_areas
GET /api/v1/areas/{area}/snapshotget_area_snapshot
GET /api/v1/areas/{area}/check-pricecheck_price
GET /api/v1/areas/{area}/comparablesget_comparables
GET /api/v1/areas/{area}/rentestimate_rent
GET /api/v1/areas/{area}/trendget_market_trend
GET /api/v1/areas/{area}/broker-guidesget_broker_guides
GET /api/v1/brief-linkstart_brief

Query parameters are the tool's arguments. Full schema: /api/v1/openapi.json.

Terms

  • Free. To keep it up for everyone there is a technical rate limit of 60 requests a minute and 600 an hour per IP address. Please cache answers: the data changes only when as_of changes.
  • Licence: the figures are derived from Dubai Land Department open data and are offered under the same Dubai Open Data Licence, with no additional terms from us. That licence asks you to credit the Dubai Land Department and link the source dataset (each answer's sources), and not to suggest that the DLD or the Government of Dubai endorses your product. Showing the as_of date helps your users. A mention of FairSqft is welcome but not required.
  • Not endorsed by the DLD or the Government of Dubai. FairSqft is independent.
  • No warranty. Figures come from public records and statistical methods, as described in how we price and forecast. They are not a valuation and not financial advice.
  • No portal data and no listings. Nothing here comes from Property Finder, Bayut or other portals, and the API does not list units for sale or rent.
  • No personal data. Comparables carry no unit or plot numbers. We log the tool, the area and the kind of client for each call; we never store IP addresses, only a hash that changes every day and cannot be reversed.
  • Contact: hello@fairsqft.com. Tell us if you build something with it, or if a number looks wrong.

Operated by Soft Dev FZ LLC (about). See also our terms and privacy notice.