Skip to content

Connect Property Finder Data to Claude, ChatGPT & AI Agents (MCP, Free)

UAEPropertyAPI Team · · Updated October 29, 2026

Short answer: yes. UAEPropertyAPI serves Property Finder data (UAE listings for rent and sale, off-plan projects, agents, brokerages, price trends and DLD transactions) as a REST API on RapidAPI. You can plug it into an AI assistant or agent in three ways, and the free Basic plan (700 requests a month) works for all of them:

  1. As an MCP server in Claude Desktop, Claude Code, Cursor and other MCP clients, through RapidAPI’s MCP gateway. No code.
  2. Through Free Live Data MCP, an open-source MCP connector from Happy Endpoint that keeps the tool list small.
  3. As tools in your own agent, using function calling with any LLM.

This guide walks through each one.

What you need first

  1. A free RapidAPI account.
  2. A subscription to UAEPropertyAPI. The Basic plan is free and includes 700 requests a month; see pricing for larger plans.
  3. Your RapidAPI key (X-RapidAPI-Key), shown in the listing’s code examples and in your RapidAPI developer dashboard.

Every tool call your assistant makes is one API request and counts against your plan, exactly like a direct HTTP call. The authentication guide has the details.

Keep the key out of chats. Put it in your MCP config or an environment variable, never in a prompt.

Option 1: RapidAPI MCP gateway (no code)

RapidAPI runs an MCP gateway at https://mcp.rapidapi.com. Point it at this API’s host and it exposes every endpoint as an MCP tool. The tools are named after the endpoints: search-rent, search-buy, search-commercial-rent, search-commercial-buy, search-new-projects, property-details, autocomplete-location, search-agents, search-brokers, agent-properties, broker-properties, get-transactions, get-transactions-v2, get-adrec-transactions, price-trend-of-location, property-insight, real-estate-developer and a few more. That’s 21 in total.

Most desktop clients talk to local MCP servers, so the config uses mcp-remote to bridge to the gateway and send your two headers. You need Node.js installed.

Claude Desktop

Open Settings → Developer → Edit Config and add this to claude_desktop_config.json:

{
  "mcpServers": {
    "uae-property-api": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.rapidapi.com",
        "--header",
        "x-api-host: uae-real-estate-property.p.rapidapi.com",
        "--header",
        "x-api-key: <your-rapidapi-key>"
      ]
    }
  }
}

Restart Claude Desktop. The UAEPropertyAPI tools appear in the tools menu.

Cursor

Add the same mcpServers block to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project), then enable the server in Cursor’s MCP settings.

Claude Code

Add the same block to a .mcp.json file in your project root, or register it from the terminal:

claude mcp add uae-property-api -- npx mcp-remote https://mcp.rapidapi.com \
  --header "x-api-host: uae-real-estate-property.p.rapidapi.com" \
  --header "x-api-key: <your-rapidapi-key>"

Other MCP clients (Windsurf, VS Code and others) take the same command and args.

What happens under the hood

The client opens a session with the gateway (initialize), asks for the tool list (tools/list) and calls tools (tools/call) as JSON-RPC messages. The gateway turns each tool call into a normal GET request to uae-real-estate-property.p.rapidapi.com with your key, then returns the JSON response to the model. You don’t run any server code yourself.

Option 2: Free Live Data MCP (open source)

Twenty-one tools is a lot of tool definitions to load into every conversation. Free Live Data MCP is an MIT-licensed connector from Happy Endpoint. It puts this API, and 47 others, behind just four tools: search_apis, search_endpoints, describe_endpoint and call_endpoint. The model looks up the endpoint it needs, then calls it. Only call_endpoint uses quota.

git clone https://github.com/happyendpointhq/free-live-data-mcp.git
cd free-live-data-mcp
npm ci
{
  "mcpServers": {
    "free-live-data": {
      "command": "node",
      "args": ["/absolute/path/free-live-data-mcp/src/server.mjs"],
      "env": { "RAPIDAPI_KEY": "<your-rapidapi-key>" }
    }
  }
}

Option 3: Tools in your own agent (function calling)

If you’re building your own agent, chatbot or plugin, skip MCP and define the endpoints you need as tools. Here is a tool for rental search, written as JSON Schema:

{
  "name": "search_rentals",
  "description": "Search UAE properties for rent on Property Finder. Call resolve_location first to get location_id. Prices are in AED.",
  "input_schema": {
    "type": "object",
    "properties": {
      "location_id": { "type": "integer", "description": "Property Finder location ID, e.g. 50 for Dubai Marina" },
      "property_type": { "type": "string", "enum": ["apartment", "villa", "townhouse", "penthouse", "hotel-apartment"] },
      "bedrooms": { "type": "string", "description": "Number of bedrooms, e.g. \"1\" or \"2\"" },
      "price_max": { "type": "integer", "description": "Maximum rent in AED" },
      "rent_frequency": { "type": "string", "enum": ["yearly", "monthly", "weekly", "daily"] },
      "sort": { "type": "string", "enum": ["newest", "featured", "price_asc", "price_desc"] }
    },
    "required": ["location_id"]
  }
}

