Trade Me NZ Scraper at a glance
Trade Me NZ Scraper is a ready-to-run Apify actor from abotapi for collecting ecommerce data. Its documented output includes section, listing id, title, price and price (number), which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Ecommerce, Real Estate, Jobs
- Region
- Oceania
- Pricing
- $2.00 per 1,000 results (Free plan), from $1.20 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 48 options
- Run success
- 98.3% of completed public runs in the last 30 days
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).
What Trade Me NZ Scraper can do
- 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.
Choose what to collect
These inputs let you configure Trade Me NZ Scraper - Marketplace, Property, Motors & Jobs. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | Search mode uses keywords and filters. URL mode scrapes category, search or individual listing links you paste. |
verticalstring | Which Trade Me section to scrape: Marketplace (general goods and auctions), Property, Motors (vehicles), Jobs, or Services. |
queriesarray | One or more keyword searches within the selected section (for example: iphone, mountain bike). Leave empty to browse the whole section or a category. |
listingTypestring | Property section only. Which property market to search. |
regionstring | Property or Jobs section. Region name or id (for example: auckland, wellington, canterbury). |
districtstring | Property or Jobs section. District within the region. |
suburbstring | Property section. Suburb within the district. |
Show 41 more inputs
| Input | What it controls |
|---|---|
propertyTypestring | Property section. For example: House, Apartment, Townhouse, Unit, Section, Lifestyle. |
minBedroomsinteger | Property section. Minimum number of bedrooms. |
maxBedroomsinteger | Property section. Maximum number of bedrooms. |
minBathroomsinteger | Property section. Minimum number of bathrooms. |
minLandAreainteger | Property section. Minimum land area in square metres. |
maxLandAreainteger | Property section. Maximum land area in square metres. |
minFloorAreainteger | Property section. Minimum floor area in square metres. |
maxFloorAreainteger | Property section. Maximum floor area in square metres. |
petsOkayboolean | Property section (rentals). Only listings that allow pets. |
makestring | Motors section. For example: Toyota, Ford, Mazda. |
modelstring | Motors section. For example: Corolla, Ranger. |
minYearinteger | Motors section. Earliest manufacture year. |
maxYearinteger | Motors section. Latest manufacture year. |
minOdometerinteger | Motors section. Minimum odometer reading. |
maxOdometerinteger | Motors section. Maximum odometer reading. |
bodyStylestring | Motors section. For example: Hatchback, Sedan, SUV, Ute. |
transmissionstring | Motors section. For example: Automatic, Manual. |
fuelstring | Motors section. For example: Petrol, Diesel, Electric, Hybrid. |
categorystring | Marketplace, Jobs or Services section. Category id or slug to narrow the search. |
conditionstring | Marketplace section. Item condition. |
buyNowOnlyboolean | Marketplace section. Only listings with a Buy Now price. |
jobTypestring | Jobs section. For example: Full time, Part time, Contract. |
minPriceinteger | Minimum price in NZD (or minimum salary for Jobs). |
maxPriceinteger | Maximum price in NZD (or maximum salary for Jobs). |
startUrlsarray | Trade Me category, search-result or individual listing URLs. Results continue from the page number in the URL onward. |
sortstring | Result ordering. Applicability varies by section: Marketplace supports Default, FeaturedFirst, PriceAsc, PriceDesc, TitleAsc, ExpiryAsc, ExpiryDesc, BidsMost, BuyNowPrice; Jobs supports BestMatch, JobsLatestListingDesc, HighestSalary, LowestSalary; Services supports ReviewsDesc. Also orders a pasted category or search URL in URL mode, taking precedence over any ordering already encoded in that URL. Leave as Default if unsure. |
keywordstring | Optional free-text term applied on top of the section and filters. Also applies to a pasted URL in URL mode, but only when that URL does not already contain a search term of its own, in which case the URL's own term wins. |
fetchDetailsboolean | Fetch each listing's full detail page and the seller's member feedback (positive/negative counts and score). Slower and adds a per-item detail charge. |
includeMemberFeedbackCommentsboolean | When full details are enabled, also collect the seller's individual feedback comments. |
maxFeedbackCommentsinteger | With feedback comments on, the most recent comments to collect for each seller (paged 25 at a time). Previously the actor always returned up to 25. |
maxItemsinteger | Maximum number of listings to return. This is the main limit. Set 0 for unlimited. |
maxPagesinteger | Limit on result pages to walk per search. Leave empty to walk every result page; the run still stops at Max items. |
resumeFromRunIdstring | Paste a previous run ID or dataset ID to continue an interrupted or paginated walk. Listings already collected there (matched by listingId) are skipped, so this run only saves the new ones. Leave empty for a normal fresh run. |
incrementalModeboolean | ON: the actor remembers the listings it saw for this exact search scope (keyed automatically, or use State key) and on each scheduled run marks every listing NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED, pushing only new and changed rows plus EXPIRED tombstones, and stamping each row with changeType, changedFields, firstSeenAt and lastSeenAt. COMPARED: every output field (title, prices, Buy Now, closing date, location, photos, category, seller and seller feedback, vehicle/property attributes). EXCLUDED from the comparison but still in the output: scrapedAt and viewCount (a page-view counter that moves on every visit), plus anything you list under Ignore fields. EXPIRED rows are only produced when the search ran to its natural end from page 1 (not for a capped, Max pages-limited, resumed or ?page=N>1 run). With Incremental mode ON, Max items limits the listings scanned. OFF (default): every run returns the full result set, unchanged. |
stateKeystring | Name of the incremental baseline when Incremental mode is ON. Leave empty to key it automatically on a hash of the search scope (recommended). Reuse the same key across runs to compare like with like; a different key starts a new baseline. |
emitUnchangedboolean | With Incremental mode ON, also push listings that did not change (changeType UNCHANGED). Default OFF: unchanged listings are remembered but not pushed, and not billed. |
emitExpiredboolean | With Incremental mode ON, push a tombstone row (changeType EXPIRED, last known values) for listings the previous run saw that this run's search no longer returns - only when the search ran to completion. Default ON. |
ignoreFieldsForChangesarray | With Incremental mode ON, output fields listed here never count as a change (they are excluded from changeType and changedFields while staying in the output). Use a field name (photoUrls) or a dotted path for a nested field (sellerFeedback.totalCount). Built-in defaults already cover scrapedAt and viewCount. |
mcpConnectorsarray | Optionally send results into apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a page per item; other connectors get a best-effort write. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com). |
notionParentPageUrlstring | URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on items written to each connector per run. Does not affect the dataset. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
verticalSectionlistingIdListing IDtitleTitlepriceDisplayPricepricePrice (number)oldPricePrevious pricelocationLocationprimaryImageMain photo (image)startPriceStart pricebuyNowPriceBuy NowregionRegionsuburbSuburbShow 48 more fields
districtDistrictcategoryCategorymakeMakemodelModelyearYearodometerOdometeraddressAddressbedroomsBedsbathroomsBathspropertyTypeProperty typeagencyNameAgencysellerTypeSeller typememberIdMember IDsellerFeedbackSeller feedbackurlURLphotoUrlsPhotosscrapedAtScraped atdescriptionDescriptionattributesAttributesviewCountViewsbidderAndWatchersBidders and watchersquantityRemainingQuantitylatitudeLatitudelongitudeLongitudeagencyPhoneAgency phoneagencyWebsiteAgency websiteagentsAgentsshippingOptionsShippingpaymentOptionsPaymentsellerFeedback.memberIdMember IDsellerFeedback.nicknameSellersellerFeedback.totalCountFeedback countsellerFeedback.uniquePositivePositivesellerFeedback.uniqueNegativeNegativesellerFeedback.feedbackPercentFeedback %sellerFeedback.dateJoinedJoinedsellerFeedback.isSuperSellerSuper sellersellerFeedback.comments.feedbackIdFeedback IDsellerFeedback.comments.typeTypesellerFeedback.comments.textCommentsellerFeedback.comments.fromNicknameFromsellerFeedback.comments.isSellerFrom a sellersellerFeedback.comments.dateEnteredDatesellerFeedback.comments.responseSeller responsechangeTypeChangechangedFieldsChanged fieldsfirstSeenAtFirst seenlastSeenAtLast seenExample output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"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,
"longitude": 174,
"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"
}Ways to use this data
- 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.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does Trade Me NZ Scraper return?
The documented output for Trade Me NZ Scraper includes section, listing id, title, price, price (number), previous price, location and main photo. Availability of each field depends on the source page and the selected mode.
How much does Trade Me NZ Scraper cost?
It costs $2.00 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
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.
