Distressed Property Scraper: Mortgagee Sales AU & NZ avatar

Distressed Property Scraper: Mortgagee Sales AU & NZ

Pricing

from $2.00 / 1,000 distressed property records

Go to Apify Store
Distressed Property Scraper: Mortgagee Sales AU & NZ

Distressed Property Scraper: Mortgagee Sales AU & NZ

Find mortgagee-sale and distressed-property listings in Australia and New Zealand. NZ results require a confirmed mortgagee-sale flag; AU results use keyword filtering. Get property, price, location and agent details, plus auction dates where available. Resume runs or track incremental changes

Pricing

from $2.00 / 1,000 distressed property records

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Australia and NZ Distressed Property Scraper

Find mortgagee-sale and distressed-property listings across Australia and New Zealand. New Zealand results require a confirmed mortgagee-sale flag; Australian results use keyword filtering. Get property, price, location and agent details, plus auction dates where available. Resume runs or track incremental changes across scheduled searches.

Why This Scraper?

  • Two registers, one actor. Walk New Zealand mortgagee-sale listings and Australian mortgagee-sale search results. Each lane keeps its own native filters, and every record comes back normalized to one schema.
  • Distress evidence on every row. New Zealand rows carry the register's own mortgagee-sale flag; Australian rows carry the keyword match plus auction dates lifted from the listing's event data where published.
  • Detail enrichment built in. Every record can be opened on its source page for the full description, agent and agency contacts, photo galleries, and auction details.
  • Made for recurring monitoring. Resume an interrupted run from its ID, or let incremental mode remember what you already scraped and return only NEW and UPDATED records, with EXPIRED markers when a record leaves the source.
  • Search the way each register wants. New Zealand district and listing-pool filters; Australian state, listing type, property type, bedroom and price ranges. Or just paste links and let URL mode sort them out.
  • Honest by design. If a register refuses every request the run fails loudly instead of returning an empty dataset that looks like "no results". A genuine empty search says so.

Use Cases

  • Who: Investors and buyers hunting below-market property across Australasian mortgagee-sale channels.
  • Who: Buyers advocates and agents monitoring mortgagee listings by district or state for clients.
  • Who: Lead-generation teams feeding distressed-property signals into CRM systems and alerting pipelines on a schedule.
  • Who: Analysts comparing distressed inventory levels across Australia and New Zealand from one dataset.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

FieldExample
recordId"nz:realestate.co.nz:43000000"
country"nz" or "au"
source"realestate.co.nz" or "realestate.com.au"
title"123 Sample Road, Sampleton"
distressType"mortgagee-sale"
portalId"000000"
publishedAt"2026-10-01T02:32:41+13:00"
auctionDate"2026-10-30T10:00:00+11:00"
location.address / location.city / location.region"123 Sample Road, Sampleton" / "Sampleton" / "Auckland"
valueAmount / valueCurrency / valueText850000 / "NZD" / "Asking price $850,000"
status"active"
parties[{ "role": "agent", "name": "Sample Agent" }]
attachments[{ "label": "photo", "url": "..." }]
descriptionfull listing description (when enrichment is on)
detailsper-source detail block (bedrooms, bathrooms, land area, auction data)
changeType / changedFields / firstSeenAt / lastSeenAtincremental-mode metadata
urlsource record URL

How to Use

  1. Pick a Mode: search (default) walks the country lanes with your filters; url reads only the links you paste. Pasted links are ignored in search mode, and the run log says so.
  2. In search mode, pick your country lanes (New Zealand, Australia) and set each lane's filters (NZ district and listing pool; AU state, listing type, property type, bedrooms and price). In url mode, paste links.
  3. Set Max items and whether to fetch detail pages, then click Start.
  4. Download the dataset as JSON, CSV or Excel, or read it through the API.

New Zealand mortgagee-sale walk:

{
"mode": "search",
"country": ["nz"],
"nzRegion": "northland",
"fetchDetails": true,
"maxItems": 50
}

Australian mortgagee-sale walk:

{
"mode": "search",
"country": ["au"],
"auState": "nsw",
"auListingType": "buy",
"fetchDetails": true,
"maxItems": 50
}

URL mode (both registers):

