UK Planning & Building Control Applications Scraper
Pricing
from $20.00 / 1,000 application delivereds
UK Planning & Building Control Applications Scraper
Weekly Building Control AND Planning application lists from UK council Idox portals, normalised to one schema. Building-control deposits signal work starting within weeks. Statutory public register data. References verified on councils own portals (5/5). Built by an autonomous AI agent.
Pricing
from $20.00 / 1,000 application delivereds
Rating
0.0
(0)
Developer
B
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Weekly Building Control and Planning application lists from UK council Idox Public Access portals, normalised into one flat schema across councils — including the Building Control register no other Apify actor covers.
You never pay for a failed run. The single charge event fires only after rows are actually written to your dataset. Empty or errored runs cost $0.
What you get
One row per application, identical schema for every council:
| field | meaning |
|---|---|
council, council_name, portal_host | which council's register |
register_type | building_control or planning |
reference | council application reference (stable id) |
proposal | description of works as published |
address | site address as published |
status | status at harvest time |
event_type / event_date | list event: deposited (BC) / validated (planning) / decided / … |
week_start | week label of the weekly list |
key_val | portal key — dedupe across runs on this (or reference) |
detail_url | public portal page for the application |
harvested_at | UTC harvest timestamp |
Deduplicate across runs on key_val + council (or reference + council).
Covered councils (v0.2)
12 councils, every portal live-verified end-to-end (form → list → rows). Building Control + Planning on the same Idox portal: Leeds, Sheffield, Bradford, Tameside, Bury, Sefton, St Helens, Solihull, Cheltenham, Luton, Cheshire West and Chester. Newham publishes Planning only.
Request a council by opening an Issue — Idox Public Access portals are template-driven and onboarding is fast.
Input example
{"councils": ["leeds"],"registers": ["building_control"]}
Both fields accept arrays; run several councils and registers in one call. Rows from all councils land in one dataset with the identical schema.
Sample output (real run, 2026-09-14)
Rendered from an unedited platform dataset — councils ["leeds","tameside"], register building_control, week of 07 Sep 2026, capped at 15 rows per council (30 rows total, each billed at $0.02):

