UK Brownfield Development Sites avatar

UK Brownfield Development Sites

Pricing

from $1.70 / 1,000 brownfield site delivereds

Go to Apify Store
UK Brownfield Development Sites

UK Brownfield Development Sites

Find bounded, attributed brownfield-land records by exact English Local Planning Authority name using official Planning Data.

Pricing

from $1.70 / 1,000 brownfield site delivereds

Rating

0.0

(0)

Developer

Tim Zinin

Tim Zinin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Turn one to five exact English Local Planning Authority names into bounded, attributed brownfield-land records from the official Planning Data service. Every Dataset row keeps source facts, Crown copyright attribution, an Open Government Licence link, and an explicit screening caveat together.

Exact authority names become bounded, attributed official brownfield-site records

Use the Actor to build research watchlists, compare source-reported site characteristics, identify permission or deliverability segments, and feed repeatable property-marketing research. It does not identify owners or contacts and does not claim that a site is available, buildable, for sale, or suitable for investment.

In short, this is official register data for screening — not availability, buildability, owner data, valuation or advice.

What this Actor delivers

  • Official brownfield-land facts. Records come from planning.data.gov.uk, not scraped council pages, property listings, or an enrichment vendor.
  • Exact authority matching. Supply one to five current English LPA names, including the LPA suffix shown by Planning Data.
  • Bounded results. Return at most 100 matching records per requested authority and 500 records per run.
  • Useful source fields. Site reference, name, address, point, known hectares, dwelling range, source-reported permission, deliverability, ownership category, notes, plan/history links, and source dates.
  • Traceable output. Each row includes the matched authority, deterministic positions and ID, source count, truncation flag, attribution, licence URL, source URL, and caveat.
  • Fail-closed delivery. All authority and site responses are validated before the complete result batch is written. result-found is charged only after successful Dataset delivery.

Use cases for property marketers

  • Build a repeatable brownfield-market watchlist by LPA.
  • Compare source-reported permission, deliverability, known area, or dwelling-range segments.
  • Prioritize authorities and themes for factual market research or content planning.
  • Feed an internal CRM, spreadsheet, data warehouse, Make scenario, or n8n workflow with attributed records.
  • Refresh an authorized research dataset without copying facts manually from multiple records.

The output is a screening input. Any outreach, acquisition, development, valuation, planning, lending, legal, or investment decision requires independent verification and the appropriate professional advice.

Input

FieldRequiredLimitsMeaning
localPlanningAuthoritiesYes1–5 unique namesExact current Planning Data authority names, such as Lambeth LPA. Matching is case-insensitive after safe text normalization, but abbreviations and approximate names are not inferred.
maxSitesPerAuthorityYesInteger 1–100Maximum deterministic matching records retained for each authority.
permissionStatusYesUnique values from the closed listOptional local filter: PERMISSIONED, PENDING_DECISION, NOT_PERMISSIONED, or SOURCE_OTHER. Use [] for every source status.
deliverabilityYesUnique values from the closed listOptional local filter: DELIVERABLE, NOT_DELIVERABLE, UNKNOWN, or SOURCE_OTHER. Use [] for every source value.
minimumHectaresYes0–10,000; four decimal placesInclude only records with a known official hectares value at or above the threshold.
acknowledgeScreeningOnlyYesMust be trueConfirms that records are factual screening data and not availability, buildability, title, legal, planning, valuation, finance, or investment advice.

Unknown fields, duplicate normalized authority names, unsafe text, unrecognized filter values, over-limit requests, and a false acknowledgement reject the input before any result is delivered.

Output

Each delivered site keeps its source facts, attribution, licence, and screening caveat together

The default Dataset contains zero to 500 closed BROWNFIELD_SITE rows. A successful row contains:

GroupFields
IdentityrowId, officialEntityId, reference, siteName, siteAddress
Location and scalepoint, hectares, dwellingRange
Source classificationsdeliverability, ownershipCategory, planningPermission
Supporting source factsnotes, sitePlanUrl, planningPermissionHistoryUrls, sourceDates
Query tracerequestedAuthority, matchedAuthorityEntities, authorityPosition, resultPosition, sourceReportedCount, truncated
Rights and boundaryattribution, licenceUrl, sourceUrl, caveat

Representative shape:

