Trade Me NZ Scraper - Marketplace, Property, Motors & Jobs avatar

Trade Me NZ Scraper - Marketplace, Property, Motors & Jobs

Pricing

from $1.20 / 1,000 listing results

Go to Apify Store
Trade Me NZ Scraper - Marketplace, Property, Motors & Jobs

Trade Me NZ Scraper - Marketplace, Property, Motors & Jobs

Scrape trademe.co.nz across all five sections: Marketplace goods and auctions, Property, Motors, Jobs and Services. Search or paste URLs, walk pagination, and enrich with full detail plus seller feedback (positive/negative counts and score).

Pricing

from $1.20 / 1,000 listing results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

1

Bookmarked

32

Total users

12

Monthly active users

7 days ago

Last modified

Share

Trade Me Scraper: Listings Across Marketplace, Property, Motors, Jobs and Services

Trade Me Scraper turns New Zealand's largest online marketplace into clean structured data. Collect listings from Marketplace, Property, Motors, Jobs and Services in one actor, with prices, locations, photos, listing specifics and, on request, full descriptions and seller feedback. Search by keyword and filters, or paste category, search and individual listing links, then export to JSON, CSV or Excel, or pull the results straight into your app through the API.

Why This Scraper?

  • Five sections, one actor. Marketplace, Property, Motors, Jobs and Services, so you don't need a different tool for each part of Trade Me.
  • Two ways to search. Keywords with filters for each section, or paste category, search and individual listing links.
  • Section-specific fields on every record. Bedrooms and land area for Property, make, model, year and odometer for Motors, salary range for Jobs, plus the fields common to every listing.
  • Optional full detail and seller feedback. Description, the full photo gallery, agent contact details, and a member's feedback score and history, only when you turn on full detail.
  • Walks the whole result list. Collects as many result pages as a search has, or a limit you set, and stops once your item limit is reached.
  • Resume long or interrupted walks. Continue from a previous run's dataset so a later run only collects (and pays for) the new listings.
  • Optional export to your apps. Pipe results into the apps you already use through MCP connectors, with no change to the dataset.

Use Cases

  • Property researchers and agencies: track new listings, price changes and open homes across a region.
  • Car buyers and dealers: monitor Motors listings by make, model, year and odometer to spot good-value vehicles.
  • Marketplace resellers: watch categories or keyword searches for new stock and Buy Now prices.
  • Recruiters and job seekers: pull Jobs listings by region, category and salary range.
  • Trust and reputation checks: pull a seller's feedback score and history before buying from or dealing with them.

Data You Get

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

FieldExample
vertical"property" (also "marketplace", "motors", "jobs", "services")
listingId"0000000001"
title"Sample Listing Title"
url"https://www.trademe.co.nz/Browse/Listing.aspx?id=0000000001"
category"Property > Residential > Auckland"
priceDisplay"$1,234,000"
startPrice / buyNowPrice1234 / 1500
region / suburb / district"Auckland" / "Sample Suburb" / "Sample District"
photoUrls["https://trademe.tmcdn.co.nz/photoserver/full/000000000.jpg"]
listedDate / closesDate"2026-01-01T00:00:00.000Z" / "2026-01-08T00:00:00.000Z"
sellerType"member" (also "dealer")
memberId"0000000"
sellerFeedback{ "uniquePositive": 100, "uniqueNegative": 1, "feedbackPercent": 99, "isSuperSeller": true } (with full detail on)
bedrooms / bathrooms / propertyType3 / 2 / "House" (Property)
address"1 Example Street, Sample Suburb" (Property)
agencyName / agents"Sample Agency" / [{ "name": "Agent Name", "mobilePhone": "+64000000000" }] (Property; agents with full detail on)
make / model / year / odometer"Toyota" / "Corolla" / 2020 / 50000 (Motors)
description"Sample listing description text." (with full detail on)
scrapedAt"2026-01-01T00:00:00.000Z"