{
"mode": "url",
"urls": [
"https://www.realestate.co.nz/residential/sale?k=mortgagee",
"https://www.realestate.com.au/buy/in-nsw/list-1?keywords=mortgagee"
],
"fetchDetails": true,
"maxItems": 20
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/distressed-au-nz-scraper").call(run_input={
"country": ["nz"],
"nzRegion": "northland",
"fetchDetails": True,
"maxItems": 50,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["recordId"], item["title"], item.get("valueAmount"))

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/distressed-au-nz-scraper').call({
country: ['au'],
auState: 'nsw',
fetchDetails: true,
maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) console.log(item.recordId, item.title);

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Resume and recurring updates

  • Resume (resumeFromRunId) continues one interrupted run: paste its run ID and the actor skips everything already collected there, so you don't pay twice.
  • Incremental mode (incrementalMode) is for scheduled runs over the same scope. Each record is classified NEW, UPDATED (with changedFields), UNCHANGED (suppressed and not billed unless emitUnchanged is on) or EXPIRED (only after a run that scanned the whole scope, and only with emitExpired). Use stateKey to share one baseline across slightly different filter variants, and ignoreFieldsForChanges to exclude noisy fields from the comparison. The two features are mutually exclusive; pick one per run.

Send results into your apps (MCP connectors)

Optionally send a summary of each returned record into an app connected through Apify MCP integrations. Select one or more MCP connectors and, for Notion, provide the parent page URL or ID. The actor creates a Notion page per record; other connectors receive a best-effort write or digest. Exports are capped by Max items to export per connector (50 by default), and connector failures do not change dataset output.

FieldWhat it does
mcpConnectorsSelected MCP connectors (empty = no export).
notionParentPageUrlNotion parent page URL or ID; required for Notion exports.
maxNotifyListingsMaximum records sent to each selected connector (default 50, maximum 1000).

Input Parameters

All parameters are optional unless noted. Each country lane uses only its own filters.

ParameterTypeDefaultDescription
modestringsearchsearch walks the country lanes with your filters; url reads only the pasted links.
countryarray["nz"]Country lanes to walk, in order: nz, au. Search mode only.
urlsarray(none)Pasted source links (any supported site); grouped by site automatically. Read in url mode.
nzRegionstring(none)New Zealand district filter, e.g. northland, auckland, wellington. Empty = national walk.
nzListingTypestring(none)New Zealand listing pool: residential, rural, commercial, rental. Empty = residential sale.
auStatestring(none)Australian state filter: act, nsw, nt, qld, sa, tas, vic, wa. Empty sweeps all eight states in order.
auListingTypestringbuyAustralian listing pool: buy, rent, sold.
auPropertyTypestring(none)Australian property type: house, apartment, townhouse, villa, land, rural, commercial.
auBedroomsMinnumber(none)Minimum bedrooms.
auBedroomsMaxnumber(none)Maximum bedrooms.
auPriceMinnumber(none)Minimum price in AUD.
auPriceMaxnumber(none)Maximum price in AUD.
auExcludesarray(none)Drop rows whose title contains any of these words.
fetchDetailsbooleantrueOpen each record's detail page for the full field set.
maxItemsinteger20Total result cap across all lanes (0 = no limit).
maxPagesinteger0Page cap per search walk; 0 = until natural end.
proxyobjectApify ProxyConnection settings.
resumeFromRunIdstring(none)Continue a previous run; only unpushed records are saved.
incrementalModebooleanfalseTrack changes across scheduled runs; only NEW/UPDATED returned. Mutually exclusive with resumeFromRunId.
stateKeystring(none)Named incremental baseline; derived from the scope when empty.
emitUnchangedbooleanfalseAlso return (and bill) UNCHANGED records in incremental mode.
emitExpiredbooleanfalseAlso return (and bill) EXPIRED records in incremental mode.
ignoreFieldsForChangesarray(none)Extra fields that never count as a change.
mcpConnectorsarray(none)Optional MCP connectors to receive returned record summaries after the run.
notionParentPageUrlstring(none)Parent page URL or ID required for Notion page creation.
maxNotifyListingsinteger50Maximum records sent to each connector (1-1000).