{
"schemaVersion": "1.0",
"rowType": "BROWNFIELD_SITE",
"rowId": "64-character deterministic SHA-256 value",
"sourceDataset": "brownfield-land",
"officialEntityId": 1705636,
"reference": "BLR001",
"siteName": "Example source-reported site name",
"siteAddress": "Example source-reported site address",
"point": { "longitude": -0.109462, "latitude": 51.460578 },
"hectares": 1.61,
"dwellingRange": { "minimum": 304, "maximum": 304 },
"deliverability": "DELIVERABLE",
"ownershipCategory": "MIXED",
"planningPermission": {
"status": "PERMISSIONED",
"type": "FULL",
"date": "2017-03-23"
},
"requestedAuthority": { "name": "Lambeth LPA", "entity": 626195 },
"truncated": false,
"attribution": "© Crown copyright and database right 2026",
"licenceUrl": "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/",
"sourceUrl": "https://www.planning.data.gov.uk/dataset/brownfield-land"
}

Nullable source fields remain null; they are not guessed. Equal records matched through multiple requested authority boundaries collapse to one row with all matched authority entity IDs. Conflicting duplicate source facts fail the run instead of silently choosing one version.

Quick start

The prepared Task Find Lambeth brownfield sites (find-lambeth-brownfield-sites, Task ID k02gAzIVW4wunC9WS) uses a useful 25-row-per-authority cap:

{
"localPlanningAuthorities": ["Lambeth LPA"],
"maxSitesPerAuthority": 25,
"permissionStatus": [],
"deliverability": [],
"minimumHectares": 0,
"acknowledgeScreeningOnly": true
}

To use another area, replace Lambeth LPA with the exact current name exposed by Planning Data. Leave both filter arrays empty for all source classifications, then narrow only when the source categories fit your research question.

Make integration

  1. Add an HTTP Make a request module.
  2. Send POST https://api.apify.com/v2/acts/8LM9F77bAJNsbOgVJ/runs?token=YOUR_APIFY_TOKEN&waitForFinish=240 with Content-Type: application/json and the Actor input as the request body.
  3. Read data.defaultDatasetId from the response.
  4. Fetch GET https://api.apify.com/v2/datasets/DATASET_ID/items?clean=true&format=json.
  5. Route only the factual fields your workflow needs and retain attribution, licenceUrl, sourceUrl, and caveat with exported records.

For longer-running automation, start without waitForFinish, poll the returned run ID until it reaches a terminal status, and fetch items only after SUCCEEDED.

n8n integration

Use one HTTP Request node to start Actor ID 8LM9F77bAJNsbOgVJ, an If/Wait loop to require SUCCEEDED, and a second HTTP Request node to retrieve default Dataset items. Keep the input object closed: do not add credentials, contacts, personal data, or free-form confidential notes to Actor fields.

If a workflow uses filters, store their exact enum values in version-controlled configuration. Treat a successful zero-row run as a valid result for the selected authority and filters, not as proof that an authority has no brownfield sites.

API example

Start a run:

curl --request POST \
'https://api.apify.com/v2/acts/8LM9F77bAJNsbOgVJ/runs?token=YOUR_APIFY_TOKEN&waitForFinish=240' \
--header 'Content-Type: application/json' \
--data '{
"localPlanningAuthorities": ["Lambeth LPA"],
"maxSitesPerAuthority": 25,
"permissionStatus": [],
"deliverability": [],
"minimumHectares": 0,
"acknowledgeScreeningOnly": true
}'

Then retrieve the Dataset using the returned defaultDatasetId:

$curl 'https://api.apify.com/v2/datasets/DATASET_ID/items?clean=true&format=json&token=YOUR_APIFY_TOKEN'

Do not put a long-lived token in a shared URL, README, log, or spreadsheet. Use your automation platform's secret store and the narrowest practical Apify token permissions.

Data source and attribution

The Actor reads the official Planning Data brownfield-land dataset and the Planning Data entity API at https://www.planning.data.gov.uk/entity.json. It does not crawl council websites, follow site-plan/history links, query property portals, or use an external enrichment or model service.

Every delivered row includes:

  • © Crown copyright and database right 2026;
  • the Open Government Licence version 3.0 URL;
  • the official dataset URL; and
  • a caveat that coverage, freshness, permission, deliverability, and ownership categories are source facts rather than guarantees.

