NSW & Australian Council Planning Approvals & DA Tracker
Pricing
from $100.00 / 1,000 results
NSW & Australian Council Planning Approvals & DA Tracker
Extracts NSW Development Application (DA) metadata from the official NSW Planning Portal Open Data API and enriches it with trade-lead classification.
Pricing
from $100.00 / 1,000 results
Rating
0.0
(0)
Developer
Wollemi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
Turn freshly lodged NSW Development Applications into trade-ready sales leads. This Apify Actor pulls live Development Application (DA) metadata from the official NSW Planning Portal Open Data API, filters it to the councils, budgets and project types you care about, and tags every record with the trades likely to win work — pool builders, demolition crews, framers, concreters, electricians and more.
Keywords: NSW Planning Portal API, Sydney Council DA Scraper, Development Applications, Property Leads, building leads, construction leads, DA tracking NSW.
Why use it
When a DA is lodged, the clock starts. The builders, sub-contractors and buyers' agents who reach out first win the job. This actor answers one question for you every morning:
"Which development applications lodged near me this week need my trade — and are worth chasing?"
- Official source, daily fresh — data comes straight from the keyless NSW Planning Portal Online DA Data API (DAs since 2018, updated daily).
- Zero setup to first value — no data API key required at all. It returns real, classified leads on the very first run.
- Trade-lead classification — every record includes
tradeOpportunities, plus flags for pools, demolition and commercial work, and an explainablelead_score. - Pay only for what you use — priced per dataset item, with a hard
maxResultscap so a run can never surprise you.
What you get (output schema)
Each dataset item looks like this:
{"da_number": "PAN-664006","council_lga": "Inner West Council","lodgement_date": "2026-08-18","status": "Additional Information Requested","development_type": "Dwelling house, Alterations or additions to an existing building or structure","location": {"street_address": "28A ROWNTREE STREET BALMAIN 2041","suburb": "BALMAIN","postcode": "2041","lat": -33.855257425,"lng": 151.178232655},"valuation": { "estimated_cost_aud": 250000 },"raw_description": "Dwelling house; Alterations or additions to an existing building or structure; 1 new dwelling; 1 storey","ai_structured_insights": {"projectCategory": "new dwelling","isCommercial": false,"hasDemolition": false,"hasSwimmingPool": false,"tradeOpportunities": ["framing carpenter", "concreting", "bricklaying", "roofing", "electrical", "plumbing"],"classification_method": "rules","confidence": 0.85},"lead_score": 74,"links": { "portal_url": "https://www.planningportal.nsw.gov.au" },"scraped_at": "2026-08-24T10:58:31.368Z"}
Input
| Field | Type | Default | Description |
|---|---|---|---|
councilLga | string (enum) | Inner West Council | Council to track, or ALL. |
daysBack | integer (1–90) | 7 | Lookback window from today. |
minCostAud | integer | 100000 | Minimum estimated development cost. |
status | string (enum) | Any | Lodged, Under Assessment, Determined, or Any. |
tradeFocus | string (enum) | Any | Only return DAs relevant to one trade. |
enableLlmEnrichment | boolean | false | Optional. Use gpt-4o-mini for trade inference on unrecognised development types. |
openaiApiKey | string (secret) | — | Optional. Falls back to rules if absent. |
maxResults | integer (≤1000) | 100 | Hard cap on billable items per run. |
How the classification works
The NSW open dataset is structured — it exposes a categorical DevelopmentType list and flags (new dwellings, subdivision, storeys) rather than free-text prose. So a hybrid pipeline keeps cost near zero while staying accurate and reliable:
- Structured fields from the API (cost, development type, dwelling counts, subdivision flag) drive classification directly and deterministically.
- Deterministic rules map those signals to a project category and a trade bundle, negation-aware for the rare cases prose appears.
- The LLM (
gpt-4o-mini) is optional and off by default. Because the data is already structured, rules do the heavy lifting; enable the LLM only if you want it to infer additionaltradeOpportunitiesforDevelopmentTypecombinations the rules do not recognise. Every item records whether it was classified byrulesorllm.
Usage examples
cURL (Apify API)
curl -X POST "https://api.apify.com/v2/acts/roomy_stove~aus-council-da-tracker/run-sync-get-dataset-items?token=APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"councilLga": "Inner West Council","daysBack": 7,"minCostAud": 100000,"tradeFocus": "Swimming Pool","maxResults": 50}'
Python (requests)
import requestsresp = requests.post("https://api.apify.com/v2/acts/roomy_stove~aus-council-da-tracker/run-sync-get-dataset-items",params={"token": "APIFY_TOKEN"},json={"councilLga": "ALL","daysBack": 14,"minCostAud": 500000,"tradeFocus": "Demolition","maxResults": 100,},timeout=300,)resp.raise_for_status()for da in resp.json():print(da["da_number"], da["lead_score"], da["ai_structured_insights"]["tradeOpportunities"])
Node.js (apify-client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'APIFY_TOKEN' });const run = await client.actor('roomy_stove/aus-council-da-tracker').call({councilLga: 'City of Sydney',daysBack: 7,minCostAud: 250000,maxResults: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} DA leads`);
Tips for recurring lead feeds
- Schedule it. Use Apify Schedules to run daily and stream new DAs into your CRM.
- Integrate it. Pipe the dataset into Zapier / Make / a webhook to auto-create leads.
- Narrow with
tradeFocusso you only pay for leads you can act on.
Legal, privacy & attribution
- Data source & licence: Data is sourced from the NSW Planning Portal Online DA Data API and is licensed Creative Commons Attribution (CC-BY). Attribution: "© State Government of NSW and NSW Department of Planning, Housing and Infrastructure."
- Privacy: Individual home-owner names, personal phone numbers and private email addresses are stripped from output. Only public proposal metadata and corporate/business applicant entities are retained.
- Copyright / IP: This actor extracts text and numeric metadata only. It does not re-host or parse copyrighted architectural plans, engineering drawings or PDFs. Use the
portal_urlandda_numberto view the official record. - Disclaimer: This dataset is provided for public informational metadata purposes only and does not constitute legal, planning or financial advice. Always verify against the official NSW Planning Portal before acting.