Planning precedents
POST /v1/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 call over MCP
Approval rate and decision time nearbyplanning_precedentsAuthenticate 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/precedents returns
Returns the approval RATE with its denominator, the median days to a decision, a breakdown by application type, and recent examples with their outcomes and links.
TWO DENOMINATORS, AND THEY ARE NOT THE SAME. The rate is over approvals plus refusals only. The decision time is over the much smaller set of applications carrying BOTH a received and a decision date — about 13% of the register. Quote each with its own n; never present the timing sample as though it were the rate's.
IT IS A RATE, NOT A PROBABILITY. It says what a committee did nearby, not what it will do with this proposal. Do not convert it into a chance of approval.
Withdrawals, advisory outcomes (observations on another authority's application, and confirmations that consent was not required) and undecided applications are counted separately and excluded from the denominator — they appear under excluded_from_rate.
COVERAGE IS LONDON. The official register is the 35 Greater London authorities; elsewhere this returns nothing, which is a coverage gap and NOT a quiet planning history. Say so rather than implying the site is unprecedented. UK only.
Inputs
Before you call it
- lat
- 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/precedents
curl -X POST "https://api.marketcode.ai/v1/planning/precedents" \
-H "Authorization: Bearer $MARKETCODE_API_KEY"
-H "Content-Type: application/json" \
-d '{}'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 |
|---|---|---|---|---|
| lat | Body | number | No | |
| lon | Body | number | No | |
| radius_m | Body | integer | No | Default: 800 |
| lpa_code | Body | string | No | Instead of a point: a planning authority code |
| application_types | Body | string[] | No | Substrings matched against application_type, e.g. ['Householder'] |
| years | Body | integer | No | Default: 10 |
| examples | Body | integer | No | Default: 10 |
Price and licence
What it costs, and where the data comes from
Planning precedents costs 2 credits per successful call over MCP and over REST, and the two surfaces share one credit balance.
The price covers licensed records in the response. A call that fails is not charged.
Credits are granted on sign-up and bought in packs; the pricing page lists every call.
Related
Endpoints used with Planning precedents
- 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 - 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 - Planning histories for up to 100 properties1 credit
property_planning_history_batch`property_planning_history` for up to 100 properties in one call, per-item outcomes (ok | no_applications | not_covered | not_found | error) in input order. Charged per property answered — the sum of the single calls, never more; not_covered rows are free. UK only.Same category - Planning designations at a locationFree
planning_designationsEvery planning designation affecting a location, in one call: conservationSame category - Planning authority for a locationFree
planning_applicationsThe local planning authority for a location and its planning-portal URL.Same category
FAQ
Questions about Planning precedents
How much does `planning_precedents` cost?
+
Planning precedents costs 2 credits per successful call over MCP and over REST, and the two surfaces share one credit balance. The price covers licensed records in the response. A call that fails is not charged.
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_precedents 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?
+
The answer is computed by MarketCode. Coverage is the UK.
Can I store or republish the results?
+
The response includes records we license. Use them in your own analysis, reports and products; bulk redistribution of the raw records or building a competing dataset from them is not covered. Ask us if you need a redistribution licence.
Does `planning_precedents` 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.
Try Planning precedents on a real address.
30-minute call. We'll provision a key and walk through the endpoint on your use case.