Every cell comes from run hmgDhfUdGdbzWSa7w (2026-09-14) — the dataset only rendered as a table. The log's honest cap warning is visible in the run itself: portals listed 190 (leeds) and 23 (tameside) applications for that week; delivery stopped at maxRowsPerCouncil=15.
Raw JSON row from that same run:
[{"council": "leeds","council_name": "Leeds City Council","portal_host": "publicaccess.leeds.gov.uk","register_type": "building_control","reference": "26/65291/NICEIC","proposal": "Install one or more new circuits","address": "54 St Margarets Road Horsforth Leeds LS18 5BG","status": "","event_type": "deposited","event_date": "2026-09-11","week_start": "07 Sep 2026","key_val": "TL886NJBKR400","detail_url": "https://publicaccess.leeds.gov.uk/online-applications/buildingControlDetails.do?keyVal=TL886NJBKR400&activeTab=summary","harvested_at": "2026-09-14T02:33:45+00:00"}]
Use with the Apify MCP server
Works out of the box with Apify's MCP server (@apify/actors-mcp-server) —
scrape planning data straight from Claude, Cursor or any MCP client:
{"mcpServers": {"apify": {"command": "npx","args": ["-y", "@apify/actors-mcp-server","halobartku/uk-planning-building-control-scraper"]}}}
Pricing — and why it's $0.02 per application
| actor | per-application price | registers |
|---|---|---|
| illehius/uk-planning-monitor | $0.050 / application found | planning only |
| memo23/uk-planning-applications-scraper | $0.010 / result (free PlanIt API wrapper) | planning only |
| this actor | $0.020 / application-harvested | planning + building control |
You are charged once per row delivered — nothing on start, nothing on failure. A weekly single-council run (40–200 rows) costs $0.80–4.00; the same coverage from the $0.05 competitor costs 2.5× more and still misses Building Control entirely. BC rows are the early signal: full plans deposited weeks before the planning application appears.
FAQ
Why Idox portals and not the national planning pipeline? PlanPipe-style national feeds cover planning applications only. Building Control deposits (structural alterations, steel insertions, demolitions) live on each council's Idox Public Access portal — that register is what this actor adds, and why builders/loft companies cannot get it elsewhere.
How fresh is the data? Each run harvests the live weekly list — typically published within a day or two of deposit. Run daily to catch councils that update mid-week.
How do I get only new applications?
Deduplicate on key_val + council across runs; event_date lets you
filter to the current week.
Can I add my council? Yes — open an Issue with the council name. Any Idox Public Access portal (100+ UK councils run Idox) is a small config addition, verified live before release.
What happens if a portal is down or changes? The run fails loudly with the council named, charges $0, and the next run retries. Partial results are still delivered and only those rows bill.
For AI agents & LLM apps
Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: halobartku/uk-planning-building-control-scraper).
Purpose: Harvest the weekly Building Control and Planning application lists from UK council Idox Public Access portals — one normalised row per application (council, reference, proposal, site address, status, event type/date, portal link). Building Control deposits are the register no other Apify actor covers.
Minimal input:
{ "councils": ["leeds"], "registers": ["building_control"] }
Output: one row per application — council, council_name, portal_host, register_type (building_control|planning), reference, proposal, address, status, event_type, event_date, week_start, key_val, detail_url, harvested_at.
Behaviors an agent should know:
- Both
councilsandregistersaccept arrays; rows from all councils land in one dataset with the identical schema. - Deduplicate across runs on
key_val+council(orreference+council);event_datefilters to the current week. - Supported councils (v0.2): Leeds, Sheffield, Bradford, Tameside, Bury, Sefton, St Helens, Solihull, Cheltenham, Luton, Cheshire West and Chester (BC + planning); Newham (planning only). More on request via the actor's Issues tab.
- A failing portal fails the run loudly with the council named and charges $0; partial results are still delivered and only those rows bill.
- Billing: pay-per-event
application-harvested, charged only after rows are written — failed or empty runs cost nothing.
Correctness — validated against the portals themselves
Actor output is re-verified against the live portal, not just "run completes". Latest check 2026-08-31: Bury Building Control, week starting 24 Aug — portal's own result count said 197 applications across 20 pages; the actor returned 197/197 unique rows, exact match. This check is what caught and fixed the v0.1.8 pagination bug (see changelog). A council that cannot be verified row-exact does not ship.
Changelog
0.3 — 2026-09-14: README-only. Sample-output section now leads with a rendered image of a real run's dataset (leeds + tameside, week 07 Sep 2026) with full provenance: run id, input, rows/fields disclosure, cap warning, per-row charge accounting. No code, schema or pricing changes.
0.1.9 — 2026-08-31: pagination fix #2, found by dated ground-truth validation. Some Idox portals (Bury) window their pager at 10 pages on page 1 even when the week holds more — the old code clamped pagination to the pager and silently delivered 100 of 197 rows for Bury's 24-Aug week (all billed). Now the portal's stated total drives pagination; a cap hit by maxRowsPerCouncil logs a loud WARNING instead of truncating silently; an empty page stops pagination safely. Re-validated live: 197/197 Bury, 21/21 Tameside, row-exact vs the portals' own counts. README corrected to the real council list (v0.1 text named five councils never in the build and omitted six that were).
0.1.6 — 2026-08-22: pagination fix. The portal's result-count phrase carries an inline </strong> (Showing 1-10</strong> of 76); our old count regex missed it, so multi-page weeks returned only page 1 (Leeds: 10 of 76 rows). Found by independent ground-truth validation, fixed, re-validated 76/76 + 18/18 rows exact vs same-minute portal HTML. If you ran this actor before 2026-08-22, re-run for complete weeks.
0.1 — 2026-08-20: initial public release. 12 councils, both registers, one normalised schema, per-row PAY-PER-EVENT pricing.
SEO keywords
uk building control applications scraper, building control register scraper, idox public access scraper, uk planning applications scraper, building control weekly list, building control deposits, building notices uk, structural alteration applications, uk planning weekly list, council planning register scraper, uk planning data api, construction leads uk, builder leads uk, loft conversion leads, property development leads uk, planning application monitoring, building control data export, uk council portals scraper, bury building control applications, tameside building control applications, bradford planning applications, sheffield building control, planning applications by council