Land Insight Planning Applications API

Endpoints to search for planning applications and get details on individual applications.

Operations 4

POST /planning-applications/search Search for planning applications #
GET /planning-applications/{gss_code}/{ref} Details of a planning application #
GET /planning-applications/{app_id} Details of a planning application via app ID #
POST /planning-applications Bulk planning application details #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/land-insight-planning-applications-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

land-insight-planning-applications-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: LandTech Additional Opportunities Planning Applications API
  description: 'Search for land parcels and retrieve detailed insights on ownership, planning applications and property details.

    '
  version: 0.3.0
servers:
- url: https://app.land.tech/api
  description: LandTech API Service
security:
- ApiKeyAuth: []
tags:
- name: Planning Applications
  description: Endpoints to search for planning applications and get details on individual applications.
paths:
  /planning-applications/search:
    post:
      operationId: searchPlanningApplications
      summary: Search for planning applications
      description: 'Given a geometry, get a list of planning application references, grouped by the planning authority GSS code.

        '
      tags:
      - Planning Applications
      requestBody:
        description: A payload, including a GeoJSON geometry.
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                geometry:
                  oneOf:
                  - $ref: '#/components/schemas/Point'
                  - $ref: '#/components/schemas/Polygon'
                  - $ref: '#/components/schemas/MultiPolygon'
      responses:
        '200':
          description: Planning Application Refs
          content:
            application/json:
              schema:
                type: object
                required:
                - applications
                additionalProperties: false
                properties:
                  applications:
                    $ref: '#/components/schemas/PlanningApplicationRefs'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                errorResponse:
                  value:
                    error: 'Missing required body parameter: ''geometry'''
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
  /planning-applications/{gss_code}/{ref}:
    get:
      operationId: getPlanningApplication
      summary: Details of a planning application
      description: 'Get detailed information about a planning application, given its local authority GSS code and application reference.

        '
      tags:
      - Planning Applications
      parameters:
      - in: path
        name: gss_code
        required: true
        schema:
          $ref: '#/components/schemas/GSSCode'
        description: The GSS code of a planning authority, e.g. `E09000033`.
        example: E09000033
      - in: path
        name: ref
        required: true
        description: The planning application reference declared by the planning authority. It may contain slashes, e.g. `16/11109/FULL`. It's sensible, but not necessary, to "URL encode" this value.
        schema:
          type: string
          minLength: 1
          example: 16%2F11109%2FFULL
      responses:
        '200':
          description: Planning application details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlanningApplication'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: Application not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                errorResponse:
                  value:
                    error: Planning application not found
  /planning-applications/{app_id}:
    get:
      operationId: getPlanningApplicationById
      summary: Details of a planning application via app ID
      description: 'Get detailed information about a planning application, given a unique planning application ID e.g. a local authority GSS code and reference separated by a plus sign (`+`).

        '
      tags:
      - Planning Applications
      parameters:
      - in: path
        name: app_id
        required: true
        description: 'An ID comprised of a GSS code and ref separated by a plus sign (`+`) e.g. `E07000112+Y18/1381/FH`. It''s sensible, but not necessary, to "URL encode" this value.

          '
        schema:
          $ref: '#/components/schemas/PlanningApplicationId'
        example: E07000112%2BY18%2F1381%2FFH
      responses:
        '200':
          description: Planning application details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlanningApplication'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: Application not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                errorResponse:
                  value:
                    error: Planning application not found
  /planning-applications:
    post:
      operationId: getPlanningApplicationByIds
      summary: Bulk planning application details
      description: "Get detailed information about a set of planning applications, given a set of unique planning application IDs e.g. a local authority GSS code and reference separated by a plus sign (`+`).\n \n**Schema is subject to change.** ![Beta](https://img.shields.io/badge/Status-Beta-yellow)\n"
      tags:
      - Planning Applications
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                planning_applications:
                  type: array
                  description: 'List of IDs comprised of a GSS code and ref separated by a plus sign (`+`) e.g. `E07000112+Y18/1381/FH`.

                    '
                  items:
                    $ref: '#/components/schemas/PlanningApplicationId'
              required:
              - planning_applications
            example:
              planning_applications:
              - E07000112+Y18/1381/FH
              - E09000033+16/02592/LBC
      responses:
        '200':
          description: Planning application details
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlanningApplication'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: Application not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                errorResponse:
                  value:
                    error: Planning application not found
