{
  "openapi": "3.0.1",
  "info": {
    "title": "UK Planning Applications",
    "description": "Planning applications from every UK council in one feed, classified by work type such as solar, extension or loft conversion, with site address, applicant and agent details.",
    "version": "0.1",
    "x-build-id": "tl8hqj9ZUuJ3YhHdP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/spookyweb~uk-planning-applications/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-spookyweb-uk-planning-applications",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/spookyweb~uk-planning-applications/runs": {
      "post": {
        "operationId": "runs-sync-spookyweb-uk-planning-applications",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/spookyweb~uk-planning-applications/run-sync": {
      "post": {
        "operationId": "run-sync-spookyweb-uk-planning-applications",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "recentDays": {
            "title": "Applications from the last N days",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Return applications submitted in the last N days. 0 means today only. Leave blank to use a specific date range instead."
          },
          "startDate": {
            "title": "Start date",
            "type": "string",
            "description": "Earliest application date, YYYY-MM-DD. Ignored if 'Applications from the last N days' is set."
          },
          "endDate": {
            "title": "End date",
            "type": "string",
            "description": "Latest application date to return, as YYYY-MM-DD. Leave blank to search up to today. Pair it with the start date to pull a single week as a lead list."
          },
          "areas": {
            "title": "Councils",
            "type": "string",
            "description": "Comma separated council names, for example: Cambridge, Fylde, Southwark. Leave blank to search every UK council."
          },
          "postcode": {
            "title": "Postcode",
            "type": "string",
            "description": "Search around a postcode instead of by council, for example CB1 2AB."
          },
          "radiusKm": {
            "title": "Radius in km",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Search radius around the postcode or coordinates. Keep this at 10 or below. PlanIt's own data source gives up after 45 seconds, and a radius above about 10km times out far more often than it succeeds, whatever date range you pair it with. Several smaller searches are faster and far more reliable than one wide one.",
            "default": 5
          },
          "opportunityTags": {
            "title": "Opportunity types",
            "type": "array",
            "description": "Only return applications matching these work types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "solar",
                "extension",
                "loft-conversion",
                "new-dwelling",
                "change-of-use",
                "demolition",
                "roofing",
                "windows-doors",
                "driveway-landscaping",
                "trees",
                "signage",
                "listed-building",
                "commercial"
              ]
            },
            "default": []
          },
          "applicationState": {
            "title": "Decision status",
            "enum": [
              "",
              "Undecided",
              "Permitted",
              "Rejected",
              "Withdrawn",
              "Conditions"
            ],
            "type": "string",
            "description": "Filter by status. Undecided applications are the freshest leads.",
            "default": ""
          },
          "applicationSize": {
            "title": "Development size",
            "enum": [
              "",
              "Small",
              "Medium",
              "Large"
            ],
            "type": "string",
            "description": "Filter by scale of development as classified by PlanIt.",
            "default": ""
          },
          "searchText": {
            "title": "Description contains",
            "type": "string",
            "description": "Free text search of the application description."
          },
          "developerText": {
            "title": "Applicant or agent contains",
            "type": "string",
            "description": "Search applicant and agent company names and addresses. Useful for tracking a competitor or a specific developer."
          },
          "maxResults": {
            "title": "Max applications",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Hard cap on results. Each application is one billable result.",
            "default": 500
          },
          "pageSize": {
            "title": "Page size",
            "minimum": 10,
            "maximum": 300,
            "type": "integer",
            "description": "Records requested per API call. Leave as default unless you have a reason.",
            "default": 200
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}