Skip to main content

API AI Integration Help

Query the UK's deepest dataset of sales, rentals, short-term-let revenue, HMO yields and environmental risk. One key, 28 endpoints, every UPRN in the country.

Written by Domenico Davis

Get up and running in under 5 minutes

1 -Generate a key

Head to Usage & Billing, pick a tier, and spin up your first key. All keys are live — no sandbox, just real data.

2- Make your first call

Search for any UK address by free text. Returns the UPRN you'll use for every enrichment endpoint.

3 -Explore the reference

28 endpoints across 9 groups. Each page has parameter docs, a live example, and copy-paste code.

Authentication

Every request needs a bearer token in the Authorization header. Keys are tied to your account and auto-generated the moment you subscribe.

  • Pass Authorization: Bearer pmi_live_...

  • Set Accept: application/json

  • Rate limits are per-10-seconds and per-month, tied to tier

  • All responses are JSON, UTF-8


MCP Server

Connect any AI assistant or agent to the PMI API using the Model Context Protocol, Anthropic's open standard for tool calling. One URL, one Bearer token, 28 tools for the LLM to choose from.

Why MCP?

If you're building anything where an LLM needs UK property data (investor agents, lead-gen widgets, due-diligence copilots, valuation chatbots), MCP is the fastest path. Instead of writing REST integration code, you give the LLM a single connection URL and it figures out which tool to call.

How it works

Once you've connected PMI to your AI assistant, it works like this:

You ask a question in plain English

“What’s the rental yield in LS6?” or “Find me 3-bed flats under £200k in Manchester with yields above 7%.”

Your AI works out which PMI tools to use

The model picks one or more of our 28 tools (yields, comparables, listings, planning, risks, etc.) and calls them in the right order, no coding from you.

You get an answer in seconds

The AI gets back live PMI data and weaves it into a normal reply. Credits come off your monthly allowance, exactly the same as if you’d called the REST API yourself.

No new dashboard, no new login, no second invoice. If you can use Claude or ChatGPT, you can use PMI through MCP.


What you get

  • 28 tools: one per REST endpoint, including all Serviced Accommodation tools.

  • Pass-through auth: your existing PMI API key works unchanged.

  • Same billing: MCP tool calls deduct from the same monthly credit allowance as REST calls. They appear in /v1/account/usage under the same endpoint names.

  • Same rate limit: your tier's per-10-second cap applies whether the request comes via REST or MCP.

  • Streamable HTTP: modern transport supported by Claude Desktop, Cursor, ChatGPT, and the official MCP SDKs in Python and TypeScript.


Testing your connection

If a tool isn't behaving, run these cURL commands directly against the server to confirm everything's wired up correctly.

1. Health check (no auth)

The simplest “is the server alive?” check. No API key needed, plain JSON response.

cURL

curl https://api.propertymarketintel.com/health

Expected response:

{"status":"ok"}

2. List available tools (free, requires API key)

Returns the full schema of all 28 tools. No credits used.

cURL

curl -X POST https://api.propertymarketintel.com/mcp \   -H "Content-Type: application/json" \   -H "Accept: application/json, text/event-stream" \   -H "Authorization: Bearer pmi_live_YOUR_KEY" \   -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

About the response format. The MCP server speaks Streamable HTTP, so the response comes back as an SSE stream (lines prefixed with event: message and data: { ... }), not plain JSON. MCP clients like Claude Desktop, ChatGPT, and the official MCP SDK parse this automatically. If you're testing with raw cURL, you'll see the SSE wrapping. That's expected.

3. Call a tool (uses credits)

Example: get the rental yield for outcode LS6 (2 credits).

cURL

curl -X POST https://api.propertymarketintel.com/mcp \   -H "Content-Type: application/json" \   -H "Accept: application/json, text/event-stream" \   -H "Authorization: Bearer pmi_live_YOUR_KEY" \   -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",        "params":{"name":"pmi_rents_yields","arguments":{"outcode":"LS6"}}}'

POST only on the /mcp endpoint. GET requests to /mcp return 405 Method Not Allowed by design. The /health endpoint above accepts GET as you'd expect.


FAQ

Do MCP calls cost more than REST calls?

No, same credit weights, same bucket.

Can I disable MCP for my key?

Not currently. If you don’t connect any client, you’ll generate zero MCP traffic. Get in touch if you need this.

Is there a separate API key for MCP?

No, your existing pmi_live_… key works. Best practice: create a dedicated key per client (Claude Desktop on your laptop, your production agent, etc.) so you can rotate or revoke them independently.

What about latency?

Add ~30–50ms for the MCP-to-REST hop on top of the underlying endpoint’s latency. The MCP server is in the same DigitalOcean region as the REST API.

Streamable HTTP vs SSE vs stdio?

PMI only exposes Streamable HTTP, the modern, supported transport. SSE is deprecated in MCP, and stdio doesn’t make sense for a hosted SaaS.

Did this answer your question?