components:
  schemas:
    PolygonCoordinates:
      type: array
      items:
        $ref: '#/components/schemas/LinearRingCoordinates'
    Error:
      type: object
      anyOf:
      - properties:
          error:
            type: string
      - properties:
          error_msg:
            type: string
    GSSCode:
      type: string
      description: Geocode as maintained by the United Kingdom's Office for National Statistics (ONS) to represent a wide range of geographical areas of the UK.
      pattern: ^[EWS]\d{8}$
      example: E09000033
    PlanningApplication:
      type: object
      properties:
        id:
          type: string
          description: Internal LandTech ID of the planning application.
          example: E09000033+16/02592/LBC
        gss_code:
          allOf:
          - $ref: '#/components/schemas/GSSCode'
          - description: GSS code of the planning authority.
          - example: E09000033
        ref:
          type: string
          description: Reference number used by the planning authority.
          example: 16/02592/LBC
        num_dwellings:
          type: number
          description: Number of residential units we have identified the application is for.
          example: 1
        address:
          type: string
          description: Address of the property the application is for.
          example: Victoria Gate Lodge Hyde Park Bayswater Road London SW7 1NR
        title:
          type: string
          description: Description of the planning application.
          example: Internal and external alterations of the lodge including general internal and external repairs and refurbishment.
        location:
          description: GeoJSON of the location of the planning application, as a point.
          allOf:
          - $ref: '#/components/schemas/Point'
        boundary:
          description: GeoJSON of the boundary of the planning application, as a multipolygon, where available.
          type:
          - object
          - 'null'
          allOf:
          - $ref: '#/components/schemas/MultiPolygon'
        url:
          type:
          - string
          - 'null'
          description: URL to the planning authority's page. Where possible this links directly to the planning application.
          example: https://apps.stratford.gov.uk/eplanning/AppDetail.aspx?appkey=OA70D2PM00E00
        types_derived:
          description: Identified "types" of the application
          type: array
          items:
            type: string
            enum:
            - Full Application
            - Outline
            - Discharge of Conditions
            - GPDR
            - Reserved Matters
            - TPO
            - Listed Building
            - EIA
            - Change of Use
            - Proposal of Application Notice
        status:
          type:
          - string
          - 'null'
          description: Current status of the application, e.g. Decided.
          example: Permission with conditions
        decision:
          type:
          - string
          - 'null'
          description: The decision on the application, e.g. Permit.
          example: Permission with conditions
        date_received:
          type: string
          format: date-time
          description: Date the application was received by the authority.
          example: '2016-07-07T00:00:00.000Z'
        decision_date:
          type:
          - string
          - 'null'
          format: date-time
          description: Date the decision was made on the application.
          example: '2016-09-21T00:00:00.000Z'
        agent_address:
          type:
          - string
          - 'null'
          description: Address of the agent who submitted the application.
          example: The Studio, 42 Placeholder Avenue, Fictiontown-upon-Test, EX4 8MP
        agent_name:
          type:
          - string
          - 'null'
          description: Name of the agent who submitted the application.
          example: Joe Doe
        applicant_name:
          type:
          - string
          - 'null'
          description: Name of the person who submitted the application.
          example: John Smith
        status_derived:
          type: string
          enum:
          - Approved
          - Rejected
          - Pending
          - Withdrawn
          - Unknown
          description: Normalized status of the application.
          example: Approved
        updated:
          type: string
          format: date-time
          description: When the application was last processed by LandTech.
          example: '2023-05-26T03:09:36.191Z'
        classification:
          type: string
          enum:
          - RESIDENTIAL
          - COMMERCIAL
          - MIXED_USE
          - OTHER
          description: Classification of the application.
          example: RESIDENTIAL
        size:
          type: number
          description: Same as num_dwellings.
          example: 1
        found_num_dwellings:
          type: boolean
          description: Flag stating that we have identified a number of residential units (dwellings).
          example: false
        tags:
          description: A list of "tags" which describe features of the application. Often identifies a specific use class, or can be more generic such as "Demolition", "Hotel" or "Care Home".
          type:
          - array
          - 'null'
          items:
            type: string
          example:
          - Hotel
          - Demolition
          - Retail (A1)
          - Restaurants and cafés (A3)
          - Office (B1)
        appeal_case_number:
          description: The Planning Inspectorate (PINS) Reference Number
          type:
          - string
          - 'null'
          pattern: ^\d{7}$
          example: '1234567'
        appeal_type_of_appeal:
          description: Appeal type
          type:
          - string
          - 'null'
          example: Planning Appeal
        appeal_type_reason:
          description: Appeal reason (this field is only populated for certain types of appeals)
          type:
          - string
          - 'null'
          example: 1. Refused planning permission
        appeal_application_ref:
          description: Local Planning Authority application reference number relating to the appeal
          type:
          - string
          - 'null'
          example: P1284/13/OUT
        appeal_planning_authority_name:
          description: Local Planning Authority Name, if known
          type:
          - string
          - 'null'
          example: London Borough of Barnet
        appeal_site_address:
          description: Address of the site
          type:
          - string
          - 'null'
          example: The Annex, 7 Example Crescent, Testford-upon-Mere, XY45 6ZT
        appeal_decision:
          description: Appeal decision
          type:
          - string
          - 'null'
          example: Dismissed
        appeal_decision_date:
          description: If the Jurisdiction is Transferred then it is the date of the decision made by the Planning Inspectorate (PINS). If the Jurisdiction is Secretary of State then it is the date that the report was sent to the Secretary of State
          type:
          - string
          - 'null'
          example: '2017-08-02T00:00:00.000Z'
        appeal_received_date:
          description: Date received in Planning Inspectorate (PINS)
          type:
          - string
          - 'null'
          format: date-time
          example: '2014-05-15T00:00:00.000Z'
        appeal_development_type:
          description: Development type being appealed
          type:
          - string
          - 'null'
          example: Householder developments
        appeal_inspector_name:
          description: Planning Inspector's name, if known
          type:
          - string
          - 'null'
          example: James Smith
        appeal_appellant:
          description: Appellant's name
          type:
          - string
          - 'null'
          example: James Thompson
        appeal_updated_at:
          description: Date the appeal was processed by LandTech
          type:
          - string
          - 'null'
          format: date-time
          example: '2023-05-26T03:09:36.191Z'
        is_full_application:
          type: boolean
          description: Flag indicating "types_derived" includes "Full Application"
          example: false
        is_outline:
          type: boolean
          description: Flag indicating "types_derived" includes "Outline"
          example: false
        is_discharge_of_conditions:
          type: boolean
          description: Flag indicating "types_derived" includes "Discharge of Conditions"
          example: false
        is_gpdr:
          type: boolean
          description: Flag indicating "types_derived" includes "GPDR" (General Permitted Development - Class R)
          example: false
        is_reserved_matters:
          type: boolean
          description: Flag indicating "types_derived" includes "Reserved Matters"
          example: false
        is_tpo:
          type: boolean
          description: Flag indicating "types_derived" includes "TPO" (Tree Preservation Order)
          example: false
        is_listed_building:
          type: boolean
          description: Flag indicating "types_derived" includes "Listed Building"
          example: true
        is_eia:
          type: boolean
          description: Flag indicating "types_derived" includes "EIA" (Environmental Impact Assessment)
          example: false
        is_change_of_use:
          type: boolean
          description: Flag indicating "types_derived" includes "Change of Use"
          example: false
        is_uncategorised:
          type: boolean
          description: 'Flag indicating we have been unable to "derive" a "type" (i.e: "types_derived" is empty)'
          example: false
        is_minor:
          type: boolean
          description: Flag indicating we have identified the application is a "minor" application, i.e. Phone or Post Boxes, Kiosks, ATMs, Advertisements, Signage or Lighting.
          example: false
        related_applications:
          allOf:
          - description: Related planning applications
          - $ref: '#/components/schemas/PlanningApplicationRefs'
    Point:
      description: GeoJSON Point
      externalDocs:
        url: https://datatracker.ietf.org/doc/html/rfc7946
      type: object
      required:
      - type
      - coordinates
      properties:
        type:
          type: string
          enum:
          - Point
          example: Point
          description: the geometry type
        coordinates:
          $ref: '#/components/schemas/PointCoordinates'
    Forbidden:
      oneOf:
      - type: object
        required:
        - user
        properties:
          user:
            type: object
            required:
            - state
            properties:
              state:
                type: string
                enum:
                - expired
                - blocked
                example: expired
      - type: object
        required:
        - message
        properties:
          message:
            type: string
            example: User not found
    PlanningApplicationRefs:
      type: array
      items:
        type: object
        required:
        - gss_code
        - refs
        additionalProperties: false
        properties:
          gss_code:
            allOf:
            - $ref: '#/components/schemas/GSSCode'
            - description: The GSS code of a planning authority, e.g. `E09000033`.
            - example: E09000033
          refs:
            type: array
            minItems: 1
            items:
              type: string
              description: The planning application reference declared by the planning authority. It may contain slashes, e.g. `16/11109/FULL`.
              minLength: 1
              example: 16/02592/LBC
    MultiPolygon:
      description: GeoJSON MultiPolygon
      externalDocs:
        url: https://datatracker.ietf.org/doc/html/rfc7946
      type: object
      required:
      - type
      - coordinates
      properties:
        type:
          type: string
          enum:
          - MultiPolygon
          example: MultiPolygon
          description: the geometry type
        coordinates:
          type: array
          items:
            $ref: '#/components/schemas/PolygonCoordinates'
    Polygon:
      externalDocs:
        url: https://datatracker.ietf.org/doc/html/rfc7946
      type: object
      required:
      - type
      - coordinates
      properties:
        type:
          type: string
          enum:
          - Polygon
          example: Polygon
          description: the geometry type
        coordinates:
          $ref: '#/components/schemas/PolygonCoordinates'
    PointCoordinates:
      type: array
      maxItems: 2
      minItems: 2
      example:
      - -0.12755
      - 51.5073
      items:
        type: number
    PlanningApplicationId:
      type: string
      description: A unique planning application ID combining a planning authority GSS code and the application reference, separated by a `+` symbol.
      example: E07000112+Y18/1381/FH
      pattern: ^[EWS]\d{8}(?:\+|%2B)[\w\-\/%]+$
    LinearRingCoordinates:
      type: array
      minItems: 4
      items:
        $ref: '#/components/schemas/PointCoordinates'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key