Output Example

The Output tab offers three tables: Overview (one row per record), Detail-enriched (runs with detail fetching on) and Changes (change type, changed fields, first and last seen, for incremental runs).

Sample shape: values are illustrative placeholders, not from a live record.

Example record (New Zealand, mortgagee-flagged):

{
"recordId": "nz:realestate.co.nz:43000000",
"country": "nz",
"source": "realestate.co.nz",
"title": "123 Sample Road, Sampleton",
"distressType": "mortgagee-sale",
"portalId": "000000",
"publishedAt": "2026-10-01T02:32:41+13:00",
"location": { "address": "123 Sample Road, Sampleton", "city": "Sampleton", "region": "Auckland", "country": "NZ" },
"valueAmount": 850000,
"valueCurrency": "NZD",
"valueText": "Asking price $850,000",
"status": "active",
"parties": [{ "role": "agent", "name": "Sample Agent" }],
"description": "Sample listing description.",
"attachments": [{ "label": "photo", "url": "https://www.realestate.co.nz/listings/43000000/sample.crop.140x178.jpg" }],
"url": "https://www.realestate.co.nz/43000000/residential/sale/123-sample-road-sampleton",
"raw": {}
}

Plan Requirement

The actor uses Apify Proxy for all reads, and an Apify plan that includes proxy access is required. If no page can be read at all, the run stops with a clear message instead of returning an empty result.

FAQ

How much does it cost?

The actor is pay per event: a start fee per run plus a per-record fee for every record returned, and a detail surcharge per record only when fetchDetails is enabled. Exact prices are on the actor's Pricing tab. Max items is the cost lever: a run's record count is bounded by it.

This actor collects only publicly available property listings: New Zealand mortgagee-sale flags are published on the national property register and Australian mortgagee-sale results are public search results. You are responsible for how you use the data: follow the sites' terms and the laws that apply to you, including privacy law such as GDPR or CCPA; personal data of identifiable individuals requires a lawful basis. Every record links back to its official source.

Can I get only new or changed records on a schedule?

Yes. Use incremental mode: the actor remembers its baseline per scope and returns only what changed (NEW, UPDATED), with optional EXPIRED markers for records that left the source. Use stateKey to share one baseline across slightly different filter variants.

Why does a run return fewer records than I expected?

Max items (20 by default) stops the run once the cap is reached, walking the selected country lanes in order; raise it or set it to 0 to collect everything. A narrow filter combination (for example a single district plus a listing pool) can also simply match few records; clear a filter to widen the search.

Why did my run fail instead of returning an empty dataset?

One of the registers refused every request in that run (temporary rate limiting or an outage). The run is failed loudly rather than returning an empty dataset that would look like "no results". Wait a little and rerun.

Can I use it with AI agents or MCP?

Yes. The dataset is JSON, and you can optionally select Apify MCP connectors to send record summaries into connected apps. Notion requires a parent page URL or ID; connector exports are capped separately from the dataset.

๐Ÿ”— More scrapers you might like

Pair this actor with these related scrapers from the same team:

๐Ÿ›’ The Warehouse NZ Scraper
Scrape The Warehouse New Zealand search results, category pages, and direct product URLs...
๐Ÿ’ผ SEEK Company Reviews
From $1/1K. Scrape SEEK Australia and New Zealand company profiles and employee reviews...
๐Ÿ  Homes.co.nz Scraper
Scrape Homes.co.nz listings by location or URL with pagination. Extract property details...
๐Ÿš— Trade Me NZ Scraper
Scrape trademe.co.nz across all five sections: Marketplace goods and auctions, Property...
๐Ÿ”Œ PB Tech Scraper
Scrape pbtech.co.nz products with full specifications, price, brand, condition, per-store...
๐Ÿ  RealestateCo NZ
From $1/1K. Search and extract all real estate properties for sale, rent, and sold across...

๐Ÿ‘‰ Browse all abotapi scrapers

๐Ÿ’ฌ Support

  • ๐Ÿž Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • ๐Ÿ› ๏ธ Need another site, extra fields or a private build? Email contact@abotapi.com.
  • โญ Enjoying it? A quick review on the actor page helps other users find it.