# England Planning Application Monitor: API Data (`getascraper/england-planning-application-monitor`) Actor

Monitor England planning-application entities from the official Planning Data API. Return references, descriptions, dates, statuses, geometry, and source links with coverage metadata. Send changes to Google Sheets, Airtable, n8n, or Slack.

- **URL**: https://apify.com/getascraper/england-planning-application-monitor.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Real estate, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.31 / 1,000 planning records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🏘️ England Planning Application Monitor: API Data

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:24px 28px;background:#EFF6FF;border:1px solid #BFDBFE;border-top:4px solid #1D4ED8;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#172554;line-height:1.3">Spot planning changes before they become surprises</span><br>
<span style="font-size:15px;color:#334155;line-height:1.6">Search England planning applications by location or date. Get source-linked records with status, decision, and change details.</span>
</td>
</tr>
</table>

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BFDBFE;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#1E3A8A">🧭 Focus the search</span><br>
<span style="font-size:12px;color:#334155">Work from a postcode, map area, organisation, or date range.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BFDBFE;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#1E3A8A">🔔 Follow changes</span><br>
<span style="font-size:12px;color:#334155">Separate new, updated, and removed planning records from a saved scope.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BFDBFE;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#1E3A8A">📍 Keep location context</span><br>
<span style="font-size:12px;color:#334155">Review addresses, geometry, and coordinates when the source publishes them.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BFDBFE;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#1E3A8A">🔗 Check the source</span><br>
<span style="font-size:12px;color:#334155">Trace each result back to its official planning record.</span>
</td>
</tr>
</table>

Monitor England planning-application entities from the official Planning Data API. Get source-linked current records or changes for a specific location, organisation, geometry, or date scope.

### 🎯 What it does

The Actor reads the official Planning Data feed and preserves coverage information with every result. A full run returns the current selected scope. Changes-only mode compares a complete scope with its saved baseline.

### 👥 Who it is for

- Planning consultants and architects tracking defined local scopes.
- Property and land researchers building a review queue.
- Development suppliers monitoring public planning signals.

### ⚙️ How it works

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#EFF6FF;border:1px solid #BFDBFE;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#172554">Set the planning scope</span><br>
<span style="font-size:12px;color:#334155">Choose a location, organisation, map area, or date range.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#EFF6FF;border:1px solid #BFDBFE;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#172554">Control the result set</span><br>
<span style="font-size:12px;color:#334155">Use page and record limits that fit the research task.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#EFF6FF;border:1px solid #BFDBFE;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#172554">Repeat or schedule it</span><br>
<span style="font-size:12px;color:#334155">Reuse the same complete scope to monitor meaningful changes.</span>
</td>
</tr>
</table>

### 🧾 Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| Postcode or UPRN | Text | No | Public postcode or UPRN passed to the official search filter. |
| Organisation entity IDs | Array | No | Up to twenty official Planning Data organisation identifiers. |
| Latitude and longitude | Number | No | Provide both values to use a coordinate filter. |
| WKT geometry | Text | No | Supported geometry used with an intersects relation. |
| Output mode | Choice | No | Full snapshot or changes-only output. |
| Submitted from and to | Date | No | Published submitted-date bounds. |
| Maximum pages | Number | No | Capped scans do not update saved state. |

### 📊 Output

| Field | Type | Description |
| --- | --- | --- |
| reference | String | Published application reference. |
| description | String | Published proposal description. |
| address | String | Published site address. |
| status | String | Published application status. |
| decision | String | Published decision when available. |
| submittedDate | Date | Published submitted date. |
| sourceUrl | URL | Official entity page link. |

### 💡 Good to know

- The official source states that coverage varies and is not a complete national planning register.
- Missing public fields are left empty rather than guessed.
- A capped scan does not update the saved comparison state.

### 💰 Pricing

This Actor uses pay per result. Empty runs do not create result charges. Start with a narrow, known area or date range.

