Documentation menu
Endpoints
List conditions
GET
/api/v1/conditionsSearch decision-notice conditions across every council, by discipline and phrase.
Returns conditions matching every filter you give, in the order they were added to Planning Signal, oldest first. Use since to collect new ones.
Each condition returned uses one record, unless you already received it this period.
- Access: API Pro, Leads and National.
- Records: one per condition returned, free if already returned this period. See records and allowances.
Parameters
| Parameter | Type | Description |
|---|---|---|
discipline | string | Only conditions carrying this discipline tag (case-insensitive).Values: see the discipline list.Any other value matches nothing and returns an empty list. |
q | string | Case-insensitive phrase matched anywhere in condition_text. |
since | date or timestamp | Only conditions added to Planning Signal on or after this date or timestamp (created_at). A date such as 2026-10-01 means midnight UTC.400 bad_request if it is not a date or timestamp. |
limit | integer 1-100Default: 20 | Page size, 1 to 100. Defaults to 20.Missing, zero or non-numeric values use 20; values above 100 are treated as 100. |
cursor | string | next_cursor from the previous page, passed back exactly as returned (cur_...).400 bad_request if altered, or if it came from another endpoint. |
Example request
curl "https://planningsignal.co.uk/api/v1/conditions?discipline=transport&q=travel+plan&since=2026-09-20&limit=2" \
-H "Authorization: Bearer ps_live_your_key_here"Example response
{
"data": [
{
"id": "pc_7HfK2wQe9TzB4nLx0sVdMa",
"application_id": "pa_3kTq9ZxV1bN7cR2mW8yLpA",
"application_reference": "2026/4417/P",
"authority": "Camden",
"condition_number": "4",
"condition_text": "Prior to first occupation, a Travel Plan shall be submitted to and approved in writing by the local planning authority.",
"reason": "To promote sustainable modes of transport.",
"disciplines": [
"transport"
],
"decided_date": "2026-09-22",
"source_pdf_url": "https://planning.example-council.gov.uk/documents/2026-4417-P-decision.pdf",
"created_at": "2026-09-23T06:12:44.000Z"
},
{
"id": "pc_2Bn8Qw5RtY1uI9oP3aSdFg",
"application_id": "pa_6Jd1Rz0QmX8bV4nT2kLwEs",
"application_reference": "26/02118/FUL",
"authority": "Leeds",
"condition_number": "11",
"condition_text": "No part of the development shall be occupied until a Travel Plan, including targets and a monitoring programme, has been submitted to and approved in writing by the Local Planning Authority.",
"reason": "In the interests of sustainable travel.",
"disciplines": [
"transport",
"highways"
],
"decided_date": "2026-09-25",
"source_pdf_url": "https://publicaccess.example-council.gov.uk/documents/26-02118-FUL-decision.pdf",
"created_at": "2026-09-26T05:58:12.000Z"
}
],
"next_cursor": "cur_5RbJ8uYc3XeN1qGh6tZkWo"
}Pass next_cursor back as cursor for the next page; it is null on the last page. See pagination.
Errors
| Status | code | When |
|---|---|---|
| 400 | bad_request | Bad since value or altered cursor. |
| 403 | plan_required | Your plan does not include conditions. |
| 401 | unauthorized | Missing, invalid or revoked key. |
| 429 | rate_limited | Over 60 requests a minute. |
| 429 | records_exhausted | No new record fits in your remaining allowance. |
| 500 | server_error | Something failed on our side. Retry shortly. |
Every error has the same JSON shape: { "error": "...", "code": "..." }, with extra fields on some codes. Full bodies are on rate limits and errors.
Conditions need API Pro, the Leads website plan or National. A demo or Starter key gets
403 with code plan_required:{
"error": "The conditions endpoints are part of API Pro.",
"code": "plan_required",
"upgrade_url": "https://planningsignal.co.uk/developers#pricing"
}Questions? Contact us, or see the help centre.