{
  "openapi": "3.0.1",
  "info": {
    "title": "Planning Applications & Building Permits Scraper | Leads",
    "description": "Find planning and building permit projects in London, Nottingham, Ireland, NSW, San Francisco and Toronto. Choose from 161 city, council and region presets. Filter dates and work types, export source records and monitor changes. Official public data; coverage and dates labelled.",
    "version": "0.1",
    "x-build-id": "xyscPldZjfg0D1YD0"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/skyfishdev~london-planning-leads/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-skyfishdev-london-planning-leads",
        "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/skyfishdev~london-planning-leads/runs": {
      "post": {
        "operationId": "runs-sync-skyfishdev-london-planning-leads",
        "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/skyfishdev~london-planning-leads/run-sync": {
      "post": {
        "operationId": "run-sync-skyfishdev-london-planning-leads",
        "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": {
          "city": {
            "title": "City / region / council",
            "enum": [
              "London",
              "Nottingham",
              "Ireland",
              "New South Wales",
              "Carlow County Council",
              "Cavan County Council",
              "Clare County Council",
              "Cork City Council",
              "Cork County Council",
              "Donegal County Council",
              "Dublin City Council",
              "Dun Laoghaire Rathdown County Council",
              "Fingal County Council",
              "Galway City Council",
              "Galway County Council",
              "Kerry County Council",
              "Kildare County Council",
              "Kilkenny County Council",
              "Laois County Council",
              "Leitrim County Council",
              "Limerick County Council",
              "Longford County Council",
              "Louth County Council",
              "Mayo County Council",
              "Meath County Council",
              "Monaghan County Council",
              "Offaly County Council",
              "Roscommon County Council",
              "Sligo County Council",
              "South Dublin County Council",
              "Tipperary County Council",
              "Waterford City and County Council",
              "Westmeath County Council",
              "Wexford County Council",
              "Wicklow County Council",
              "Albury City Council",
              "Armidale Regional Council",
              "Ballina Shire Council",
              "Balranald Shire Council",
              "Bathurst Regional Council",
              "Bayside Council",
              "Bega Valley Shire Council",
              "Bellingen Shire Council",
              "Berrigan Shire Council",
              "Blacktown City Council",
              "Bland Shire Council",
              "Blayney Shire Council",
              "Blue Mountains City Council",
              "Bogan Shire Council",
              "Bourke Shire Council",
              "Brewarrina Shire Council",
              "Broken Hill City Council",
              "Burwood Council",
              "Byron Shire Council",
              "Cabonne Shire Council",
              "Camden Council",
              "Campbelltown City Council",
              "Canterbury-Bankstown Council",
              "Carrathool Shire Council",
              "Central Coast Council",
              "Central Darling Shire Council",
              "Cessnock City Council",
              "City of Canada Bay Council",
              "City of Parramatta Council",
              "Clarence Valley Council",
              "Cobar Shire Council",
              "Coffs Harbour City Council",
              "Coolamon Shire Council",
              "Coonamble Shire Council",
              "Cootamundra-Gundagai Regional Council",
              "Cowra Shire Council",
              "Cumberland Council",
              "Dubbo Regional Council",
              "Dungog Shire Council",
              "Edward River Council",
              "Eurobodalla Shire Council",
              "Fairfield City Council",
              "Federation Council",
              "Forbes Shire Council",
              "Georges River Council",
              "Gilgandra Shire Council",
              "Glen Innes Severn Shire Council",
              "Goulburn Mulwaree Council",
              "Greater Hume Shire Council",
              "Griffith City Council",
              "Gunnedah Shire Council",
              "Gwydir Shire Council",
              "Hawkesbury City Council",
              "Hay Shire Council",
              "Hilltops Council",
              "Inner West Council",
              "Inverell Shire Council",
              "Junee Shire Council",
              "Kempsey Shire Council",
              "Ku-ring-gai Council",
              "Kyogle Council",
              "Lachlan Shire Council",
              "Lake Macquarie City Council",
              "Lane Cove Municipal Council",
              "Leeton Shire Council",
              "Lismore City Council",
              "Lithgow City Council",
              "Liverpool City Council",
              "Liverpool Plains Shire Council",
              "Lockhart Shire Council",
              "Maitland City Council",
              "Mid-Coast Council",
              "Mid-Western Regional Council",
              "Moree Plains Shire Council",
              "Mosman Municipal Council",
              "Murray River Council",
              "Murrumbidgee Council",
              "Muswellbrook Shire Council",
              "Nambucca Valley Council",
              "Narrabri Shire Council",
              "Narrandera Shire Council",
              "Narromine Shire Council",
              "Newcastle City Council",
              "North Sydney Council",
              "Northern Beaches Council",
              "Oberon Council",
              "Orange City Council",
              "Parkes Shire Council",
              "Penrith City Council",
              "Port Macquarie-Hastings Council",
              "Port Stephens Council",
              "Queanbeyan-Palerang Regional Council",
              "Randwick City Council",
              "Richmond Valley Council",
              "Ryde City Council",
              "Shellharbour City Council",
              "Shoalhaven City Council",
              "Singleton Council",
              "Snowy Monaro Regional Council",
              "Snowy Valleys Council",
              "Strathfield Municipal Council",
              "Sutherland Shire Council",
              "Tamworth Regional Council",
              "Temora Shire Council",
              "Tenterfield Shire Council",
              "The Hills Shire Council",
              "Tweed Shire Council",
              "Upper Hunter Shire Council",
              "Upper Lachlan Shire Council",
              "Uralla Shire Council",
              "Wagga Wagga City Council",
              "Walcha Council",
              "Walgett Shire Council",
              "Warren Shire Council",
              "Warrumbungle Shire Council",
              "Waverley Council",
              "Weddin Shire Council",
              "Wentworth Shire Council",
              "Willoughby City Council",
              "Wingecarribee Shire Council",
              "Wollondilly Shire Council",
              "Wollongong City Council",
              "Woollahra Municipal Council",
              "Yass Valley Council",
              "San Francisco",
              "Toronto"
            ],
            "type": "string",
            "description": "Choose a city, national/regional feed or specific Irish/NSW council. UK and Ireland supply planning records; NSW development applications; San Francisco and Toronto building permits. Source dates and freshness differ. For NSW choose alterations/additions. Toronto has no radius support.",
            "default": "London"
          },
          "postcode": {
            "title": "Postcode near selected city",
            "type": "string",
            "description": "Optional full postcode: TW5 9LN (London) or NG1 5FS (Nottingham). Radius uses source-supplied site coordinates. Leave blank for the whole selected city. Choose the matching city first."
          },
          "latitude": {
            "title": "Latitude (optional)",
            "minimum": -90,
            "maximum": 90,
            "type": "number",
            "description": "Optional site-search centre for any supported country. Provide longitude too; leave postcode blank. Example Galway: 53.2707; Newcastle NSW: -32.9283."
          },
          "longitude": {
            "title": "Longitude (optional)",
            "minimum": -180,
            "maximum": 180,
            "type": "number",
            "description": "Optional site-search centre paired with latitude. Example Galway: -9.0568; Newcastle NSW: 151.7817. Coordinates are not a substitute for council coverage."
          },
          "radiusKm": {
            "title": "Radius in kilometres",
            "minimum": 0.1,
            "maximum": 50,
            "type": "number",
            "description": "Distance around a UK postcode or supplied latitude/longitude. Omit all centre fields for the full selected council or region. Only supported-authority records with site coordinates can pass a radius filter.",
            "default": 5
          },
          "boroughs": {
            "title": "London planning authorities",
            "type": "array",
            "description": "Optional authority filter. Empty means all London authorities in the official source. Missing or delayed source records can affect coverage.",
            "items": {
              "type": "string",
              "enum": [
                "Barking & Dagenham",
                "Barnet",
                "Bexley",
                "Brent",
                "Bromley",
                "Camden",
                "City of London",
                "Croydon",
                "Ealing",
                "Enfield",
                "Greenwich",
                "Hackney",
                "Hammersmith & Fulham",
                "Haringey",
                "Harrow",
                "Havering",
                "Hillingdon",
                "Hounslow",
                "Islington",
                "Kensington & Chelsea",
                "Kingston",
                "Lambeth",
                "Lewisham",
                "Merton",
                "Newham",
                "Redbridge",
                "Richmond",
                "Southwark",
                "Sutton",
                "Tower Hamlets",
                "Waltham Forest",
                "Wandsworth",
                "Westminster",
                "LLDC",
                "OPDC",
                "OSDC"
              ]
            },
            "default": []
          },
          "workTypes": {
            "title": "Project types",
            "type": "array",
            "description": "Keyword matching against the source proposal or categories. NSW supplies broad categories rather than detailed proposals: choose alteration for alterations/additions there. This does not establish contractor intent.",
            "items": {
              "type": "string",
              "enum": [
                "extension",
                "loft",
                "alteration"
              ],
              "enumTitles": [
                "Extensions",
                "Loft / dormer / mansard work",
                "Alterations / additions (recommended for NSW)"
              ]
            },
            "default": [
              "extension",
              "loft"
            ]
          },
          "recentDays": {
            "title": "Recent application window (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Include the last N calendar days, including today, using the explicit source date basis (validation, case, received or lodged). Delayed upstream feeds can omit recent records. Explicit dates override this window.",
            "default": 30
          },
          "dateFrom": {
            "title": "From date (optional)",
            "type": "string",
            "description": "Optional YYYY-MM-DD application start date. Maximum date window is 366 days. No future dates."
          },
          "dateTo": {
            "title": "To date (optional)",
            "type": "string",
            "description": "Optional YYYY-MM-DD application end date. Defaults to today. No future dates."
          },
          "statuses": {
            "title": "Project stages",
            "type": "array",
            "description": "Optional normalized stage filter. Any keeps all stages, including unknown source statuses. Council status and decision are also returned verbatim. Approved includes lawful-development and prior-approval outcomes.",
            "items": {
              "type": "string",
              "enum": [
                "any",
                "pending",
                "approved",
                "refused",
                "withdrawn"
              ],
              "enumTitles": [
                "Any stage",
                "Pending",
                "Approved / lawful / permitted",
                "Refused",
                "Withdrawn"
              ]
            },
            "default": [
              "any"
            ]
          },
          "includeRetrospective": {
            "title": "Include retrospective work",
            "type": "boolean",
            "description": "Off by default: excludes proposals explicitly described as retrospective or already completed. Source descriptions cannot guarantee work has not started.",
            "default": false
          },
          "includeAmendments": {
            "title": "Include amendments and conditions",
            "type": "boolean",
            "description": "Off by default: excludes explicit non-material amendments, condition variations and approval-of-details records.",
            "default": false
          },
          "monitor": {
            "title": "Remember delivered projects",
            "type": "boolean",
            "description": "Enable scheduled monitoring. First run delivers matching projects; subsequent runs deliver only new projects or changed details. Private baseline is isolated by user and filters. No removals are inferred. Cloud only; overlapping runs of the same monitor are rejected.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Use the same name and filters to continue a monitor, or a new name to start again. 1–40 letters, digits, hyphens or underscores. Up to 20,000 tracked projects per monitor.",
            "default": "default"
          },
          "maxResults": {
            "title": "Maximum delivered records",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Global output and billing cap. When reached, RUN_STATS reports a partial preview. Repeat a monitor run to collect remaining unseen projects.",
            "default": 100
          },
          "maxCandidates": {
            "title": "Maximum candidate records to inspect",
            "minimum": 100,
            "maximum": 10000,
            "type": "integer",
            "description": "Bounds source requests and runtime, including records later filtered out or already delivered. Raise for large monitors. Hitting the cap reports partial coverage.",
            "default": 2000
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}