Property records also carry land area, floor area, rateable value, latitude and longitude, parking and any open homes; with full detail on they add agency phone, agency website, agency license and a full agency object. Motors records also carry body style, transmission, fuel, exterior colour, 4WD flag, dealer flag and dealer name; with full detail on they add doors, seats, engine size, WOF expiry, registration expiry, owner count and import history. Any record also carries view count, bidder and watcher count, quantity remaining, shipping options, payment options, store details, a member passthrough object, and the listing's own named specifics (each prefixed attr_); sellerFeedback additionally carries up to 25 of the seller's most recent feedback comments when that option is turned on.

How to Use

  1. Pick a section (Marketplace, Property, Motors, Jobs or Services) and a mode: Search (keywords and filters) or URL (paste links).
  2. Fill in the filters for that section, and turn on full detail if you want descriptions, the full photo gallery and seller feedback.
  3. Set Max items to control how many listings are returned, then click Start.
  4. Download the dataset as JSON, CSV or Excel, or read it through the API.

Search Marketplace by keyword:

{
"vertical": "marketplace",
"mode": "search",
"queries": ["iphone"],
"maxItems": 50
}

Search Property with filters and full detail plus seller feedback:

{
"vertical": "property",
"mode": "search",
"listingType": "residential-sale",
"region": "auckland",
"minBedrooms": 3,
"minPrice": 800000,
"maxPrice": 1500000,
"fetchDetails": true,
"maxItems": 40
}

Search Motors with vehicle filters:

{
"vertical": "motors",
"mode": "search",
"make": "Toyota",
"model": "Corolla",
"minYear": 2015,
"maxPrice": 20000,
"maxItems": 30
}

Paste links (category, search or individual listings):

