REST API & MCP server
1,757,329 planning applications from 395 UK councils, plus enforcement notices and appeals. Query it as JSON, or plug it straight into Claude, ChatGPT or Cursor as an MCP server.
Every response tells you what we don't have. Coverage varies enormously between councils, and an API that hides that will have you reporting "no planning history" when the truth is "never published".
500 requests a month. No card, no password.
We email a sign-in link to confirm the address. Your key is issued after you click it, and shown once.
What's in it
Also covered: 212,939 planning agents and their approval rates, case officers, ward and postcode summaries. Enforcement notices are published by 153 of 489 councils. Appeals combine Planning Inspectorate cases, enforcement appeals and application-level outcomes — each row is labelled with its source, because they are not equally reliable.
Coverage explorer
Field availability is measured from the rows we actually hold — not from what the council claims to publish. The two disagree often enough that guessing is the main way people get wrong answers out of planning data.
395 councils measured. Try Leeds — it has 100% of descriptions and 0% of received dates.
Pick a council to see what data exists for it.
Two ways in
JSON over HTTPS. One header.
curl -H "X-API-Key: pk_..." \
"https://ukplanningapi.co.uk/v1/applications?postcode=LS29"
Applications, councils, officers, agents, enforcement, appeals, a daily change feed and webhooks. Full documentation →
33 tools your AI assistant can call directly.
{
"mcpServers": {
"planning": {
"url": "https://ukplanningapi.co.uk/mcp",
"headers": { "X-Api-Key": "pk_..." }
}
}
}
Streamable HTTP. Works with Claude, Cursor and VS Code Copilot. Setup guide →
Pricing
Picking a paid plan takes you through free signup first — your Direct Debit is
set up from the dashboard in one more click, and your key works immediately
either way. Usage is visible in your dashboard and via GET /v1/usage,
which is free and keeps working after you hit your limit — so you can always see why.