Uk Planning Applications avatar

Uk Planning Applications

Pricing

from $20.00 / 1,000 results

Go to Apify Store
Uk Planning Applications

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

Devon Kellar

Maintained by Community

Actor stats

2

Bookmarked

67

Total users

12

Monthly active users

5 days ago

Last modified

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 councils array. You can find the exact council name on PlanIt.

  • If you'd like to do a nationwide search, leave the councils array 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 agentCompany and portalUrl fields 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
}
{
"appSize": ["Large"],
"appState": ["Permitted"],
"daysBack": 90,
"appTypes": ["Full", "Outline"],
"maxResults": 2000
}
{
"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

FieldDescriptionExample
councilLocal authority nameCroydon
addressFull site addressLand Rear Of 13 To 73 Stafford Road
postcodeUK postcodeCR0 3PH
descriptionFull application descriptionDemolition of existing buildings and erection of residential development comprising 211 units
appTypeApplication typeFull Planning Permission
appSizeDevelopment scaleLarge
appStateDecision statusPermitted
decidedDateDecision date2026-02-10
startDateSubmission date2025-11-15
agentCompanyPlanning agent / consultancy. Populated on ~40% of records.Savills
agentTelAgent phone number. Rarely populated.020 7499 8644
applicantCompanyDeveloper / applicant. Not published by the upstream source - empty on all records measured 2026-07-20.
dwellingsProposed residential units211
latitudeSite latitude51.3726
longitudeSite longitude-0.0998
portalUrlLink to council planning portalhttps://publicaccess.croydon.gov.uk/...
planitUrlLink to PlanIt recordhttps://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, agentName and caseOfficer are 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

FeatureThis actorGlenigan (enterprise)Other Apify actors
Councils covered381400+3 (single portal only)
Application typesAllAll3 types
PricingPay-per-result£10K–£50K/year£49/month rental
Data exportJSON, CSV, ExcelLocked platformLimited
FiltersSize, status, postcode, text, type, councilSimilarBasic
API accessFull Apify APIRestrictedLimited
Nationwide searchYesYesNo

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.