Purpose
One of the aims of this specification is to make data interoperable between systems. JSON schema allows us to do this with the data structure, but the implementation of APIs will also need to have standard implementations for applications to use the data efficiently.API Endpoints
The Digital Planning Data Schema defines two main API categories:Public Endpoints
Public endpoints do not require authentication and return redacted (non-sensitive) data. These are designed for public access and transparency. Base path:/api/@next/public/applications
- Applications listing and search
- Individual application details
- Documents associated with applications
- Public comments
- Specialist comments
Private Endpoints
Private endpoints require authentication and return unredacted data with sensitive information. These are for internal use by planning authorities. Base path:/api/@next/applications
- Full application data
- Unredacted documents
- Complete comment histories
- Submission capabilities
Authentication
All endpoints use header-based authentication:Client identifier for filtering data by planning authorityExample:
camdenService identifier for tracking API usageExample:
documentation-exampleData Formats
Dates
The API follows strict date formatting conventions:- Date-only values:
YYYY-MM-DDformat. Date keys should have the suffixDate. - DateTime values: ISO 8601 format in UTC. DateTime keys should have the suffix
At.
receivedDate: "2024-03-15"createdAt: "2024-03-15T10:30:00Z"
Available Endpoints
| HTTP Method | Path | Public | Pagination | Sort | Search |
|---|---|---|---|---|---|
| GET | /api/@next/public/applications | YES | YES | YES | YES |
| GET | /api/@next/public/applications/{applicationId} | YES | NO | NO | NO |
| GET | /api/@next/public/applications/{applicationId}/documents | YES | YES | YES | YES |
| GET | /api/@next/public/applications/{applicationId}/documents/{documentId} | YES | NO | NO | NO |
| GET | /api/@next/public/applications/{applicationId}/publicComments | YES | YES | YES | YES |
| GET | /api/@next/public/applications/{applicationId}/publicComments/{publicCommentId} | YES | NO | NO | NO |
| GET | /api/@next/public/applications/{applicationId}/specialistComments | YES | YES | YES | YES |
| GET | /api/@next/public/applications/{applicationId}/specialistComments/{specialistId} | YES | YES | YES | YES |
| GET | /api/@next/applications | NO | YES | YES | YES |
| GET | /api/@next/applications/{applicationId} | NO | NO | NO | NO |
| GET | /api/@next/applications/{applicationId}/documents | NO | YES | YES | YES |
| GET | /api/@next/applications/{applicationId}/documents/{documentId} | NO | NO | NO | NO |
| GET | /api/@next/applications/{applicationId}/publicComments | NO | YES | YES | YES |
| GET | /api/@next/applications/{applicationId}/publicComments/{publicCommentId} | NO | NO | NO | NO |
| GET | /api/@next/applications/{applicationId}/specialistComments | NO | YES | YES | YES |
| GET | /api/@next/applications/{applicationId}/specialistComments/{specialistId} | NO | YES | YES | YES |
| POST | /api/@next/applications/{applicationId}/publicComments | NO | n/a | n/a | n/a |
| POST | /api/@next/applications/{applicationId}/specialistComments | NO | n/a | n/a | n/a |
Next Steps
Response Structure
Learn about the standard API response format
Pagination
Implement offset and cursor-based pagination
Filtering
Use AND/OR filters and search parameters
Endpoints
Detailed endpoint specifications