Uk Planning Applications
Pricing
Pay per usage
Uk Planning Applications
Extract UK planning applications from 425+ councils across England, Scotland, and Wales. Get structured data on every permitted development, housing project, and commercial build with site addresses, decision dates, planning agent, contacts, dwelling counts, and direct links to council portals.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Devon Kellar
Maintained by CommunityActor stats
2
Bookmarked
64
Total users
12
Monthly active users
16 hours ago
Last modified
Categories
Share
UK Planning Applications Scraper
Extract planning applications from 425+ UK councils — every permitted development, housing project, and commercial build across England, Scotland, and Wales. Get structured, export-ready data with site addresses, decision dates, planning agent contacts, dwelling counts, and direct links to council portals.
No API key needed. No login required. Just configure your filters and run.
Features
UK planning data is scattered across 425 separate council portals, each with a different interface. Enterprise providers like Glenigan charge £10,000–£50,000/year for access to the same data. This actor gives you the same coverage for a fraction of the cost.
UK Planning Applications Scraper supports the following features:
- Search any council or go nationwide across all 425+ councils
- Filter by application size (Large, Medium, Small)
- Filter by decision status (Permitted, Undecided, Rejected, etc.)
- Postcode radius search (find applications within X km of any UK postcode)
- Free text search across descriptions, addresses, and reference numbers
- Filter by application type (Full, Outline, Reserved, Hybrid, Demolition)
- Extract planning agent contacts directly from the data
- Track dwelling counts for housing developments
Coverage: 425+ local authorities across England, Scotland, and Wales. Over 20 million historical records.
Use cases
- Construction companies — find newly permitted developments before your competitors. Contact the planning agent directly from the data.
- Building material suppliers — track large developments (10+ dwellings) to time your outreach when projects get the green light.
- Property developers — monitor planning decisions by area, spot trends, and identify sites.
- Recruitment agencies — large permitted projects mean hiring. Target construction firms with active permissions.
- Planning consultants — benchmark competitor win rates across councils and track market share.
- Property investors — analyse permitted dwelling counts by region to spot growth corridors.
- Researchers & journalists — track housing supply, infrastructure projects, and local development patterns at scale.
Bugs, fixes, updates, and changelog
This scraper is under active development. If you have any feature requests, you can create an issue from here.
Upcoming changes
- Historical data export (full backfill by council)
- Automatic applicant/developer name extraction from council portals
- Webhook notifications for new permits in watched councils
Input parameters
The input of this scraper should be JSON containing the filter configuration for your planning application search. Possible fields are:
councils: (Optional) (String[]) List of council names to search. Leave empty for a nationwide search across all 425+ councils. Type any UK council name — for example: "Croydon", "Tower Hamlets", "Manchester". You can specify one council or many.
appSize: (Optional) (String[]) Filter by development size. The values can be: Large, Medium, and Small. Large = major developments (10+ dwellings or 1,000+ sqm). Medium = minor developments. Small = householder applications. Default is ["Large", "Medium"].
appState: (Optional) (String[]) Filter by decision status. The values can be: Permitted, Undecided, Conditions, Rejected, Withdrawn, Referred, and Appeal. Default is ["Permitted"].
daysBack: (Optional) (Number) How many days back to search from today. For decided applications, this filters by decision date. For undecided applications, this filters by submission date. Range: 1–365. Default is 90.
searchText: (Optional) (String) Free text search — matches against the application description, site address, and reference number. Useful for finding specific developments or types of work.
postcode: (Optional) (String) UK postcode as the centre point for a radius search. Requires radiusKm to be set. Example: "EC2A 4NE", "SW1A 1AA".
radiusKm: (Optional) (Number) Search radius in kilometres from the postcode centre point. Only used when postcode is provided. Range: 1–100. Default is 10.
appTypes: (Optional) (String[]) Filter by application type. Leave empty for all types. Common values: Full, Outline, Reserved, Hybrid, Demolition. These match as substrings — so "Full" matches "Full Planning Permission", "Full Application", etc.
maxResults: (Optional) (Number) Maximum total results to return. The actor stops fetching once this cap is reached. Range: 1–5,000. Default is 500.
Tips
-
When you want to search a specific council, just add the council name as a string in the
councilsarray. You can find the exact council name on PlanIt. -
If you'd like to do a nationwide search, leave the
councilsarray empty. This runs a single API call and is the fastest option. -
Start with a single council and a low
maxResults(e.g. 10) to verify the data matches your needs before scaling up. -
Use
appSize: ["Large"]for the highest-value leads — these are major developments with the biggest contracts. -
Combine this actor with a contact enrichment actor — take the
agentCompanyandportalUrlfields and feed them into a contact scraper to get email addresses. -
Set up a scheduled run (weekly or monthly) to automatically track new permissions as they're granted.
-
Please keep in mind that multi-council queries require a 62-second delay between each council to respect rate limits. A 10-council query will take ~10 minutes.
Compute unit consumption
UK Planning Applications Scraper is optimised to run efficiently. Since the underlying data source enforces a rate limit of approximately 1 request per minute, compute unit consumption depends on the number of councils queried:
- 1 council: ~1 minute, ~0.03 compute units
- Nationwide (no council filter): ~1–2 minutes, ~0.03 compute units (single API call)
- 10 councils: ~10 minutes, ~0.15 compute units
- 50 councils: ~50 minutes, ~0.75 compute units
The actor uses minimal memory (256 MB is sufficient) as it processes results in batches.
UK Planning Applications Scraper input example
{"councils": ["Croydon", "Tower Hamlets", "Westminster"],"appSize": ["Large"],"appState": ["Permitted"],"daysBack": 180,"maxResults": 500}
Nationwide search
{"appSize": ["Large"],"appState": ["Permitted"],"daysBack": 90,"appTypes": ["Full", "Outline"],"maxResults": 2000}
Postcode radius search
{"postcode": "EC2A 4NE","radiusKm": 15,"appSize": ["Large", "Medium"],"appState": ["Permitted"],"daysBack": 90,"maxResults": 500}
Track undecided applications (pipeline)
{"councils": ["Manchester", "Birmingham", "Leeds"],"appSize": ["Large"],"appState": ["Undecided"],"daysBack": 365,"maxResults": 1000}
During the run
During the run, the actor will output messages letting you know what is going on. Each message includes the council being queried and a running count of results found.
When results are loaded from each council, you will see a message with the number of records found and the running total. If multiple councils are specified, the actor logs the 62-second delay between each query.
If you provide incorrect input to the actor, it will immediately stop with a failure state and output an explanation of what is wrong.
UK Planning Applications export
During the run, the actor stores results into a dataset. Each item is a separate planning application in the dataset.
You can manage the results in any language (Python, PHP, Node.js/NPM). See the FAQ or the API reference to learn more about getting results from this actor.
Export to JSON, CSV, or Excel in one click from the Apify Console.
Scraped UK planning application data
The structure of each item in the planning application dataset looks like this:
{"council": "Croydon","address": "Land Rear Of 13 To 73 Stafford Road, Duppas Hill Road, Croydon","postcode": "CR0 3PH","description": "Demolition of existing buildings and erection of residential development comprising 211 units with associated landscaping and parking","appType": "Full Planning Permission","appSize": "Large","appState": "Permitted","decidedDate": "2026-02-10","startDate": "2025-11-15","agentCompany": "Savills","agentTel": "020 7499 8644","applicantCompany": "Stafford Road Developments Ltd","dwellings": 211,"latitude": 51.3726,"longitude": -0.0998,"portalUrl": "https://publicaccess.croydon.gov.uk/online-applications/applicationDetails.do?keyVal=ABC123","planitUrl": "https://www.planit.org.uk/planapplic/Croydon/25/03826/LE/","reference": "25/03826/FUL","planitId": "Croydon/25/03826/FUL","applicantName": "Mr J Smith","agentName": "Jane Doe","caseOfficer": "T Brown","wardName": "Waddon","decision": "Permission Granted","decidedBy": "Delegated Decision","dateReceived": "2025-11-12","dateValidated": "2025-11-15","targetDecisionDate": "2026-02-14","nDocuments": 54,"nComments": 12,"docsUrl": "https://publicaccess.croydon.gov.uk/online-applications/...","commentUrl": "https://publicaccess.croydon.gov.uk/online-applications/...","...": "up to 50+ fields per application — see below"}
Output fields
| Field | Description | Example |
|---|---|---|
council | Local authority name | Croydon |
address | Full site address | Land Rear Of 13 To 73 Stafford Road |
postcode | UK postcode | CR0 3PH |
description | Full application description | Demolition of existing buildings and erection of residential development comprising 211 units |
appType | Application type | Full Planning Permission |
appSize | Development scale | Large |
appState | Decision status | Permitted |
decidedDate | Decision date | 2026-02-10 |
startDate | Submission date | 2025-11-15 |
agentCompany | Planning agent / consultancy | Savills |
agentTel | Agent phone number | 020 7499 8644 |
applicantCompany | Developer / applicant | Stafford Road Developments Ltd |
dwellings | Proposed residential units | 211 |
latitude | Site latitude | 51.3726 |
longitude | Site longitude | -0.0998 |
portalUrl | Link to council planning portal | https://publicaccess.croydon.gov.uk/... |
planitUrl | Link to PlanIt record | https://www.planit.org.uk/planapplic/... |
Extended fields — 50+ per application
On top of the core fields above, the actor flattens every additional field the council publishes (coverage varies by council):
- Identifiers:
reference,planitId,planningPortalId,uprn,lastScraped - Lead contacts:
applicantName,applicantAddress,agentName,agentAddress,caseOfficer - Decision & process:
applicationType,status,decision,decidedBy,targetDecisionDate,decisionIssuedDate,decisionPublishedDate,meetingDate,nStatutoryDays - Dates & consultation:
dateReceived,dateValidated,consultationStartDate,consultationEndDate,commentDate,siteNoticeEndDate,permissionExpiresDate,applicationExpiresDate - Location:
wardName,parish,district,easting,northing - Documents & engagement:
nDocuments,nComments,nConstraints,docsUrl,commentUrl,mapUrl,sourceUrl
How it compares
| Feature | This actor | Glenigan (enterprise) | Other Apify actors |
|---|---|---|---|
| Councils covered | 425+ | 400+ | 3 (single portal only) |
| Application types | All | All | 3 types |
| Pricing | Pay-per-result | £10K–£50K/year | £49/month rental |
| Data export | JSON, CSV, Excel | Locked platform | Limited |
| Filters | Size, status, postcode, text, type, council | Similar | Basic |
| API access | Full Apify API | Restricted | Limited |
| Nationwide search | Yes | Yes | No |
Data source
All data comes from PlanIt, which aggregates publicly available planning data from UK local authority portals. The data is published by councils under statutory obligation — this actor provides structured, filterable access to it.