UK Planning Applications Scraper: Weekly Lists from 15 Councils

Each council's official weekly list of validated or decided planning applications, unified into one clean dataset with a link to every application.

Run on Apify →See pricing

What it does

Planning applications are one of the few public signals that building work is about to happen. The trouble is that every council publishes them on its own portal, with its own search forms and weekly lists, so checking a dozen areas each Monday is a morning's work.

This actor reads the weekly lists from 15 UK council planning portals (all verified Idox portals) and returns them as one dataset: council, application reference, proposal text, site address, status, received and validated dates, and a deep link to the council's own application page. Choose validated for newly accepted applications or decided for fresh decisions, and how many recent weeks to fetch.

Validated applications are a proven lead source for builders, scaffolders, architects and other trades; decisions are useful to developers, land sourcers and analysts. Applicant and agent personal details are deliberately not collected, and the actor is polite to councils at no more than one request per second per portal.

How it works

  1. You pick councils from the list (or leave it empty for all 15), the list type (validated or decided) and how many weeks back to go.
  2. For each council the actor opens the portal's weekly list and reads up to 20 result pages, about 200 applications at the usual page size.
  3. Rows are normalised into one schema with council, reference, proposal, address, status, dates and the application URL.
  4. If one council portal is down, that council is flagged in the run log and exit message and the run carries on with the rest.
  5. The run stops at maxResults or your spend limit, and you are charged only for applications delivered.

Input example

A typical run input (JSON). Every field is also available as a form in the Apify console.

{
  "councils": [
    "leeds",
    "bradford",
    "york"
  ],
  "weeksBack": 2,
  "dateType": "validated",
  "maxResults": 500
}
All input fields
FieldTypeRequiredDefaultWhat it does
councilsarraynoWhich councils to fetch. Leave empty for all 15. Council coverage is listed in the README.
weeksBackintegerno1How many recent weekly lists to fetch per council (1 = the newest week).
dateTypestringno"validated"'validated' = newly accepted applications (lead generation). 'decided' = applications with fresh decisions.
maxResultsintegerno500Stop after this many applications. You are charged per application: 1,000 = $3.00. If you set a run budget (max total charge), the actor automatically stays inside it.

Output example

Every application comes back in the same shape whichever council it came from:

councilreferenceproposaladdressstatusvalidatedDateurl
isle-of-wight26/00909/TWT1; Ash - Dismantle to near ground level and replant with tree in keeping with the area…Land Adjacent To 6 Withyfields Shalfleet Newport Isle Of Wight PO30 4QARegisteredFri 03 Jul 2026https://publicaccess.iow.gov.uk/online-applications/applicationDetails.do?keyVal=…
oxford26/01423/FULErection of single storey rear extension and conversion of garage to habitable room12 Example Road Oxford OX4 1ABRegisteredTue 30 Jun 2026https://public.oxford.gov.uk/online-applications/applicationDetails.do?keyVal=…

Pricing

Pay per event: you are charged only for the results you receive, with no subscription. Set a maximum total charge on any run and it stops cleanly at the cap.

Charged forWhenPricePer 1,000Worked example
Planning applicationOne planning application (reference, address, proposal, status, dates, council) from a UK council portal.$0.003$31,000 applications = $3.00; a typical single-council week (≈25 applications) = $0.08
Actor Start (platform start fee)Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).$0.00005—One run at up to 1 GB = $0.00005 (charged as one event)

Prices are read from the live Apify Store listing when this page is built. The listing is always authoritative.

Try UK Planning Applications Scraper on Apify. Pay only for the results you get.

Run on Apify →

Use cases

Weekly leads for trades

Schedule a Monday run of validated applications for the councils you cover and send the list to your sales team. Proposal text such as 'erection of single storey rear extension' tells you what the job is, so you can filter for the work you do.

Land and development monitoring

Switch dateType to decided to follow approvals and refusals in your target areas, and keep a history by appending each week's dataset.

Market analysis across councils

Compare application volumes or proposal types across the 15 councils over several weeks to see where activity is picking up.

Alerts on specific sites or streets

Filter the address field for postcodes or roads you care about, for example near a site you own, and get notified when something new is lodged.

