This is a scraper that runs on Morph. To get started see the documentation
Add any issues to https://github.com/planningalerts-scrapers/issues/issues
bundle exec ruby scraper.rb
The planning permit register sits behind AWS WAF, which challenges requests that
don't look like they came from a browser and challenges morph.io's US datacentre
address even when they do. The scraper sends a browser User-Agent, and on
morph.io MORPH_AUSTRALIAN_PROXY must be set to the url of an Australian proxy
(http://morph:password@au.proxy.oaf.org.au:8888). Without it the run fails with
Blocked by AWS WAF.
Using Australian proxy...
Fetching page 1: https://www.melbourne.vic.gov.au/planning-permit-register-search-results?std=20/08/2026&end=03/09/2026&page=1
found 10 applications on page 1
Fetching page 2: https://www.melbourne.vic.gov.au/planning-permit-register-search-results?std=20/08/2026&end=03/09/2026&page=2
found 2 applications on page 2
Fetching page 3: https://www.melbourne.vic.gov.au/planning-permit-register-search-results?std=20/08/2026&end=03/09/2026&page=3
found 0 applications on page 3
Finished - added 12 records
Execution time ~ 10 seconds.
Set DEBUG (or MORPH_DEBUG in the morph.io scraper settings) to turn on
debug output. Levels are cumulative:
| Level | Output |
| --- | --- |
| 1 | Proxy host and User-Agent in use, a line per request, the response status and size, and the response headers that matter when the register blocks us (x-amzn-waf-action, x-cache, age, via, x-amz-cf-pop). Every application saved, and every row skipped as malformed. |
| 2 | All request and response headers, values over 200 characters truncated, and each record as it is saved. |
| 3 | The first 2kB of each page body, and headers in full. |
A value that is not a number, such as DEBUG=true, means level 1.
DEBUG=1 bundle exec ruby scraper.rb
Level 1 is the useful one when the register returns nothing:
``` Fetching page 1: https://www.melbourne.vic.gov.au/planning-permit-register-search-results?std=20/08/2026&end=03/09/2026&page=1
GET /planning-permit-register-search-results?std=20/08/2026&end=03/09/2026&page=1 < 202 0 bytes < content-type: text/html; charset=UTF-8 < content-length: 0 < x-amzn-waf-action: challenge < x-cache: Error from cloudfront < via: 1.1 f3a04c27f130696f2f529b1a181d2d46.cloudfront.net (CloudFront) < x-amz-cf-pop: PER50-P3 ```
Requests are logged from Mechanize hooks, so redirects and the error responses
that make agent.get raise are logged too. The proxy password is never
printed.
bundle exec rubocop
To download data sign in with GitHub
rows 10 / 2569
| info_url | comment_url | date_scraped | council_reference | date_received | address | description | status |
|---|---|---|---|---|---|---|---|
|
mailto:planning@melbourne.vic.gov.au
|
2021-12-08
|
TP-2021-796
|
2021-12-02
|
115 Millswyn Street South Yarra 3141
|
Alteration and addition to existing carport
|
|
|
|
mailto:planning@melbourne.vic.gov.au
|
2021-12-08
|
TP-2021-788
|
2021-12-01
|
2B Harris Street North Melbourne 3051
|
Demolition, buildings and works to construct one dwelling on a lot and on common property, and waive the car parking requirement of Clause 52.06
|
|
|
|
mailto:planning@melbourne.vic.gov.au
|
2021-12-08
|
TP-2021-789
|
2021-12-01
|
Basement 3 Scott Alley Melbourne 3000
|
Alteration to five dwelling windows, works, repairs and routine maintenance which changes the appearance of a heritage place
|
|
|
|
mailto:planning@melbourne.vic.gov.au
|
2021-12-08
|
TP-2021-790
|
2021-12-01
|
578-606 Bourke Street Melbourne 3000
|
Building and works to new mezzanine level
|
|
|
|
mailto:planning@melbourne.vic.gov.au
|
2021-12-08
|
TP-2021-793
|
2021-12-01
|
52-60 Villiers Street North Melbourne 3051
|
Construction and display of business identification signage
|
|
|
|
mailto:planning@melbourne.vic.gov.au
|
2021-12-08
|
TP-2021-783
|
2021-11-30
|
28-30 Cook Street Port Melbourne 3207
|
Rooftop garden area for Warehouse and Office staff
|
|
|
|
mailto:planning@melbourne.vic.gov.au
|
2021-12-08
|
TP-2021-784
|
2021-11-30
|
|
Proposed upgrade to an existing Telstra Small Cell on existing CitiPower Pole number 86054 Cnr St. Kilda Road and Linthingow Ave
|
|
|
|
mailto:planning@melbourne.vic.gov.au
|
2021-12-08
|
TP-2021-785
|
2021-11-30
|
Unit 1, 101 Hotham Street East Melbourne 3002
|
Partial demolition and external alterations associated with the replacement of a roof in a Heritage Overlay
|
|
|
|
mailto:planning@melbourne.vic.gov.au
|
2021-12-09
|
TP-2021-801
|
2021-12-06
|
River Esplanade Rear 50-102 Lorimer Street Docklands 3008
|
To construct a building or construct or carry out works associated with a vehicle and pedestrian access gate structure at the car park entry of an existing tower development
|
|
|
|
mailto:planning@melbourne.vic.gov.au
|
2021-12-09
|
TP-2021-802
|
2021-12-06
|
24 Lambeth Street Kensington 3031
|
Proposed alteration and extension to existing dwelling
|
|
Average successful run time: 2 minutes
Total run time: 2 months
Total cpu time used: about 18 hours
Total disk space used: 1.67 MB