Trade Me Property Listing Monitor avatar

Trade Me Property Listing Monitor

Pricing

Pay per event

Go to Apify Store
Trade Me Property Listing Monitor

Trade Me Property Listing Monitor

Monitor public Trade Me Property searches for new listings, displayed-price changes, and listing updates in one structured change feed.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Categories

Share

Monitor public Trade Me Property sale and rental searches for new listings, price changes, and listing updates.

What does it do?

This Actor turns public Trade Me Property search pages into a structured listing change feed.

It reads the same public residential search data visible in the Trade Me browser experience.

Every result includes the listing URL, price display, location, property facts, agency context, images, and monitoring timestamps.

Run it again with the same state store to distinguish new, price-changed, updated, and unchanged listings.

Who is it for?

  • ๐Ÿ  Buyer agents watching a shortlist of New Zealand property searches.
  • ๐Ÿ“ˆ Property investors tracking supply and price movement.
  • ๐Ÿข Market analysts building regional listing datasets.
  • ๐Ÿ˜๏ธ Rental teams monitoring public rental inventory.
  • ๐Ÿ”ง Developers sending listing changes to a CRM, sheet, or webhook.

Why use a monitor?

A one-off property export answers what is listed now.

A monitor answers what changed since the previous run.

Use firstSeenAt, lastSeenAt, and changeType to create alerts or refresh downstream records.

Supported sources

Use public Trade Me Property residential search URLs.

Sale example: https://www.trademe.co.nz/a/property/residential/sale/search.

Rental example: https://www.trademe.co.nz/a/property/residential/rent/search.

Copy a filtered public search URL from Trade Me when you want a narrower location or price scope.

Quick start

  1. Open a public Trade Me Property sale or rental search.
  2. Copy its URL into searchUrls.
  3. Start with maxItems: 20.
  4. Leave persistState enabled for recurring monitoring.
  5. Schedule repeat runs in Apify.

Input: search URLs

searchUrls is required.

Provide one or more public Trade Me Property search page URLs.

The Actor rejects non-Trade-Me or non-property URLs rather than silently scraping an unrelated target.

Input: maximum listings

maxItems caps records across all supplied searches.

Start small while designing a workflow.

Increase it when you need a larger search export.

The public endpoint returns up to 100 results per search request.

Input: persisted state

Set persistState to true to maintain listing history.

On the first run, listings are labelled new.

On later runs, listings can be unchanged, price_changed, or updated.

Input: state store name

stateStoreName selects the named key-value store used for history.

Keep it stable between runs for one monitoring workflow.

Use a different name when monitoring a separate buyer brief or market segment.

Output fields

FieldDescription
listingIdStable Trade Me listing identifier
listingUrlPublic listing page URL
titleListing title
listingTypeSale, rent, or unknown
priceCurrent displayed price text
addressPublic street address when provided
suburb, district, regionLocation fields
bedrooms, bathroomsProperty facts when supplied
propertyTypeProperty classification
agency, agentsPublic agency context
openHomesOpen-home data when supplied
imagesPublic listing image URLs
firstSeenAt, lastSeenAtMonitoring timestamps
changeTypeNew, price changed, updated, or unchanged

Change types

new means the listing was not present in the saved state.

price_changed means the displayed price text changed.

updated means another monitored public attribute changed.

unchanged means the monitored fields matched the preceding snapshot.

Example input

{
"searchUrls": [{"url": "https://www.trademe.co.nz/a/property/residential/sale/search"}],
"maxItems": 25,
"persistState": true,
"stateStoreName": "auckland-buy-brief"
}

Sale listing workflow

Run a sale search every morning.

Filter the dataset to changeType values other than unchanged.

Send new or price-changed rows to a buyer agent for review.

Rental listing workflow

Use a public rental search URL for rental market coverage.

Collect price, bedroom count, locality, agency, and images in one export.

Use a separate state store from your sale-monitor workflow.

Data quality

Fields are emitted from the public Trade Me search response.

Some listings may not expose an address, bathroom count, agent, or open-home schedule.

