UK Multi-Trade Planning Lead Radar avatar

UK Multi-Trade Planning Lead Radar

Pricing

from $20.00 / 1,000 trade lead delivereds

Go to Apify Store
UK Multi-Trade Planning Lead Radar

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

Daniel Witney

Maintained by Community

Actor 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.uk entity 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 published point, 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_uid dedupe in the default Key-Value Store.
  • Every successful run writes one non-billable RUN_STATUS health 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=fixture so Apify Store daily auto-tests leave a non-empty health dataset without calling Planning Data. That fixture path only writes a non-billable RUN_STATUS / FIXTURE_HEALTH row. It is not lead generation.

For production you must:

  1. Set sourceMode = live
  2. Choose trades (or leave the built-in multi-trade default)
  3. Optionally set originPostcode + radiusMiles for a local catchment
  4. Optionally restrict organisationEntityIds (Planning Data organisation-entity ids)
  5. 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

FieldDefault
tradesbuilt-in six trades
lookbackDays14
maxRunSeconds55
maxEvents500
resumeFromCheckpointtrue
sourceModefixture
emitFixtureDemoEventsfalse
requestPaceMs250

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)

EventPriceWhen charged
trade-lead-delivered$0.02 ($20 / 1,000)Each unique trade-matched newly-validated lead pushed to the dataset
apify-actor-start$0.00005Actor 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 + customTradeKeywords extension
  • 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
}