### ⭐ Enjoying England Planning Application Monitor?

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:20px 24px 14px;background:#EFF6FF;border:1px solid #BFDBFE;border-left:5px solid #1D4ED8;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px;color:#1D4ED8">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#172554">Did this make planning research easier to manage?</span><br>
<span style="font-size:14px;color:#334155">A 5-star rating takes 10 seconds and helps planning consultants, property teams, and local researchers find it. Your feedback also guides what we build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#1D4ED8;border:1px solid #BFDBFE;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/england-planning-application-monitor/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ❓ FAQ

**Does it cover every English local authority?** No. The official dataset’s coverage varies by authority and publication status.

**Can I filter by a map area?** Yes. Use paired coordinates or supported WKT geometry.

**Why do I see coverage information?** It helps you judge what the official source included for your scope.

**Can I schedule changes?** Yes. Schedule the same complete scope in changes-only mode.

### 🔗 Other actors

- [Construction Permit Lead Monitor](https://github.com/Devansh-365/actorstack/tree/main/actors/construction-permit-lead-monitor)
- [Multistate Contractor License Verifier](https://github.com/Devansh-365/actorstack/tree/main/actors/multistate-contractor-license-verifier)
- [US Licensed Contractor Directory](https://github.com/Devansh-365/actorstack/tree/main/actors/us-licensed-contractor-directory)
- [SAM.gov Contract Monitor](https://github.com/Devansh-365/actorstack/tree/main/actors/sam-gov-contract-monitor)

# Actor input Schema

## `postcode` (type: `string`):

Optional postcode or UPRN passed to the official q filter.

## `organisationEntities` (type: `array`):

Optional official Planning Data organisation entity IDs, up to twenty.

## `latitude` (type: `number`):

Optional WGS84 latitude. Supply longitude as well. Leave both at zero to omit the coordinate filter.

## `longitude` (type: `number`):

Optional WGS84 longitude. Supply latitude as well. Leave both at zero to omit the coordinate filter.

## `geometry` (type: `string`):

Optional supported WKT geometry passed with an intersects relation. Do not paste a raw query object.

## `mode` (type: `string`):

Full returns the current page scope. Changes only compares a complete scope with the saved baseline.

## `startDateFrom` (type: `string`):

Optional ISO date. Uses the official start\_date since filter.

## `startDateTo` (type: `string`):

Optional ISO date applied as a tested local upper bound after the official since query.

## `pageSize` (type: `integer`):

Official API page size, bounded to keep a run predictable.

## `maxPages` (type: `integer`):

Maximum official API pages to request. A capped run never updates comparison state.

## `maxRecords` (type: `integer`):

Maximum rows written to the dataset.

## Actor input object example

```json
{
  "postcode": "",
  "organisationEntities": [],
  "latitude": 0,
  "longitude": 0,
  "geometry": "",
  "mode": "changesOnly",
  "startDateFrom": "",
  "startDateTo": "",
  "pageSize": 15,
  "maxPages": 1,
  "maxRecords": 15
}
```

# Actor output Schema

## `datasetItems` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

## `comparisonState` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "postcode": "",
    "organisationEntities": [],
    "latitude": 0,
    "longitude": 0,
    "geometry": "",
    "mode": "changesOnly",
    "startDateFrom": "",
    "startDateTo": "",
    "pageSize": 15,
    "maxPages": 1,
    "maxRecords": 15
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/england-planning-application-monitor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "postcode": "",
    "organisationEntities": [],
    "latitude": 0,
    "longitude": 0,
    "geometry": "",
    "mode": "changesOnly",
    "startDateFrom": "",
    "startDateTo": "",
    "pageSize": 15,
    "maxPages": 1,
    "maxRecords": 15,
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/england-planning-application-monitor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "postcode": "",
  "organisationEntities": [],
  "latitude": 0,
  "longitude": 0,
  "geometry": "",
  "mode": "changesOnly",
  "startDateFrom": "",
  "startDateTo": "",
  "pageSize": 15,
  "maxPages": 1,
  "maxRecords": 15
}' |
apify call getascraper/england-planning-application-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=getascraper/england-planning-application-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Roviuit3XSwaEtfAG/builds/ruy6rHXPn1s8YflOQ/openapi.json
