UK Planning Applications Scraper
Pricing
from $4.80 / 1,000 item extracteds
UK Planning Applications Scraper
Search and export official planning.data.gov.uk planning applications with council identifiers, proposals, dates, decisions, geometry, and provenance.
Pricing
from $4.80 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Search and export UK planning applications from the official planning.data.gov.uk planning-application dataset.
The Actor turns the government API into integration-ready dataset rows with the council/source organisation identifier, application reference, proposal, site address, dates, decision, available coordinates or geometry, documentation URL, and stable source provenance.
It is designed for repeatable development monitoring and property research. It does not infer fields that the official source has not published.
What can you do with this Actor?
- Export a bounded sample of official planning applications for analysis.
- Filter by council/source organisation entity ID.
- Look up exact application references or Planning Data entity IDs.
- Search by a postcode or UPRN supported by the official API.
- Find applications submitted or source-updated since a date.
- Filter returned proposals by required keywords.
- Filter by published decision values such as
ApproveorRefuse. - Search within a WKT point, polygon, or multipolygon.
- Schedule runs and compare stable entity IDs or source entry dates downstream.
- Send normalized records to spreadsheets, databases, webhooks, or data lakes.
Who is it for?
Property and development analysts
Build a reproducible feed of proposals, dates, decisions, locations, and source links for a chosen council or area.
Construction and planning teams
Search proposal language for supported project terms, then inspect each
published council record through documentationUrl.
Researchers and journalists
Export official identifiers and provenance alongside the application facts used in an analysis.
Data engineers
Schedule a small updatedSince query, ingest the default dataset, and compare
entityId plus entryDate with the previous run.
Why use the official Planning Data route?
The Actor queries the documented, anonymous Planning Data API directly.
That means:
- no council portal browser automation;
- no login or API key;
- no residential proxy;
- stable official entity identifiers;
- official pagination and spatial filters;
- source and documentation URLs retained in every row;
- an explicit scan bound for predictable scheduled work.
Coverage follows the source dataset. The Actor does not claim that every UK council or every historical application is present.
What data is extracted?
| Field | Meaning |
|---|---|
entityId | Stable numeric Planning Data entity ID |
reference | Published planning application reference |
proposal | Development proposal or description |
address | Published site address text |
organisationEntity | Official council/source organisation entity ID |
submittedDate | Source start/submission date |
decisionDate | Published decision date |
entryDate | Date this record version entered Planning Data |
decision | Published decision value |
decisionType | Published decision route/type |
developmentClassification | Official classification identifier or URL |
point | Point in WKT format |
latitude, longitude | Coordinates parsed from point |
geometry | Other available WKT geometry |
quality | Source quality marker when supplied |
documentationUrl | Council/source application page |
sourceUrl | Stable Planning Data entity page |
sourceQueryUrl | Exact official API page used |
dataset | planning-application |
licence | Declared Open Government Licence |
retrievedAt | UTC retrieval timestamp |
Fields can be null when planning.data.gov.uk does not supply them.
Getting started
- Open the Actor input page.
- Keep the prefilled
submittedSincedate or choose a more precise filter. - Set
maxItemsto the number of useful applications you want. - Keep
maxScanItemsabovemaxItemswhen using local keyword or decision filters. - Click Start.
- Open the Planning applications dataset view.
- Export the rows as JSON, CSV, Excel, XML, or RSS through Apify.
A small first run is recommended before increasing either limit.
Input parameters
organisationEntity
An array of official numeric organisation entity IDs.
Example:
[26]
references
Exact application references.
["AWDM/0550/25"]
entityIds
Exact Planning Data entity IDs for deterministic retrieval.
[10000098508]
postcodeOrUprn
A UK postcode or Unique Property Reference Number accepted by the official API.
submittedSince and submittedUntil
Inclusive dates in YYYY-MM-DD form. The lower bound is sent to the source API;
the upper bound is applied to returned rows.
updatedSince
An inclusive Planning Data entry-date lower bound. This is useful for scheduled refreshes but is not built-in deduplication or alerting.
decision
Exact decision values matched case-insensitively.
["Approve", "Refuse"]
proposalKeywords
Every supplied term must appear in the proposal text, case-insensitively. These terms are applied after API retrieval.
["extension", "rear"]
geometryWkt and geometryRelation
Supply a POINT, POLYGON, or MULTIPOLYGON in WKT format. The supported
relations are intersects, within, and contains.
maxItems
Maximum useful rows saved. Default: 20. Maximum: 10000.
maxScanItems
Maximum source rows inspected. Default: 20. Maximum: 100000.
It must be at least maxItems.
Input examples
Recent submitted applications
{"submittedSince": "2025-05-01","maxItems": 20,"maxScanItems": 1000}
One organisation entity
{"organisationEntity": [26],"maxItems": 10,"maxScanItems": 1000}
Source-update monitoring input
{"updatedSince": "2025-09-01","maxItems": 20,"maxScanItems": 1000}
Output example
A current source row is normalized like this:
{"entityId": 10000098508,"reference": "AWDM/0550/25","proposal": "Single storey outbuilding, with metal pergola with aluminium louvres in rear garden, for use as an office and games room","address": "2 Dankton Lane Sompting West Sussex BN15 0EE","organisationEntity": 26,"submittedDate": "2025-05-01","decisionDate": "2025-06-16","entryDate": "2025-09-07","decision": "Approve","decisionType": "Delegated","point": "POINT (-0.343124 50.834924)","latitude": 50.834924,"longitude": -0.343124,"documentationUrl": "http://planning.adur-worthing.gov.uk/online-applications/applicationDetails.do?activeTab=summary&keyVal=SVGKCLCBHHE00","sourceUrl": "https://www.planning.data.gov.uk/entity/10000098508","dataset": "planning-application","licence": "Open Government Licence v3.0"}
The dataset contains one row per accepted planning application.
How much does it cost to export UK planning applications?
Pricing uses one $0.005 start event plus one item event for each planning
application saved. The per-item tiers decrease with the Apify customer tier:
| Tier | Price per saved application |
|---|---|
| FREE | $0.00920 |
| BRONZE | $0.00800 |
| SILVER | $0.00624 |
| GOLD | $0.00480 |
| PLATINUM | $0.00320 |
| DIAMOND | $0.00224 |
At BRONZE, 20 results cost $0.165: $0.005 to start plus $0.160 for results.
Only useful rows saved to the default dataset receive an item charge. Source
rows rejected by your filters are not item-charged.
Apify may separately enforce your run spending limit. Check the live pricing panel before a large run.
Monitoring workflow
- Choose an
updatedSincedate. - Schedule the Actor daily or weekly.
- Store
entityId,entryDate, and the business fields you monitor. - Compare the new dataset with your previous snapshot.
- Notify your own system when a new entity or changed entry date appears.
The Actor supplies stable comparison fields. It does not persist cross-run state or send alerts by itself.
Spatial workflow
Use geometryWkt when a buyer job is defined by an area rather than a council.
For example, a polygon can select official source geometries that intersect a
site-search boundary.
Spatial results depend on the geometry present in the official dataset. Records without suitable source geometry cannot satisfy a spatial query.
Integrations
You can connect the default dataset to:
- Google Sheets through Apify integrations;
- Make or Zapier workflows;
- webhooks triggered after a successful run;
- an S3-compatible lake or database ingestion job;
- Python, JavaScript, or command-line data pipelines;
- Apify schedules for recurring refreshes.
Use entityId as the main stable key and retain sourceUrl for provenance.
Run through the Apify API
Replace <APIFY_TOKEN> with your token.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~uk-planning-applications/runs?token=<APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"updatedSince":"2025-09-01","maxItems":20,"maxScanItems":1000}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/uk-planning-applications').call({organisationEntity: [26],maxItems: 10,maxScanItems: 1000,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("automation-lab/uk-planning-applications").call(run_input={"submittedSince": "2025-05-01","maxItems": 20,"maxScanItems": 1000,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Use with MCP and AI agents
Add the Apify MCP endpoint to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/uk-planning-applications"
Use the same remote-server configuration in Claude Desktop, Cursor, or VS Code:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/uk-planning-applications"}}}
In Claude Desktop, Cursor, and VS Code, open the application's MCP settings and
add the apify server shown above.
Example prompts:
- “Find 20 planning applications submitted since 2025-05-01 and summarize the proposal and decision fields.”
- “Export ten applications for organisation entity 26 and retain source links.”
- “Run the UK planning application monitor input and compare entity IDs with my previous dataset.”
Reliability and retries
The Actor sends direct HTTPS requests to the official government API.
Each request has a 30-second timeout. Network errors, HTTP 429, and server 5xx responses are retried up to three times with bounded exponential backoff. Deterministic client errors are reported without an unbounded retry loop.
There is no browser, proxy, cookie, or login fallback.
Limits and source coverage
- Planning application coverage is whatever planning.data.gov.uk currently publishes.
- The dataset is described by the source as alpha.
- Some records have no address, decision, point, or geometry.
proposalKeywords,decision, andsubmittedUntilare local filters and can require scanning more rows than are saved.maxScanItemscan stop a selective search beforemaxItemsis reached.- Postcode/UPRN and spatial semantics follow the official API.
- The Actor does not download council documents or attachments.
- Applicant and agent contact fields are not promised because this official entity dataset does not consistently expose them.
Legality and responsible use
Planning Data declares the planning-application dataset under the Open Government Licence v3.0. Review the source attribution and licence before redistribution.
Planning applications can contain information about properties and people. Use the data lawfully, minimize personal-data processing, maintain provenance, and comply with applicable UK data-protection and direct-marketing rules.
This Actor is an independent data tool and is not affiliated with the UK government or any council.
Troubleshooting
My run returned fewer rows than maxItems
The source may contain fewer matching rows, fields needed by your local filters
may be empty, or maxScanItems may have been reached. Check the run log and
increase the scan limit only when necessary.
My council name is not an input option
The official filter uses numeric organisationEntity identifiers. Find the
appropriate entity on planning.data.gov.uk and supply the number.
A result has null coordinates or decision
Those values were absent from the official source response. The Actor keeps nulls rather than guessing.
The source API is temporarily unavailable
The Actor retries transient failures three times. Retry the run later if all attempts are exhausted.
Can I search arbitrary proposal text server-side?
The official API does not expose a general proposal-text query in this route.
proposalKeywords is applied locally to bounded scanned rows.
FAQ
Does this cover every council in the UK?
No completeness claim is made. It covers planning-application entities currently published by planning.data.gov.uk.
Does it scrape council portals?
No. It uses the official Planning Data API and only links to published council
records when documentationUrl is available.
Can I monitor changes?
Yes, schedule updatedSince runs and compare entityId plus entryDate in your
own storage. The Actor does not maintain cross-run history.
Are empty or rejected source rows charged?
No item event is charged for rows that are not saved. The one-time start event still applies.
Can I export CSV or Excel?
Yes. Apify datasets can be downloaded in JSON, CSV, Excel, XML, RSS, and other supported formats.
Can I request more than 500 rows?
Yes. The source page size is 500, while the Actor paginates until maxItems,
maxScanItems, or source exhaustion is reached.
Related Automation Lab actors
This Actor is the portfolio's official UK national planning-record source. No closely related Automation Lab Actor is linked in the initial release rather than presenting a third-party competitor as a portfolio product.
For a broader workflow, combine these rows with your own property inventory, site boundaries, CRM, or business-intelligence system through Apify integrations.
Source and attribution
- Dataset:
planning-application - Source: planning.data.gov.uk
- API documentation: Planning Data API
- Licence: Open Government Licence v3.0
Always retain the application reference, source entity ID, and source URL when a downstream use needs auditable provenance.