UK Multi-Trade Planning Lead Radar
Pricing
from $20.00 / 1,000 trade lead delivereds
UK Multi-Trade Planning Lead Radar
Match new England planning applications to multi-trade taxonomy (solar/PV/battery, roof, scaffold, extension/loft, HVAC, glazing) + optional postcode radius via planning.data.gov.uk (OGL). Pay only for unique trade-matched leads ($0.02). Scheduled catch-up — not real-time streaming.
Pricing
from $20.00 / 1,000 trade lead delivereds
Rating
0.0
(0)
Developer
Daniel Witney
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Match new England planning applications to a multi-trade taxonomy (solar/PV/battery, roof, scaffold, extension/loft, HVAC, glazing — extensible) with an optional postcode radius, using the official Planning Data HTTP API. Get typed lead rows you can pipe to a CRM, Slack, or outbound queue — not a nationwide dump and not a single-trade SKU.
Value proposition
- Official HTTP only (
planning.data.gov.ukentity API) — no council portal login scrape, no Idox HTML. - Trade-qualified: proposal-text classifier tags applications to the trades you select.
- Optional catchment:
originPostcode+radiusMiles(haversine on publishedpoint, with address-postcode fallback geocode via public postcodes.io in live mode). - Pay only for unique trade-matched newly-validated leads. Quiet schedules and non-matches stay cheap.
- Durable checkpoint (entry-date high-water) +
event_uiddedupe in the default Key-Value Store. - Every successful run writes one non-billable
RUN_STATUShealth row so Store auto-tests and quiet days still leave a non-empty dataset.
This Actor is a scheduled catch-up poller. It is not real-time streaming and does not claim instant alerts or 100% council coverage.
PRODUCTION USE (required for real leads)
Store default ≠ product. Schema defaults use
sourceMode=fixtureso Apify Store daily auto-tests leave a non-empty health dataset without calling Planning Data. That fixture path only writes a non-billableRUN_STATUS/FIXTURE_HEALTHrow. It is not lead generation.
For production you must:
- Set
sourceMode=live - Choose
trades(or leave the built-in multi-trade default) - Optionally set
originPostcode+radiusMilesfor a local catchment - Optionally restrict
organisationEntityIds(Planning Data organisation-entity ids) - Schedule short runs (e.g. every 15–60 minutes) so checkpoints advance
Official docs: Planning Data API · planning-application dataset · Open Government Licence v3.0
Coverage limits (honest)
- The Planning Data planning-application dataset is alpha / incomplete. Local planning authorities are not all required to publish to this specification today.
- Expect partial England coverage — not 100% of councils, not Scotland/Wales/NI via this API.
- Many records omit geometry, agent, or applicant. When those fields are not published, output columns are
null. - Detection latency ≈ your schedule interval + Planning Data ingest lag. Title does not say real-time or streaming.
Apify Store daily auto-test / default input
| Field | Default |
|---|---|
trades | built-in six trades |
lookbackDays | 14 |
maxRunSeconds | 55 |
maxEvents | 500 |
resumeFromCheckpoint | true |
sourceMode | fixture |
emitFixtureDemoEvents | false |
requestPaceMs | 250 |
On that path the Actor:
- SUCCEEDS quickly (no Planning Data network call)
- Pushes exactly one dataset row:
event_type: "RUN_STATUS",event_subtype: "FIXTURE_HEALTH",billable: false - Does not call
Actor.charge/ does not emit fabricated leads - Leaves a non-empty default dataset well under 5 minutes
emitFixtureDemoEvents: true is only for unit/local demos of typed lead shapes; leave it false on Store and in production.
Pricing (single PPE tier)
| Event | Price | When charged |
|---|---|---|
trade-lead-delivered | $0.02 ($20 / 1,000) | Each unique trade-matched newly-validated lead pushed to the dataset |
apify-actor-start | $0.00005 | Actor start (platform) |
Never charged: RUN_STATUS, non-matches, duplicates (event_uid), radius/trade filtered rows, fixture Store-health runs, invalid trade ids.
No volume-discount tiers (see factory ADR 0010).
Output fields (lead rows)
authority, organisation_entity, reference, application_entity, address, postcode, proposal_description, matched_trades, decision_status, decision_type, applicant, agent (when published), entry_date, decision_date, latitude, longitude, distance_miles, source_url, event_uid, summary, billable.
Attribution / licence
Contains public sector information licensed under the Open Government Licence v3.0.
Source: planning.data.gov.uk (MHCLG Planning Data).
© Crown copyright and database right.
Features
- Endpoint:
https://www.planning.data.gov.uk/entity.json?dataset=planning-application - Built-in keyword taxonomy +
customTradeKeywordsextension - Optional geometry bbox pre-filter + haversine refine
- High-water checkpoint + seen
event_uids in KVS sourceMode: fixture | live- Always-on non-billable
RUN_STATUS(HEALTH_OK|MONITOR_IDLE|CATCHUP_COMPLETE|FIXTURE_HEALTH)
Example input (production)
{"sourceMode": "live","trades": ["scaffold", "roof"],"originPostcode": "M1 1AE","radiusMiles": 20,"lookbackDays": 7,"maxRunSeconds": 90,"maxEvents": 200,"resumeFromCheckpoint": true}