Uk Planning Applications
Pricing
from $20.00 / 1,000 results
Uk Planning Applications
Extract UK planning applications from 381 planning authorities across England, Scotland, Wales and Northern Ireland. Site addresses, decision dates, planning agent details, dwelling counts and direct council portal links. Filter by council, size, status, postcode radius and date. No API key.
Pricing
from $20.00 / 1,000 results
Rating
0.0
(0)
Developer
Devon Kellar
Maintained by CommunityActor stats
2
Bookmarked
67
Total users
12
Monthly active users
5 days ago
Last modified
Categories
Share
UK Planning Applications Scraper
Extract planning applications from 381 UK planning authorities — every permitted development, housing project, and commercial build across England, Scotland, Wales and Northern Ireland. Get structured, export-ready data with site addresses, decision dates, planning agent details where published, 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 381 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 381 planning authorities
- 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 company and address where the council publishes them (~40% and ~56% of records respectively)
- Track dwelling counts for housing developments
Coverage: 381 planning authorities across England, Scotland, Wales and Northern Ireland published applications in the 30 days to 2026-07-20, out of 412 areas carried in total.
Use cases
- Construction companies — find newly permitted developments before your competitors. Where the council publishes the planning agent (~40% of records), contact them directly; otherwise follow the portal link.
- 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 a feature request or hit a problem, please raise an issue from the actor's Apify Store page.
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 381 planning authorities. 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", "Leeds", "Bradford"],"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.
The actor does not reject unrecognised input. A council name PlanIt does not recognise returns an HTTP 400, which is logged as a warning and skipped — the run continues with the remaining councils. A postcode that cannot be geocoded is logged as an error and the run continues without the radius filter. Check the run log if a query returns fewer results than expected.
Two classes of council name are accepted by PlanIt but will not give you current applications, so the actor logs an explicit warning for each:
- Abolished councils (Allerdale, Carlisle, Copeland, Barrow, Aylesbury Vale, Wycombe, Craven, Hambleton, Harrogate, Richmondshire, Ryedale, Scarborough, Selby, Mendip, Sedgemoor, South Somerset, Taunton Deane, West Somerset) hold historical records only. Use the successor authority instead. Note that Cumberland — successor to Allerdale, Carlisle and Copeland — is not currently carried by PlanIt, so that area has no live coverage.
- English county councils (Kent, Essex, Surrey, and 19 others) are the planning authority for minerals and waste only. For householder, residential and commercial applications, pass the district councils within the county.
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": "","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","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. Populated on ~40% of records. | Savills |
agentTel | Agent phone number. Rarely populated. | 020 7499 8644 |
applicantCompany | Developer / applicant. Not published by the upstream source - empty on all records measured 2026-07-20. | |
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:
agentCompany(~40% of records),agentAddress(~56%),applicantAddress(~20%).applicantName,agentNameandcaseOfficerare not in this actor's output - PlanIt returns a placeholder rather than the value for all three, though the councils themselves usually publish them. See Developer and applicant contact details. - 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
Developer and applicant contact details
Every record includes portalUrl - a direct link to the council's own page for that application. Most UK councils run Idox Public Access portals (roughly 70% of the country), and those pages publish the applicant name, applicant address, agent name and case officer.
This actor does not fetch them. It reads the PlanIt aggregator, which returns the literal string "See source" for those fields instead of the values - "see source" meaning the council's own portal. Rather than export placeholder text dressed up as data, the actor drops those fields entirely, so an empty field is honestly empty.
If you need applicant and developer names at scale, we run that as a managed enrichment service. It fetches each application's council portal page and returns the applicant/agent details, resolving on the majority of Idox-covered councils and returning null - never a guess - where a council does not publish them. Message me via my Apify profile with the councils, volume and fields you need.
You can of course do this yourself for small volumes: open portalUrl and read the Details tab.
How it compares
| Feature | This actor | Glenigan (enterprise) | Other Apify actors |
|---|---|---|---|
| Councils covered | 381 | 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.