{
"mode": "url",
"startUrls": [
"https://www.trademe.co.nz/a/property/residential/sale",
"https://www.trademe.co.nz/a/motors/used-cars"
],
"maxItems": 40
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/trademe-co-nz-scraper").call(run_input={"vertical": "property", "mode": "search", "region": "auckland", "maxItems": 40})
for listing in client.dataset(run["defaultDatasetId"]).iterate_items():
print(listing["title"], listing["priceDisplay"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/trademe-co-nz-scraper').call({ vertical: 'property', mode: 'search', region: 'auckland', maxItems: 40 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

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

How Max pages and Max items shape a walk

Each keyword search or pasted category link walks its own result pages, in the order Trade Me and your Sort order return them, until it runs out of pages, reaches Max pages (if you set one), or reaches its share of Max items, whichever comes first. When a run has several searches or links, each gets a roughly even share of the overall Max items. Leave Max pages empty to walk every result page a search has; the run still stops once Max items is reached.

Resume and long-catalogue walks

  • Resume from a previous run (resumeFromRunId) loads every listingId already saved in a previous run's dataset before this run starts scraping, so this run only pushes, and only pays for, the new listings. Paste the previous run's ID or its dataset ID. An ID that doesn't match a run or dataset your Apify account can read fails the run immediately, before any scraping, rather than quietly re-collecting everything.
  • A checkpoint is saved automatically as the run progresses. If the run is interrupted by an Apify platform migration, or you click Resurrect on a failed run, it continues from where it left off in the same run, without re-pushing or re-charging for listings it already collected. No input is needed for this; it's automatic.

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each listing, not the full JSON. Each item becomes one entry with a title and its key fields, price, location, category, and section-specific fields such as make and model or bedrooms, flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify, Settings, API & Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
verticalstringmarketplaceWhich section to scrape: Marketplace, Property, Motors, Jobs, or Services.
modestringsearchsearch (keywords + filters) or url (paste links).
queriesarraynone (prefill: ["iphone"])Keyword searches within the section (search mode). Leave empty to browse the whole section or a category.
listingTypestringresidential-saleProperty section only: residential-sale, residential-rent, commercial-sale, or lifestyle.
regionstringnoneProperty or Jobs section: region name or id (for example auckland, wellington).
districtstringnoneProperty or Jobs section: district within the region.
suburbstringnoneProperty section: suburb within the district.
propertyTypestringnoneProperty section: for example House, Apartment, Townhouse, Unit, Section, Lifestyle.
minBedroomsintegernoneProperty section: minimum bedrooms.
maxBedroomsintegernoneProperty section: maximum bedrooms.
minBathroomsintegernoneProperty section: minimum bathrooms.
minLandAreaintegernoneProperty section: minimum land area in square metres.
maxLandAreaintegernoneProperty section: maximum land area in square metres.
minFloorAreaintegernoneProperty section: minimum floor area in square metres.
maxFloorAreaintegernoneProperty section: maximum floor area in square metres.
petsOkaybooleanfalseProperty section (rentals): only listings that allow pets.
makestringnoneMotors section: vehicle make, for example Toyota.
modelstringnoneMotors section: vehicle model, for example Corolla.
minYearintegernoneMotors section: earliest manufacture year.
maxYearintegernoneMotors section: latest manufacture year.
minOdometerintegernoneMotors section: minimum odometer reading in km.
maxOdometerintegernoneMotors section: maximum odometer reading in km.
bodyStylestringnoneMotors section: for example Hatchback, Sedan, SUV, Ute.
transmissionstringnoneMotors section: for example Automatic, Manual.
fuelstringnoneMotors section: for example Petrol, Diesel, Electric, Hybrid.
categorystringnoneMarketplace, Jobs, or Services section: category id or slug.
conditionstring"" (Any)Marketplace section: item condition, Any, New, or Used.
buyNowOnlybooleanfalseMarketplace section: only listings with a Buy Now price.
jobTypestringnoneJobs section: for example Full time, Part time, Contract.
minPriceintegernoneMinimum price in NZD (minimum salary for Jobs).
maxPriceintegernoneMaximum price in NZD (maximum salary for Jobs).
startUrlsarraynone (prefill: ["https://www.trademe.co.nz/a/property/residential/sale"])Category, search, or individual listing links (URL mode). Results continue from the page number already in the URL.
sortstringDefaultResult ordering; which values apply depends on the section. Also orders a pasted category or search URL in URL mode, taking precedence over any ordering already in that URL.
keywordstringnoneFree-text term used when Keyword searches is empty (it does not combine with Keyword searches). Also applies to a pasted URL, unless that URL already carries its own search term.
fetchDetailsbooleanfalseFetch each listing's full detail page and the seller's member feedback. Adds a per-item detail charge.
includeMemberFeedbackCommentsbooleanfalseWith full detail on, also collect the seller's individual feedback comments.
maxItemsinteger20Maximum number of listings to return. Set 0 for unlimited.
maxPagesintegernone (walks every result page; 0 has the same effect)Limit on result pages to walk per search. The run still stops at Max items.
resumeFromRunIdstringnoneA previous run ID or dataset ID to continue an interrupted or paginated walk. Listings already saved there (matched by listingId) are skipped.
proxyobjectApify Proxy enabledConnection configuration. The default is recommended.
mcpConnectorsarraynoneOptional: send a summary of each listing to apps you authorized under Integrations.
notionParentPageUrlstringnoneNotion connector only: page under which item pages are created.
maxNotifyListingsinteger50Cap on items written to each connector per run. Does not affect the dataset.

Output Example

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

{
"vertical": "property",
"listingId": "0000000001",
"title": "Sample Listing Title",
"url": "https://www.trademe.co.nz/Browse/Listing.aspx?id=0000000001",
"priceDisplay": "$1,234,000",
"region": "Auckland",
"suburb": "Sample Suburb",
"district": "Sample District",
"address": "1 Example Street, Sample Suburb",
"bedrooms": 3,
"bathrooms": 2,
"propertyType": "House",
"latitude": -36.0,
"longitude": 174.0,
"agencyName": "Sample Agency",
"agents": [
{ "name": "Agent Name", "mobilePhone": "+64000000000", "email": "agent@example.com" }
],
"memberId": "0000000",
"sellerFeedback": {
"nickname": "sample_seller",
"uniquePositive": 100,
"uniqueNegative": 1,
"feedbackPercent": 99,
"isSuperSeller": true
},
"photoUrls": ["https://trademe.tmcdn.co.nz/photoserver/full/000000000.jpg"],
"scrapedAt": "2026-01-01T00:00:00.000Z"
}

Plan Requirement

The default connection works well for this actor, and it rotates connections automatically when one is refused. For large or frequent runs, or when full detail is turned on for many listings, the residential proxy group gives more headroom; pick it under Connection. Any Apify account with usage credits can run this actor; the Pricing tab shows the current rates.

FAQ

How much does it cost?

You pay a small start fee per run, a fee per listing returned, plus a detail charge for each listing that gains full detail or seller feedback. That happens when you turn on full detail, and always for individual listing links pasted in URL mode, since those are fetched in full so the record is populated. The Pricing tab shows the current rates. Use Max items to cap the cost of any run.

This actor collects only publicly available marketplace data. You are responsible for how you use it: follow Trade Me's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Prices and listing facts are generally public, but photos and any agency or dealer branding may be subject to third-party rights.

Can I run this on a schedule, or only collect new listings?

There's no separate incremental mode. Schedule the actor from the Schedules tab for repeat runs, and use Resume from a previous run with the earlier run's ID (or its dataset ID) so a new run only saves listings it hasn't already collected, instead of starting over.

Why weren't my filters applied when I pasted a URL?

The Search-mode filters (region, price, bedrooms, and so on) only apply in Search mode. In URL mode, a pasted category link is scraped by its category path only: filters in the link's query string, such as price or bedrooms, are not carried over. A pasted keyword-search link runs as a site-wide keyword search on its own search term. Sort order applies to both, and the Extra keyword filter applies when the link has no search term of its own.

Why is sellerFeedback missing from my results?

Turn on Fetch full details + seller feedback. Without it, you get the search-result fields only. Feedback (positive and negative counts, score, join date) is fetched per listing, and only when that option is on and the listing has a resolvable seller id.

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

Only one thing fails the run outright: a Resume from a previous run ID that doesn't match a run or dataset your Apify account can read. That check runs before any scraping, so you get a clear error instead of a resume that silently didn't happen. Everything else, an empty category, filters that match nothing, or a search that Trade Me's servers wouldn't answer after several retries, finishes the run normally: that entry contributes no listings (with a warning in the log), while any other keyword search or pasted link in the same run keeps collecting.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

๐Ÿ”— Want more car data?

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

๐Ÿท๏ธ Subito.it
Scrape Subito.it listings across cars, real estate, marketplace, jobs, and more. Search...
๐Ÿท๏ธ Gumtree UK
Scrape gumtree.com classifieds across motors, property, jobs, services, pets and goods...
๐Ÿท๏ธ Mudah.my Cars, Property, Jobs & Marketplace Scraper
Scrape Mudah.my listings across every category: cars, motorcycles, property, mobiles...
๐Ÿท๏ธ Kijiji.ca Scraper
Scrape Kijiji.ca listings across property, vehicles, jobs, electronics, furniture...
๐Ÿท๏ธ Gumtree AU Scraper
Scrape gumtree.com.au classifieds across every vertical: for-sale goods, motors, real...
๐Ÿท๏ธ Tutti.ch
Scrape listings from tutti.ch across all 23 categories, including vehicles, property...

๐Ÿ‘‰ Browse all abotapi scrapers

๐Ÿ’ฌ Support & custom scrapers

  • ๐Ÿž 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 or message Telegram @abotapi.
  • โญ Enjoying it? A quick review on the actor page helps other users find it.