UK planning applications in Power BI
Load classified UK planning applications straight into a Power BI model with Power Query.
Plota brings UK planning applications from 389 council planning portals into one classified, source-linked dataset. Pull it into Power BI and you are working with consistent fields across every authority - the same category, decision stage and consent route whichever council published the record, with each council's own wording kept alongside - so a comparison across areas is a like-for-like one rather than an exercise in reconciling council vocabularies.
Before you start
- Get an API key. A free demo key reads the search endpoint, so you can check the fields against your own patch before paying; bulk export is Starter and above.
- Decide which councils, categories and date range you want. Every filter in the API docs works here.
How to load Plota data into Power BI
Add a blank query
In Power BI Desktop: Home → Get data → Blank query, then Advanced Editor.
Call the API with your key in the header
Power Query sends the bearer token as a header, so the key never sits in the URL or in a shared query string:
let
Source = Json.Document(Web.Contents("https://api.plota.co.uk/v1/applications", [
Query = [council = "wandsworth", category = "extensions", limit = "100"],
Headers = [#"Authorization" = "Bearer plota_live_your_key"]
])),
Rows = Table.FromRecords(Source[data])
in
RowsExpand the nested columns
authority expands to slug and name; category to slug and label; location to lat, lng and precision; key_dates to the statutory dates. Two columns are easy to confuse and worth getting right in the model: status is the council’s own wording, so it is useless as a grouping key across authorities, while stage is Plota’s normalised value (pending, approved, refused, withdrawn, decided for a determination with no single grant or refusal, other for a record with no outcome from that council). Group on stage, label with status.
Page through the result
Page size is capped by plan (10 on Demo, 50 Starter, 100 Pro, 250 Business), so a whole council is several calls. Loop on meta.next_cursor and stop when it comes back null - on paid plans the cursor carries on seamlessly from live records into the pre-2026 archive.
Refresh incrementally
Every record carries changed_at, the moment its content last changed. Store the largest value you have seen and send it back as changed_since, and the refresh pulls only what has actually moved - a new status, a decision, a new document - rather than the whole set. updated_at moves on every re-check and is not the signal. The change feed covers live records only - archive records never change, so they carry a null changed_at and stay out of an incremental pull. Pro plan and above; Starter and Demo keys get a 403 naming the parameter:
"https://api.plota.co.uk/v1/applications?changed_since=2026-08-01T00:00:00Z&council=wandsworth"Check the data against the source
Every row carries plota_url and, where the council publishes one, council_url. Keep both in your model: anyone questioning a figure can open the official council record from the row rather than taking the number on trust. Coverage and last-checked times for every authority are on the coverage page.
Power BI integration FAQ
Can I get UK planning applications into Power BI?
Yes. Power BI reads the Plota API directly, so no automation platform sits in between. Each record carries the planning reference, authority, address, description, classified category, consent route, status, received / validated / decision dates, coordinates, and links to the official council source and the Plota page.
Do I need to write code to connect Plota to Power BI?
No code beyond the query itself. You point Power BI at the Plota endpoint with your API key, choose the councils, categories and date range you want, and the fields arrive already normalised across authorities.
What planning data comes through to Power BI?
Every row carries the reference, authority, address, postcode, description, Plota's classified category, consent route, status and stage, the received / validated / decision dates, the key statutory dates, latitude and longitude, dwelling count where stated, the Plota page URL and the official council source URL.
How do I keep the data in Power BI up to date?
Pass changed_since with the timestamp of your last successful run. Plota returns only the records whose content has changed since then - a new status, a decision, a new document, a revised description - so a scheduled refresh stays small and does not re-pull records that have not moved.
How current is the planning data?
Plota checks UK council planning portals daily and classifies new applications, so a refresh in Power BI reflects what councils published rather than a periodic manual gather.
Is the Power BI integration free?
You can test the API with a free demo key. Production pulls into Power BI run on the Starter plan and above; Plota's public planning search and email alerts stay free.