NSW Development Application Leads — New lodgements
Pricing
$10.00 / 1,000 results
NSW Development Application Leads — New lodgements
Filtered, contact-redacted extract of newly lodged NSW development applications by council, status, and trade. Not affiliated with or endorsed by the NSW Department of Planning, Housing and Infrastructure or the NSW Planning Portal. Exact CC BY 4.0 attribution is in the README.
Pricing
$10.00 / 1,000 results
Rating
0.0
(0)
Developer
Mitchell
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Security
Limited permissionsShare
NSW DA Leads (Apify Actor)
New-lodged monitor for development applications published through the NSW Planning Portal DA Application Tracker. It POSTs a fixed JSON body to the public tracker endpoint, then applies optional council and trade filters.
Not affiliated with, and not endorsed by, the NSW Department of Planning, Housing and Infrastructure or the NSW Planning Portal. Do not use NSW Government logos. Full application documents live on the NSW Planning Portal, not in this dataset.
Data source (only): POST https://api.apps1.nsw.gov.au/eplanning/data/v0/DAApplicationTracker
This Actor does not call viewApplication / OnlineDA (those paths were 404 or required unknown parameters). There is no feedUrl or other URL input.
Output fields
Each dataset item is an allowlist. Applicant, owner, email, phone, contact, and person-name fields are never emitted (they are dropped if a future response adds them). Emails and phone numbers (AU, NZ, UK, US and international formats) inside free-text fields (fullAddress, development type, council, status, application type) are replaced with [redacted]. CostofDevelopment, dwelling counts, and storeys are not on this endpoint and are not output.
| Field | Description |
|---|---|
planningPortalAppNumber | PLANNING_PORTAL_APP_NUMBER |
councilName | COUNCIL_NAME |
status | STATUS |
typeOfDevelopment | TYPE_OF_DEVELOPMENT |
applicationType | APPLICATION_TYPE |
lodgementDate | LODGEMENT_DATE |
determinationDate | DETERMINATION_DATE when the tracker sends it, otherwise null |
fullAddress | FULL_ADDRESS as published |
longitude / latitude | GeoJSON Point coordinates (EPSG:4326) when geometry is present |
attribution | The full CC BY 4.0 attribution line, the same on every item: © State Government of NSW and NSW Department of Planning, Housing and Infrastructure 2021. This data is provided under a Creative Commons Attribution 4.0 licence http://creativecommons.org/licenses/by/4.0. Attribute NSW Department of Planning, Housing and Infrastructure. |
licence | CC BY 4.0 |
source | Dataset page on the Planning Portal open data site |
Inputs
| Input | Notes |
|---|---|
council | Optional substring(s) on council name. Multiple = OR. Resolved to exact CouncilDisplayName values (the API rejects a partial or a comma-separated list). |
status | Optional tracker status string or list, sent as one comma-separated ApplicationStatus. If omitted, this Actor sends All. The API itself defaults to On Exhibition when the field is left out; that default is not used here. |
tradePreset | Optional: solar, demolition, pool, dwelling, commercial, subdivision. Case-insensitive substring on TYPE_OF_DEVELOPMENT. Multiple = OR. |
keywords | Optional free-text substrings, matched the same way. OR with tradePreset. |
days | Lodgement window when dates are omitted. Default 7: LodgementDateFrom = Australia/Sydney today minus days, LodgementDateTo = today. |
lodgedFrom / lodgedTo | Optional YYYY-MM-DD pair. Overrides days. |
maxItems | Default 200, cap 2000. |
Council and status narrow the tracker query. Trade presets and keywords are applied locally because the tracker ignored DevelopmentType on the probe. A run stops after maxItems matches, 5,000 scanned features, or 120 tracker POSTs (including the council-list probe), whichever comes first.
Input validation
The run fails before any request is made when the input is invalid, with a message that names the field:
maxItemsmust be a whole number from 1 to 2000, anddaysfrom 1 to 366. Values outside the range fail the run; they are no longer silently capped.council,status,tradePresetandkeywordstake a string (comma-separated or a JSON array) or an array of strings, at most 50 values, each up to 100 characters.lodgedFromandlodgedTomust both be realYYYY-MM-DDdates, with from on or before to.- An unknown trade preset fails the run. Unknown input fields are ignored with a warning. If no council name matches the
counciltext, the run logs a warning and returns nothing.
Redaction and its trade-offs
Redaction uses the shared src/redact.js (an identical copy of the shared module; a test checks its SHA-256):
- Emails and phone numbers are replaced with
[redacted]incouncilName,status,typeOfDevelopment,applicationTypeandfullAddress. Street numbers, unit ranges such as34-36, lot and DP numbers, and postcodes are kept. typeOfDevelopmentis a free-text description, so it also loses a personal name that follows a label or sign-off (Contact: Jane CitizenbecomesContact: [redacted]). Organisation names are kept.fullAddressstays as the portal publishes it. A street address of a home can identify the owner, but it is the core of a DA lead and is public on the portal.- Number-like text that matches a phone pattern (8 to 15 digits with phone-style grouping) is replaced even when it was not a phone number.
Try this
One council, a 7-day lodgement window, and a cap of 5. Not every council.
{"council": "Sydney","days": 7,"maxItems": 5}
Request body that worked
Probed 3 Oct 2026 (PT) against the fixed endpoint. A successful new-lodged body looks like:
{"PageSize": 3,"PageNumber": 1,"ApplicationStatus": "All","LodgementDateFrom": "2026-09-26","LodgementDateTo": "2026-10-03"}
CouncilDisplayName is added only when a council filter resolves to one exact display name (one series of pages per council). Example: "CouncilDisplayName": "Council of the City of Sydney".
Fields the API refused or ignored
| Sent | Result |
|---|---|
ApplicationStatus string, including All and "Under Assessment, Determined" | Filters. All selects every status in applicationStatusList. |
ApplicationStatus JSON array | HTTP 400 |
ApplicationStatus omitted | API default On Exhibition only (this Actor does not do that) |
ApplicationStatus "" | TotalCount 0 |
LodgementDateFrom / LodgementDateTo | Filters LODGEMENT_DATE |
fromDate / toDate, lodgementFrom / lodgementTo | Ignored |
CouncilDisplayName exact | Filters that council |
CouncilDisplayName comma-separated or partial "Sydney" | TotalCount 0, nothing selected |
CouncilName, council, councilName, COUNCIL_NAME, Council, SelectedCouncil | Ignored |
APPLICATION_STATUS | Ignored |
DevelopmentType | Ignored (trade filter is local) |
ApplicationType | Accepted by the API but not an Actor input |
PageSize and PageNumber page the features array. Responses also include large lookup lists (councilList, developmentTypeList, and others). Body reads are capped at 8 MiB before parse. Non-JSON, non-200, and an unexpected shape fail the run.
Privacy
Rows are public planning-tracker fields plus licence attribution. This Actor does not add applicant, owner, email, phone, or contact details. fullAddress is the portal's published address string. Processing on Apify is the owner's deployment choice. The creator does not sell inputs for unrelated purposes.
Public records notice
- Data is as published by the NSW Planning Portal application tracker. It may lag council records or be incomplete. Check the application on the NSW Planning Portal or with the consent authority before relying on its status.
- Corrections go to the council or consent authority that handles the application, or to the NSW Department of Planning, Housing and Infrastructure, not to this Actor.
- Use any personal information in the results lawfully, including under the Privacy Act 1988 (Cth), NSW privacy law and, for marketing contact, the Spam Act 2003 (Cth).
Attribution
© State Government of NSW and NSW Department of Planning, Housing and Infrastructure 2021. This data is provided under a Creative Commons Attribution 4.0 licence http://creativecommons.org/licenses/by/4.0. Attribute NSW Department of Planning, Housing and Infrastructure.
This Actor emits a filtered, contact-redacted extract of tracker fields, not the original feed. It is not affiliated with, and not endorsed by, the NSW Department of Planning, Housing and Infrastructure or the NSW Planning Portal. Do not use NSW Government logos.
Known limits
- Tracker fields only. No cost, dwelling count, storeys, or document download.
- Date filter is whatever
LodgementDateFrom/LodgementDateTodo on the tracker (a probe row lodged inside the window was returned; inclusivity of the end date is the API's behaviour). - Wide windows plus a rare trade keyword can hit the 5,000-feature scan cap before
maxItems. - Be polite: identifying User-Agent, timeout, modest page size.