You remain responsible for complying with the licence, retaining required attribution, checking whether linked third-party material has separate rights, and verifying current primary records before relying on them.

Screening and advice boundary

PERMISSIONED, DELIVERABLE, PUBLIC_AUTHORITY, and other normalized values describe source-reported categories. They do not establish that land is currently available, buildable, correctly titled, owned by a named party, for sale, financeable, or appropriate for a particular project.

The Actor performs no title search, ownership/contact inference, valuation, viability model, contamination assessment, constraint analysis, planning advice, legal advice, lending advice, or investment recommendation. It does not send outreach, submit planning applications, or make automated decisions.

Pricing

Pay Per Event has one automatic apify-actor-start charge and one primary result-found charge per successfully delivered factual brownfield site row.

TierActor startEach delivered row25-row Task maximum500-row hard maximum
FREE$0.01300$0.00200$0.06300$1.01300
BRONZE$0.01235$0.00190$0.05985$0.96235
SILVER$0.01170$0.00180$0.05670$0.91170
GOLD$0.01105$0.00170$0.05355$0.86105
PLATINUM$0.01066$0.00164$0.05166$0.83066
DIAMOND$0.01040$0.00160$0.05040$0.81040

The 25-row Task maximum is one start plus 25 delivered rows. The hard maximum is one start plus 500 delivered rows. Actual result charges are lower when fewer rows are delivered; a valid zero-row result has no result-found charge. Input/source failure before Dataset delivery also produces no paid result charge. Apify displays the tier applicable to your account.

Privacy and retention

The input needs exact authority names and fixed filters only. Do not submit personal data, owner/contact details, credentials, confidential prose, or any information you lack the right to process.

Apify stores the original run INPUT in the run's default Key-Value Store and delivered rows in the default Dataset. Account permissions and Apify retention settings govern access and retention. The Actor does not erase those platform records. Configure retention, exports, and deletion for your own obligations.

The Actor never writes buyer input values, complete source bodies, site addresses, or source notes to logs or status messages.

FAQ

Why did I get authority_not_found?

The name must match a current Planning Data Local Planning Authority name after safe normalization. Include the displayed suffix, for example Lambeth LPA; the Actor does not guess abbreviations or nearby authorities.

Why did a successful run return zero rows?

The official response may contain no records for that authority, or your permission, deliverability, or minimum-hectares filters may exclude every validated row. Zero rows is not proof that no relevant land exists outside the source or selected filters.

What does truncated: true mean?

The source reported or returned more matching rows than maxSitesPerAuthority retained for that authority, or the bounded source request indicated additional records. Increase the cap up to 100 if the wider result fits your use case.

Can this Actor find owners, emails, phone numbers, or agents?

No. Ownership is a source category such as PUBLIC_AUTHORITY, NOT_PUBLIC_AUTHORITY, or MIXED; it is not an owner identity or contact lead. The Actor performs no owner or contact inference.

Does a permissioned or deliverable row mean I can develop the site?

No. Those are normalized source-reported facts. Check current planning records, title, constraints, viability, availability, rights, and professional advice independently.

Why did the run fail instead of returning partial rows?

The Actor validates all authority and site responses before its single Dataset write. Invalid, oversized, mistyped, conflicting, or unavailable source data fails closed so a partial batch is not presented as complete.

Limits and completeness

  • Coverage and freshness are limited to what Planning Data published when the run queried it.
  • Authority names and boundaries can change; exact current names are required.
  • Result ordering is deterministic for validated source data, but source facts may change between runs.
  • At most five authorities, 100 retained records per authority, and 500 delivered records per run are supported.
  • The minimum-hectares filter excludes records whose hectares value is unavailable.
  • Site plan and permission-history URLs are source facts; the Actor neither follows nor validates the content behind them.
  • Permission, deliverability, ownership, dwelling, area, and date fields may be missing, historical, inconsistent with other registers, or subsequently superseded.
  • sourceReportedCount and truncated describe the bounded source response and selected result, not universal market completeness.
  • This is factual screening data, not legal, title, planning, valuation, finance, lending, development, or investment advice.

For operational use, preserve the attribution and caveat, record the run time and Dataset ID, compare refreshes explicitly, and verify current primary sources before taking action.