That’s the shape Anthropic’s Messages API expects (input_schema). For OpenAI-style function calling, put the same schema under parameters inside a function tool. Add a second tool, resolve_location, that wraps /autocomplete-location, because every search needs a numeric location ID.

The handler is a plain HTTP call. Return a trimmed result so you don’t fill the model’s context with fields it won’t use:

import os
import requests

HOST = "uae-real-estate-property.p.rapidapi.com"
HEADERS = {"x-rapidapi-host": HOST, "x-rapidapi-key": os.environ["RAPIDAPI_KEY"]}

def call(path, **params):
    res = requests.get(f"https://{HOST}{path}", headers=HEADERS, params=params, timeout=30)
    res.raise_for_status()
    return res.json()

def resolve_location(query):
    places = call("/autocomplete-location", query=query)["data"][:5]
    return [{"location_id": p["id"], "name": p["name"]} for p in places]

def search_rentals(location_id, **filters):
    body = call("/search-rent", location_id=location_id, page=1, **filters)
    return {
        "total_count": body["total_count"],
        "results": [
            {
                "property_id": p["property_id"],
                "title": p["title"],
                "price_aed": p["price"]["value"],
                "period": p["price"]["period"],
                "bedrooms": p["bedrooms"],
                "size": f"{p['size']['value']} {p['size']['unit']}",
                "address": p["address"]["full_name"],
                "verified": p["is_verified"],
                "url": p["property_url"],
            }
            for p in body["data"][:10]
        ],
    }

TOOLS = {"resolve_location": resolve_location, "search_rentals": search_rentals}

def run_tool(name, tool_input):
    """Dispatch a tool call from the model to the matching function."""
    return TOOLS[name](**tool_input)

Your agent loop sends the user’s message with the tool definitions, runs run_tool when the model asks for a tool, and sends the result back. That’s the standard tool-use loop in every major LLM SDK. For more on why structured JSON beats scraped HTML for agents, see Empowering AI Agents with Real-Time Real Estate APIs. For a full worked agent, see Building an AI Real Estate Agent for the UAE Market.

Prompts to try

Once the tools are connected, ask in plain language:

  • “Find 2-bedroom apartments for rent in Dubai Marina under AED 150,000 a year.”
  • “What did 1-bedroom apartments in Downtown Dubai sell for in the last 6 months?”
  • “List off-plan projects in Dubai Creek Harbour with the earliest handover.”
  • “Which brokerages have the most listings in Business Bay?”
  • “Compare average new-lease rents in JVC and Dubai Silicon Oasis.”

The model resolves the area to a location ID first, then calls the right search or transactions endpoint.

Tips for reliable answers

  • Resolve locations first. Searches take a numeric location_id (Dubai 1, Dubai Marina 50, Downtown Dubai 41, Business Bay 36, JVC 73). Tell the model to call autocomplete-location instead of guessing IDs.
  • Keep result sets small. One page of listings is about 38 results. Return the top 10 with the fields that matter, not the whole payload.
  • Prefer verified listings. Filter on is_verified when the agent recommends properties to users.
  • Use transactions for “what does it cost” questions. Asking prices are what landlords want; DLD transactions are what people actually paid. Good answers use both.
  • Watch your quota. An agent that pages through every result can burn requests quickly. Cap pages per question.

Machine-readable docs for agents

The site publishes files written for AI agents, so a model can learn the API without a human in the loop:

  • /llms.txt: a short index of the site and API.
  • /llms-full.txt: the full documentation in one file.
  • /openapi.json: the OpenAPI spec. Use it to generate tools or a client, or to import into tools that read OpenAPI.
  • /mcp.md: MCP setup in one page.
  • Agent skill: instructions an agent can load to call the API correctly.

FAQ

Is it really free? The Basic plan is free and includes 700 requests a month, enough to build and test an agent or plugin. Paid plans raise the limit; see pricing.

Does it work with ChatGPT? The function-calling approach (Option 3) works with OpenAI models. For ChatGPT itself, you can use the OpenAPI spec to build an action, or connect an MCP server where your ChatGPT plan supports custom connectors.

Is this Property Finder’s official API? No. UAEPropertyAPI is an independent, third-party API from Happy Endpoint and is not affiliated with or endorsed by Property Finder (see the disclaimer). It’s for reading public market data, not for managing an agency’s own Property Finder account or leads.

Which data is included? Residential and commercial listings for rent and sale, off-plan projects, agents, brokerages, developers, price trends, community insights, and Dubai (DLD) and Abu Dhabi transaction records. The documentation lists every endpoint and parameter.

Ready to try it? Get a free API key, add the MCP config above, and ask your assistant about the UAE property market.

U

UAEPropertyAPI Team

Building tools for UAE real estate developers

Ready to Build with UAE Real Estate Data?

Get your API key and start making requests in minutes. Free tier available with 700 requests per month.