How it compares

ActorForge UK Planning ApplicationsChecking council portals by handCommercial planning data platforms
Councils in one dataset15One portal at a timeUsually national
National coverageNo, 15 councilsYes, if you visit every portalOften yes
Validated and decided weekly listsYesYesYes
Applicant and agent personal detailsNot collectedShown on some portalsVaries
OutputJSON, CSV, Excel via the datasetWeb pagesPlatform exports
Link back to the official applicationYes, on every rowYesVaries
Cost$3 per 1,000 applicationsFree, your timeSubscription

If you need every council in the country, a commercial planning data platform or the portals themselves will reach further. If your patch is covered by the 15 councils here, this is a low-cost way to get clean weekly lists without visiting each portal.

Limits and honest notes

FAQ

Which UK councils are covered?

Isle of Wight, Durham, Barnet (London), Leeds, York, Cornwall, Trafford, Gateshead, Bradford, Aberdeen, Aberdeenshire, Sunderland, Southampton, Greater Cambridge and Oxford. Leave councils empty to fetch all 15.

What is the difference between validated and decided applications?

Validated means the council has accepted the application as complete and it is now being considered, which is the lead-generation signal that work may be coming. Decided lists applications that have just received a decision.

Why does my run return very few applications early in the week?

Weekly lists roll over on Mondays, so the newest list can be nearly empty at the start of the week. Set weeksBack to 2 if you always want at least one full week.

Does it include the applicant's name or contact details?

No. Applicant and agent personal details are deliberately not collected. You get the reference, proposal, site address, status, dates and a link to the council's page.

Can a busy council's week be cut off?

Possibly. Each weekly list is read up to 20 result pages, about 200 applications, which covers a normal week for most councils. An unusually busy week at a large council can be truncated at that point.

How much does a weekly run cost?

$0.003 per application. A typical single-council week of about 25 applications costs around $0.08, and 1,000 applications cost $3.00.

Use it from code

Run the actor through the Apify API with the input above.

cURL

curl -X POST "https://api.apify.com/v2/acts/actor-forge~uk-planning-applications/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"councils": ["leeds", "bradford", "york"], "weeksBack": 2, "dateType": "validated", "maxResults": 500}'

JavaScript (Node.js)

// Node.js 18+ (built-in fetch). Set APIFY_TOKEN in your environment.
const input = {
  "councils": [
    "leeds",
    "bradford",
    "york"
  ],
  "weeksBack": 2,
  "dateType": "validated",
  "maxResults": 500
};

const res = await fetch(
  "https://api.apify.com/v2/acts/actor-forge~uk-planning-applications/run-sync-get-dataset-items",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.APIFY_TOKEN}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify(input),
  }
);
const items = await res.json();
console.log(items.length, items[0]);

Python

# pip install apify-client   (set APIFY_TOKEN in your environment)
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run_input = {
    "councils": [
        "leeds",
        "bradford",
        "york"
    ],
    "weeksBack": 2,
    "dateType": "validated",
    "maxResults": 500
}

run = client.actor("actor-forge/uk-planning-applications").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

The run-sync-get-dataset-items endpoint waits for the run (up to 5 minutes) and returns the dataset rows directly. For longer runs, start the run asynchronously and read the dataset when it finishes, as the Python example does. Replace APIFY_TOKEN with your own token from the Apify console.

Step-by-step guides

How to Use UK Planning Applications as Sales Leads

Pull each council's weekly list of newly validated applications with UK Planning Applications, filter the proposal text for the work you do, and…

Related actors

Companies House Enrichment — UK Company Directors & Filings

Enrich UK companies from the official Companies House API: profile, SIC codes, current and resigned directors and officers, and the latest filing…

$5 per 1,000 · enriched company

Business Places Data — Google Maps Alternative, 80M+ POIs

Business leads by city from open Overture Maps data: name, category, address, lat/lon, phone, website, email, socials and brand for 80M+ places…

$3 per 1,000 · area query

Try UK Planning Applications Scraper on Apify. Pay only for the results you get.

Run on Apify →

More Business Leads & Company Data tools · All actors