Fields your plan does not include are left out of the response, not sent as null. Any other field can be null when the council has not published it. Dates are strings; coordinates are WGS84 numbers.
Application
Returned by list applications, get an application and inside portfolio matches.
| Field | Type | Plans | Description |
|---|
id | string | All | Stable, opaque id for the application: pa_ followed by 22 letters and digits. Store it to fetch the application or its conditions later. Do not parse it. |
reference | string or null | All | The council's own reference. Unique only within one council. |
authority | string or null | All | Local planning authority name, exactly as /api/v1/authorities lists it and as the authority filter expects it. |
address | string or null | All | Site address as the council published it. |
postcode | string or null | All | Site postcode, where known. |
description | string or null | All | The proposal, in the council's wording. |
app_type | string or null | All | Application type in the council's own terms, for example Full, Householder, Outline, Conditions or Trees. Wording varies between councils. |
app_state | string or null | All | Status, one of: Undecided, Permitted, Conditions, Rejected, Withdrawn, Appeal, Unresolved, Referred. See the state values table. |
decision | string or null | All | The council's decision wording once decided, otherwise null. |
start_date | string (YYYY-MM-DD) or null | All | Date the council received or validated the application (YYYY-MM-DD). The since and until filters use this date. |
decided_date | string (YYYY-MM-DD) or null | All | Decision date (YYYY-MM-DD), null until decided. The decided_since filter uses this date. |
lat | number or null | All | Latitude (WGS84) of the site, where known. |
lng | number or null | All | Longitude (WGS84) of the site, where known. |
url | string or null | All | The application's page on the council's own planning register, so you and your users can check the official record. Null when we hold no council page for it. |
docs_url | string or null | All | The council's documents page for the application, where it has a separate one. |
case_officer | string or null | All | Case officer name, where the council publishes it. |
attribution | string or null | All | A licence notice the record's source requires, otherwise null. Records published under the Open Government Licence carry "Contains public sector information licensed under the Open Government Licence v3.0." Keep it with the record and show it wherever you show the record publicly. |
agent_name | string or null | Pro, Leads, National | Agent (the architect or consultant acting for the applicant), where published. |
agent_company | string or null | Pro, Leads, National | Agent's company, where published. |
agent_address | string or null | Pro, Leads, National | Agent's business address, where published. |
agent_email | string or null | Pro, Leads, National | Agent's business email, where published. |
agent_phone | string or null | Pro, Leads, National | Agent's business phone, where published. |
applicant_company | string or null | Pro, Leads, National | Applicant, only when the applicant is a company. Private individuals' names are never returned. |
conditions_url | string | Plans with conditions | Relative path of this application's conditions endpoint. Present only on plans that include conditions. |
Applicant names and home addresses are never returned on any plan, to protect private individuals.
applicant_company is set only when the applicant is a company. Agent fields are business contact details but can identify people: using them is your responsibility under UK GDPR and PECR (see the
licence).
app_state values
| Value | Meaning |
|---|
Undecided | No decision yet (pending). |
Permitted | Granted. |
Conditions | Granted subject to conditions. |
Rejected | Refused. Use Rejected, not Refused, in the state filter. |
Withdrawn | Withdrawn by the applicant before a decision. |
Appeal | Under appeal. |
Unresolved | The council's record does not show a clear outcome. |
Referred | Referred to another body (for example the Secretary of State). |
attribution
Most records carry null. Some records are published under the Open Government Licence, and carry the notice it requires. Keep it with the record and show it wherever you show the record publicly, alongside the credit "Planning data from Planning Signal".
Condition
Returned by the conditions endpoints (API Pro, Leads and National).
| Field | Type | Description |
|---|
id | string | Opaque condition id: pc_ followed by 22 letters and digits. |
application_id | string or null | The parent application's id (pa_...), or null when the decision notice could not be tied to an application record. |
application_reference | string or null | The council's reference for the parent application. |
authority | string or null | Local planning authority name. |
condition_number | string or null | The condition's number on the decision notice, as text (councils number them differently). |
condition_text | string or null | The condition, in the council's wording. |
reason | string or null | The council's stated reason for the condition. |
disciplines | array of string | Discipline tags, possibly empty. Values: transport, ecology, arboriculture, drainage, contamination, heritage, acoustics, air-quality, energy, landscape, construction-management, highways, lighting, waste, fire-safety, structural, sustainability, land-stability, aviation, materials. |
decided_date | string or null | Decision date of the notice (usually YYYY-MM-DD). |
source_pdf_url | string or null | The council's own decision-notice document. |
created_at | string (ISO 8601) or null | When the condition was added to Planning Signal. The since filter on /api/v1/conditions uses this. |
Discipline tags
| Tag | Covers |
|---|
transport | Transport & highways |
ecology | Ecology |
arboriculture | Trees & arboriculture |
drainage | Drainage & flood risk |
contamination | Contaminated land |
heritage | Heritage & archaeology |
acoustics | Noise & acoustics |
air-quality | Air quality |
energy | Energy & sustainability |
landscape | Landscape |
construction-management | Construction management |
highways | Highways & access |
lighting | External lighting |
waste | Refuse & recycling |
fire-safety | Fire safety |
structural | Levels & structural |
sustainability | Sustainability & water |
land-stability | Land stability & mining |
aviation | Aviation safeguarding |
materials | Materials & details |
Authority
| Field | Type | Description |
|---|
authority | string | Council name, exactly as the authority filter expects it. |
count | integer | How many applications we hold for the council. |
Usage
| Field | Type | Description |
|---|
plan | string | demo, starter, pro, leads, portfolio or custom (National and other agreed plans). |
allowance | integer or null | Records in the current period (the whole demo allowance on the demo). |
used | integer | Records used in the current period. |
remaining | integer or null | Records left in the current period. |
resets | string (ISO 8601) or null | When the allowance resets (00:00 UTC on the 1st of next month). null on the demo, which never resets. |
contact_fields | boolean | Whether your plan includes the agent and applicant-company fields. |
conditions | boolean | Whether your plan includes the conditions endpoints. |
Portfolio site
| Field | Type | Description |
|---|
id | integer | Your site's id in Planning Signal. |
site_ref | string or null | Your own reference for the site, from your upload. |
name | string or null | Site label. |
address | string or null | Site address. |
postcode | string or null | Site postcode. |
lat | number or null | Latitude (WGS84). |
lng | number or null | Longitude (WGS84). |
uprn | string or null | UPRN, if you supplied one. |
region | string or null | Your grouping label. |
tags | array of string | Your tags (possibly empty). |
radius_m | integer | How far around the site is watched, in metres (50 to 2000). |
watch_on_site | boolean | Whether on-site matches are reported. |
active | boolean | Whether the site is being watched. |
geocode_status | string | ok (located exactly), approx (placed approximately) or failed. |
authority | string or null | The council the site is in, where known. |
covered | boolean or null | Whether that council is covered; null if not yet checked. |
created_at | string (ISO 8601) | When the site was added. |
updated_at | string (ISO 8601) | When the site last changed. |
Portfolio match
| Field | Type | Description |
|---|
id | integer | Match id. |
site_id | integer | The site's id (see /api/v1/portfolio/sites). |
site_ref | string or null | Your reference for the site. |
match_kind | string | on_site (the site is inside the application's red-line boundary) or nearby (within the site's radius). |
distance_m | integer or null | Distance from the site in metres (nearby matches). |
first_seen_at | string (ISO 8601) | When the match was first found. The since filter uses this. |
application | object | The application, with the same fields (and plan rules) as /api/v1/applications. |