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
6 hours ago
Last modified
Categories
Share
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 obvious phone numbers 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 | 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.
Example input
{"council": "Sydney","tradePreset": ["solar", "dwelling"],"keywords": "shed","days": 7,"maxItems": 50}
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.
Local development
Requirements: Node.js 18+.
cd /team/projects/01-apify-scrapers/src/nsw-da-leadsnpm installnpm test # offline fixture tests (no network)npm run smoke # live tracker smoke, PageSize small, at most 3 redacted rows
npm start expects the Apify runtime. Prefer npm test and npm run smoke here. Do not apify push from this MVP unless the owner asks.
Pricing (not set in this repo)
Target Store price when published later: pay-per-result US$0.01 per result. This MVP does not call the Apify pricing API and does not set a Store price.
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.
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.