Planning applications
POST /v1/planning/applicationsThe local planning authority for a postcode or coordinate and the URL of its planning portal; where to look for applications, since council portals are not machine-readable. Free.
Same call over MCP
Planning authority for a locationplanning_applicationsAuthenticate with an API key from the API & MCP Hub. The same call is available as an MCP tool at the same price.
Reference
What POST /v1/planning/applications returns
This tool answers where, not what. Give a location and it returns the local planning authority responsible for it and the address of that authority's planning portal, where the applications, decisions and appeals for the site are published. It does not return the applications themselves: council portals are built for people, differ from one authority to the next and are not machine-readable, and MarketCode does not scrape them.
It is free, and it is paired with planning_designations, which returns the constraints that shape what an application at that location can hope to achieve.
The full description, as the assistant reads it
Give either postcode or location as "lat,lng". UK only.
Reference
When to use it, and when not to
Use it as the first step of application research: it tells you which authority to search and gives you the link. Run planning_designations alongside it for the constraints; run site_appraisal when the question is a site rather than an address, since the dossier carries the live designation checks and the parcel. Where a boundary is uncertain, area_resolve returns the hierarchy a place sits in.
Inputs
Before you call it
Give either postcode (a full UK postcode) or location as "lat,lng". A postcode is placed at its centroid, which is fine for the authority in almost every case; a coordinate from address_resolve is exact for the rare address on a boundary.
- postcode
- The postcode must be a full UK postcode ("SE22 8HN"), not a district. Where a tool works at district grain it truncates the postcode itself.
- location
- Coordinates are WGS84 latitude and longitude, the order a map gives them. A postcode is accepted wherever
locationis, and is usually the easier input.
Request
Calling POST /v1/planning/applications
curl -X POST "https://api.marketcode.ai/v1/planning/applications" \
-H "Authorization: Bearer $MARKETCODE_API_KEY"
-H "Content-Type: application/json" \
-d '{"postcode":"SE22 8HN"}'Send your API key as a Bearer token. Every response carries credits_charged and credits_remaining.
Inputs
Parameters
This endpoint takes no path or query parameters.
Request body
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| postcode | Body | string | No | Full UK postcode, e.g. SW1A 1AA |
| location | Body | string | No | Coordinates as "lat,lng" |
Response
What POST /v1/planning/applications returns for a real request
curl -X POST "https://api.marketcode.ai/v1/planning/applications" \
-H "Authorization: Bearer $MARKETCODE_API_KEY"
-H "Content-Type: application/json" \
-d '{"postcode":"SE22 8HN"}'{
"country": "UK",
"query": {
"postcode": "SE22 8HN"
},
"data": {
"data": {
"postcode": "SE22 8HN",
"lpa_name": "Southwark",
"planning_search_url": "https://planning.southwark.gov.uk/online-applications/search.do?action=advanced",
"applications": [
{
"reference": "17/AP/2957",
"address": "16A 16A LORDSHIP LANE SE22 8HN",
"proposal": "Conversion of upper floors of building from a 5-bed flat to create 1 x 2-bed flat and 1 x 3-bed flat, including construction of a rear dormer roof extension an…",
"status": "Completed",
"decision": "Approved",
"received_date": null,
"decided_date": null,
"url": null,
"lpa_code": "SWK",
"application_type": "Full planning permission",
"distance_m": 1.9,
"source": "gla_datahub"
},
{
"reference": "23/AP/0833",
"address": "16 Lordship Lane SE22 8HN",
"proposal": "Replacement of existing timber shopfront with glass and steel frame shopfront.\r",
"status": "Approved",
"decision": "Approved",
"received_date": null,
"decided_date": null,
"url": null,
"lpa_code": "SWK",
"application_type": "Full planning permission",
"distance_m": 2.3,
"source": "gla_datahub"
},
{
"reference": "23/AP/1974",
"address": "18 Flat B Lordship Lane SE22 8HN",
"proposal": "Rear dormer roof extension and roof lights to the front roof slope.",
"status": "Approved",
"decision": "Approved",
"received_date": null,
"decided_date": null,
"url": null,
"lpa_code": "SWK",
"application_type": "Full planning permission",
"distance_m": 2.7,
"source": "gla_datahub"
},
"… 17 more"
],
"result_count": 20,
"source": "warehouse",
"execution_time_ms": 288.8226509094238
}
},
"credits_charged": 0
}A real response, captured from production and trimmed: arrays to three items, long strings shortened, volatile keys dropped.
Response
Response fields
| Field | Type | Example |
|---|---|---|
| country | string | UK |
| query | object | |
| query.postcode | string | SE22 8HN |
| data | object | |
| data.data | object | |
| data.data.postcode | string | SE22 8HN |
| data.data.lpa_name | string | Southwark |
| data.data.planning_search_url | string | https://planning.southwark.gov.uk/online-applica |
| data.data.applications | array | |
| data.data.applications[].reference | string | 17/AP/2957 |
| data.data.applications[].address | string | 16A 16A LORDSHIP LANE SE22 8HN |
| data.data.applications[].proposal | string | Conversion of upper floors of building from a 5- |
| data.data.applications[].status | string | Completed |
| data.data.applications[].decision | string | Approved |
| data.data.applications[].received_date | null | |
| data.data.applications[].decided_date | null | |
| data.data.applications[].url | null | |
| data.data.applications[].lpa_code | string | SWK |
| data.data.applications[].application_type | string | Full planning permission |
| data.data.applications[].distance_m | number | 1.9 |
| data.data.applications[].source | string | gla_datahub |
| data.data.result_count | integer | 20 |
| data.data.source | string | warehouse |
| data.data.execution_time_ms | number | 288.8226509094238 |
| credits_charged | integer | 0 |
Fields observed in the example response above; a field the example did not exercise is not listed.
Reference
Things that catch people out
- It is the authority, not the history. If you want thirty years of applications in a database, that is a different product; the compare pages say which. This tool gets you to the right portal in one call.
- National parks and some development corporations are planning authorities. A location inside a national park may return the park authority rather than the district council, correctly.
- England only. planning.data.gov.uk covers England. Welsh and Scottish authorities are not returned.
Price and licence
What it costs, and where the data comes from
Planning applications is free over MCP and over REST, and the two surfaces share one credit balance. Free calls need a signed-in account or an API key and appear in your usage, but they never touch your balance.
Credits are granted on sign-up and bought in packs; the pricing page lists every call.
Sources
- planning.data.gov.uk
National planning designations and the local planning authority register
Open Government Licence v3 · England
Related
Endpoints used with Planning applications
- Planning designations at a locationFree
planning_designationsEvery planning designation affecting a location, in one call: conservationPairs with this - Site appraisal dossier5 credits
site_appraisalEverything known about ONE site, assembled and judged — the site dossier.Pairs with this - Resolve an area nameFree
area_resolveResolve an area name or code ("Hackney", "E5") to its area_id, centroidPairs with this - Chosen planning designation checksFree
planning_checkThe planning designation checks you choose, for one location, in one call. `checks` is any of: article_4, brownfield, ancient_woodland, heritage_at_risk, tpo, aqma, scheduled_monument, sssi, agricultural_land, flood_risk, green_belt, listed_buildings, aonb, national_park, conservation_area — omit it for all fifteen. Each check reports its own result, and one that could not be read says `status: unknown` rather than disappearing. Use `planning_designations` for the fixed bundle of thirteen; use this when you need SSSI or agricultural land grade, or only two or three checks. Give either `postcode` or `location` as "lat,lng". UK only.Same category - Approval rate and decision time nearby2 credits
planning_precedentsWhat happened to applications like this one nearby — the planning precedent record. Give a point (`lat`/`lon`) or an `lpa_code`, optionally narrowed by `application_types` (substrings of the authority's own type labels, e.g. ["Householder"]).Same category - Planning history at a property1 credit
property_planning_historyPlanning history AT this property: applications linked to the unit or its building — each with decision, dates, appeal, CIL liability, development type and `match_level` (`unit`, `building`, or `nearby` within 25 m when nothing is linked) — a summary (approved / refused / withdrawn / pending), what needs consent here from the designation flags read three-valued (`applies` against `unchecked`), the LPA, and `coverage`: official planning data covers the 33 London boroughs today, so `status: not_covered` outside London is a different answer from `no_applications`, and is not charged. UK only.Same category
FAQ
Questions about Planning applications
How much does `planning_applications` cost?
+
Planning applications is free over MCP and over REST, and the two surfaces share one credit balance. Free calls need a signed-in account or an API key and appear in your usage, but they never touch your balance.
How do I authenticate?
+
Send your API key as a Bearer token in the Authorization header. Keys are created in the API & MCP Hub, shown once and revocable. Every response carries the credits charged and your remaining balance.
Is there an MCP version?
+
Yes. The planning_applications tool on the MarketCode MCP server is the same call at the same price, signed in with OAuth rather than a key, so Claude, ChatGPT, Codex and Cursor can run it in a conversation.
Where does the data come from?
+
Read from planning.data.gov.uk. Coverage is England (planning.data.gov.uk).
Does `planning_applications` change anything?
+
No. The tool is annotated read-only on the server, so it never writes to your data or ours and an assistant can call it without a confirmation step.
Why does MarketCode not return the applications?
+
Because the applications live on more than three hundred council portals with no common machine-readable interface, and scraping them is fragile, slow and frequently against the portal's terms. The tool tells you where to look; the designations tool tells you what constrains the answer.
Can an assistant read the portal for me?
+
An assistant with web browsing can open the portal URL this tool returns and read it, as a person would. The MarketCode tools do not do that on its behalf.
How does this relate to the site dossier?
+
site_appraisal returns the parcel, the valuation, the ownership, the energy position, the auction history and the live designation checks for a site, with a signals block that says what fired. The authority and portal from this tool are where you take the dossier next.
Try Planning applications on a real address.
30-minute call. We'll provision a key and walk through the endpoint on your use case.