Those fields are returned as null, empty arrays, or omitted source values rather than guessed values.

Limits and tips

Keep monitoring searches specific and schedule them at a sensible interval.

Avoid duplicate URLs in one run.

Use multiple state-store names for independent client or location workflows.

Treat displayed price text as the source value; negotiation listings may not have a numeric price.

Integrations

  • ๐Ÿ“Š Export changed rows to Google Sheets for an agentโ€™s daily review.
  • ๐Ÿ”” Send new and price_changed records to Slack or email automation.
  • ๐Ÿงฉ Upsert listingId records into Airtable, HubSpot, or a warehouse.
  • ๐Ÿ—บ๏ธ Join locality fields with an internal property-market dataset.

API usage โ€” Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/trade-me-property-listing-monitor').call({
searchUrls: [{ url: 'https://www.trademe.co.nz/a/property/residential/sale/search' }],
maxItems: 20,
persistState: true,
});
console.log(await client.dataset(run.defaultDatasetId).listItems());

API usage โ€” Python

from apify_client import ApifyClient
client = ApifyClient('APIFY_TOKEN')
run = client.actor('automation-lab/trade-me-property-listing-monitor').call(run_input={
'searchUrls': [{'url': 'https://www.trademe.co.nz/a/property/residential/rent/search'}],
'maxItems': 20,
'persistState': True,
})
print(client.dataset(run['defaultDatasetId']).list_items().items)

API usage โ€” cURL

curl "https://api.apify.com/v2/acts/automation-lab~trade-me-property-listing-monitor/runs?token=$APIFY_TOKEN" \
-H 'content-type: application/json' \
-d '{"searchUrls":[{"url":"https://www.trademe.co.nz/a/property/residential/sale/search"}],"maxItems":20}'

MCP

Use this Actor from Claude Desktop or Claude Code through Apify MCP.

For Claude Code, connect directly to this Actor's HTTP MCP tools:

claude mcp add apify-trade-me-property --transport http \
"https://mcp.apify.com?tools=automation-lab/trade-me-property-listing-monitor"

For Claude Desktop or another HTTP MCP client, add this actor-specific server URL:

{
"mcpServers": {
"apify-trade-me-property": {
"type": "http",
"url": "https://mcp.apify.com?tools=automation-lab/trade-me-property-listing-monitor"
}
}
}

Authenticate the Apify MCP connection with your Apify token when your client prompts for it.

Example prompt: โ€œMonitor this Trade Me sale search and return listings with a changed price since the last run.โ€

Example prompt: โ€œExport new Trade Me rental listings from this search as a table.โ€

Scheduling

A daily schedule works well for broad market monitoring.

Use more frequent runs only for a narrow high-priority buyer brief.

Persisted state is what makes scheduled runs useful as a change feed.

Legality and responsible use

Use only public pages and data you are entitled to process.

Respect Trade Meโ€™s terms, applicable privacy law, and reasonable request volume.

Do not use this Actor for account-only data, login automation, or contact-data misuse.

Troubleshooting

Why is a field empty?

Trade Me does not expose every field on every listing search card.

The Actor preserves the absence instead of inventing a value.

Why are all records new?

Confirm persistState is enabled and keep the same stateStoreName between runs.

Why did a URL fail?

Use a public www.trademe.co.nz/a/property/... sale or rental search URL.

FAQ

Does this require a Trade Me account?

No. It uses public property search data and does not accept credentials.

Does it scrape listing detail pages?

The first release uses the public search response, which already includes the core monitoring fields.

Can I monitor both sale and rental listings?

Yes. Add both public search URLs to searchUrls.

For complementary New Zealand property coverage, see Homes.co.nz tools.

Use this Actor when the source-specific Trade Me listing change feed is the requirement.

Pricing

Pricing is per produced listing plus a small run start event.

Your exact tiered price is shown in the Apify Console before you run.

Start with a small result cap to validate your workflow.

Support

Include the input URL, run ID, and a short description when reporting an issue.

Do not include credentials; this Actor does not need them.