Trade Me Property Listing Monitor
Pricing
Pay per event
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
Maintained by CommunityActor 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
- Open a public Trade Me Property sale or rental search.
- Copy its URL into
searchUrls. - Start with
maxItems: 20. - Leave
persistStateenabled for recurring monitoring. - 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
| Field | Description |
|---|---|
listingId | Stable Trade Me listing identifier |
listingUrl | Public listing page URL |
title | Listing title |
listingType | Sale, rent, or unknown |
price | Current displayed price text |
address | Public street address when provided |
suburb, district, region | Location fields |
bedrooms, bathrooms | Property facts when supplied |
propertyType | Property classification |
agency, agents | Public agency context |
openHomes | Open-home data when supplied |
images | Public listing image URLs |
firstSeenAt, lastSeenAt | Monitoring timestamps |
changeType | New, 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
newandprice_changedrecords to Slack or email automation. - ๐งฉ Upsert
listingIdrecords 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 ApifyClientclient = 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.
Related scrapers
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.