
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Scrape trademe.co.nz Marketplace, Property (sale, rent, commercial), Motors and Jobs by URL or keyword: price, bids, closing time, attributes, seller, agency and agents, location, photos and full details.
Scrape trademe.co.nz, New Zealand's biggest marketplace: Marketplace items, property for sale and rent, cars and jobs. Paste any Trade Me search or listing URL, or type keywords with filters, and get clean rows with price, bids, closing time, attributes, seller, agency and agents, location and every photo. No login, no browser, fast and cheap.
| Field | What it does |
|---|---|
startUrls | Trade Me search, category or listing URLs (any section). |
searchQueries | Keywords, one per line. |
maxItems | Maximum listings saved in the run (default 20). |
includeDetails | Load each listing's full details (default on). |
vertical | Section for keywords: marketplace, property-sale, property-rent, commercial-sale, commercial-lease, motors, motorbikes, boats, jobs. |
region | One New Zealand region, e.g. auckland, wellington, canterbury. |
category | A category path such as /marketplace/computers/laptops or /motors/cars/toyota, or a category number. |
minPrice / maxPrice | Price range in NZD (weekly rent for rentals). |
bedroomsMin | Property only. |
condition | Marketplace only: new or used. |
sortBy | default, newest, closing-soon, price-asc, price-desc, most-bids, ... |
{
"startUrls": [
{ "url": "https://www.trademe.co.nz/a/marketplace/search?search_string=iphone" },
{ "url": "https://www.trademe.co.nz/a/property/residential/sale/wellington/wellington/search?bedrooms_min=3" }
],
"searchQueries": ["hilux"],
"vertical": "motors",
"region": "canterbury",
"maxItems": 100,
"includeDetails": true
}
Every row has the common fields; property, motors and jobs rows add their own fields.
| Field | Description |
|---|---|
listingId, url, title, subtitle | Listing identity |
vertical, category, categoryPath | Section and category |
price, priceDisplay, listingType | Current price in NZD, price text, auction / buy_now / classified |
startPrice, buyNowPrice, currentBid, bidCount, reserveState, recentBids | Auction data |
startDate, endDate | Listed and closing time (ISO 8601, UTC) |
region, district, suburb, latitude, longitude | Location |
imageUrl, photoUrls | Full-size photos |
description, attributes | Full text and every attribute (with details) |
sellerName, sellerFeedbackCount, sellerPositivePercent, storeName, viewCount | Seller and popularity (with details) |
address, bedrooms, bathrooms, floorArea, landArea, rentPerWeek, agencyName, agents, openHomes | Property |
make, model, year, odometer, fuel, transmission, engineSize, vin, numberPlate, isDealer, dealerName | Motors |
company, jobType, contractLength, payAndBenefits, jobLocation, contactName, contactPhone | Jobs |
Example (trimmed, values from a test run; agent names are fictional):
{
"listingId": "5912048725",
"url": "https://www.trademe.co.nz/a/listing/5912048725",
"vertical": "property",
"title": "Sun-Soaked & Private - Bonus Downstairs Retreat",
"category": "For Sale",
"region": "Wellington",
"district": "Wellington",
"suburb": "Paparangi",
"priceDisplay": "Enquiries over $695,000",
"price": 695000,
"currency": "NZD",
"listingType": "classified",
"startDate": "2026-04-30T23:10:48.753Z",
"endDate": "2026-12-08T05:17:48.753Z",
"imageUrl": "https://trademe.tmcdn.co.nz/photoserver/full/2303585322.jpg",
"photoCount": 21,
"latitude": -41.2180357,
"longitude": 174.8140603,
"address": "100 Helston Road",
"propertyType": "House",
"bedrooms": 3,
"bathrooms": 2,
"floorArea": 150,
"landArea": 809,
"rateableValue": 850000,
"agencyName": "Ray White Wellington City, (Licensed: REAA 2008)",
"agents": [{ "name": "Jane Example", "mobilePhone": "(021) 000000" }],
"openHomes": [{ "start": "2026-10-17T23:00:00.000Z", "end": "2026-10-17T23:30:00.000Z" }],
"attributes": { "Bedrooms": "3 bedrooms", "Capital value (CV)": "$850,000" },
"detailsFetched": true
}
You pay $1.25 per 1,000 listings ($0.00125 per listing), with listing details included, plus a small amount of platform usage (compute and proxy traffic). Example from a test run: 1,000 listings with details took 55 seconds and cost $1.25 in listing fees + about $0.006 usage.
Is it legal to scrape Trade Me? The actor only reads public listing pages that anyone can open without an account. You are responsible for how you use the data, including privacy rules for personal data such as agent phone numbers.
Do I need a Trade Me account or a proxy? No account. The default datacenter proxy works; switch to residential only if you see blocks.
How many results can I get? As many as the search has: the actor pages through every result of a search. Set Max listings to cap the run.
Why are some fields empty? Fields only exist when the listing has them: bids only on auctions, bedrooms only on property, salary only when the employer shares it. Turn on Listing details for description, attributes and seller fields.
Can I schedule it or use the API? Yes. Schedule runs to monitor prices or new listings, and read the results through the API or integrations.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayOptionalTrade Me URLs
Search, category or listing URLs from trademe.co.nz: Marketplace, Property (sale, rent, commercial), Motors and Jobs. Filters in the URL (keywords, region, price, bedrooms, make, year, sort, ...) are kept and all pages are followed.
searchQueriesarrayOptionalSearch keywords
One keyword per line, e.g. 'iphone 15', 'hilux', 'nurse'. The filters below apply to these searches. Leave empty (and pick a section other than Marketplace) to browse a whole section.
maxItemsintegerOptionaldefault 20Max listings
Maximum number of listings saved in this run, across all URLs and keywords.
includeDetailsbooleanOptionaldefault trueListing details
Also load each listing's details: full description, all attributes, every photo in full size, seller nickname and feedback, store, views, watchers, shipping and payment options, job contact details. Turn off for faster, search-card-only results.
Applied to the search keywords (or to browsing a section). For URLs, set the filters on trademe.co.nz and paste the URL.
verticalenumOptionaldefault "marketplace"Section
Which part of Trade Me the keywords search.
regionenumOptionaldefault ""Region
Limit results to one New Zealand region.
categorystringOptionalCategory
Optional category: a Trade Me category path such as '/marketplace/computers/laptops' or '/motors/cars/toyota', or a category number such as '0002-0356-'.
minPriceintegerOptionalMin price (NZD)
Lowest price. Property and cars use Trade Me's own price filter; for Marketplace the current price (buy now, current bid or start price) is checked.
maxPriceintegerOptionalMax price (NZD)
Highest price (weekly rent for rentals).
bedroomsMinintegerOptionalMin bedrooms
Property only: minimum number of bedrooms.
conditionenumOptionaldefault ""Condition
Marketplace only: new or used items.
sortByenumOptionaldefault "default"Sort by
Order of the results.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work well for Trade Me. Switch to residential if you see blocks.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| listingId | string | null | Listing ID |
| url | string | null | Listing URL |
| vertical | string | null | marketplace, property, motors or jobs |
| title | string | null | Title |
| subtitle | string | null | Subtitle |
| category | string | null | Category |
| categoryPath | string | null | Category path |
| categoryId | string | null | Category number |
| region | string | null | Region |
| district | string | null | District |
| suburb | string | null | Suburb |
| priceDisplay | string | null | Price as shown |
| price | number | null | Current price in NZD (buy now, current bid, asking price or weekly rent) |
| currency | string | null | Currency |
| listingType | string | null | auction, buy_now or classified |
| startPrice | number | null | Auction start price |
| buyNowPrice | number | null | Buy Now price |
| currentBid | number | null | Highest bid |
| bidCount | number | null | Number of bids |
| reserveState | string | null | none, met, not_met, not_applicable |
| hasBuyNow | boolean | null | Has Buy Now |
| wasPrice | number | null | Was price (clearance) |
| percentageOff | number | null | Discount % |
| isNew | boolean | null | Brand new item |
| startDate | string | null | Listed at (ISO 8601) |
| endDate | string | null | Closing time (ISO 8601) |
| imageUrl | string | null | Main photo |
| photoUrls | array | null | All photos (full size) |
| photoCount | number | null | Photos |
| memberId | number | null | Seller member ID |
| isSuperSeller | boolean | null | Super seller |
| latitude | number | null | Latitude |
| longitude | number | null | Longitude |
| highlights | array | null | Highlight bullet points |
| shippingPrice | number | null | Suggested shipping price |
| description | string | null | Full description (with details) |
| attributes | object | null | All attributes by name (with details) |
| sellerName | string | null | Seller nickname |
| sellerFeedbackCount | number | null | Seller feedback count |
| sellerPositivePercent | number | null | Seller positive feedback % |
| sellerJoined | string | null | Seller member since |
| sellerLocation | string | null | Seller location |
| sellerAddressVerified | boolean | null | Seller address verified |
| sellerInTrade | boolean | null | Seller is in trade |
| storeName | string | null | Store name |
| viewCount | number | null | Views |
| quantityRemaining | number | null | Quantity left |
| shippingOptions | array | null | Shipping options |
| paymentMethods | array | null | Payment methods |
| questionCount | number | null | Questions |
| address | string | null | Property address |
| propertyType | string | null | Property type |
| bedrooms | number | null | Bedrooms |
| bathrooms | number | null | Bathrooms |
| lounges | number | null | Lounges |
| floorArea | number | null | Floor area m² |
| landArea | number | null | Land area m² |
| parking | string | null | Parking |
| totalParking | number | null | Parking spaces |
| rateableValue | number | null | Rateable/capital value |
| rentPerWeek | number | null | Rent per week |
| availableFrom | string | null | Available from |
| propertyId | string | null | Trade Me property ID |
| agencyReference | string | null | Agency reference |
| agencyName | string | null | Agency |
| agencyPhone | string | null | Agency phone |
| agencyWebsite | string | null | Agency website |
| agencyLogo | string | null | Agency logo |
| agents | array | null | Agents (name, phones, photo, profile) |
| openHomes | array | null | Open homes |
| propertyAttributes | object | null | Property attributes |
| make | string | null | Make |
| model | string | null | Model |
| modelDetail | string | null | Model detail |
| year | number | null | Year |
| odometer | number | null | Odometer km |
| bodyStyle | string | null | Body style |
| fuel | string | null | Fuel |
| transmission | string | null | Transmission |
| engineSize | number | null | Engine cc |
| cylinders | number | null | Cylinders |
| doors | number | null | Doors |
| seats | number | null | Seats |
| is4WD | boolean | null | 4WD |
| exteriorColour | string | null | Colour |
| owners | number | null | Owners |
| importHistory | string | null | Import history |
| numberPlate | string | null | Number plate |
| vin | string | null | VIN |
| wofExpires | string | null | WoF expires |
| registrationExpires | string | null | Registration expires |
| onRoadCostsIncluded | boolean | null | On road costs included |
| isDealer | boolean | null | Dealer |
| dealerName | string | null | Dealer name |
| company | string | null | Company |
| jobType | string | null | Full time, part time, ... |
| payType | string | null | Pay type |
| contractLength | string | null | Permanent, contract/temp, ... |
| payAndBenefits | string | null | Pay and benefits |
| jobCategory | string | null | Job category |
| jobSubcategory | string | null | Job subcategory |
| jobLocation | string | null | Job location |
| jobReference | string | null | Job reference |
| isWorkPermitRequired | boolean | null | Work permit required |
| shortDescription | string | null | Job summary |
| contactName | string | null | Job contact |
| contactPhone | string | null | Job contact phone |
| advertiser | string | null | Advertiser |
| salaryMin | number | null | Salary from |
| salaryMax | number | null | Salary to |
| detailsFetched | boolean | null | Details loaded |
| searchSource | string | null | URL or keyword that found the listing |
| biddersAndWatchers | number | null | Bidders and watchers |
| recentBids | array | null | Latest bids (amount, date, masked bidder) |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Listing | One Trade Me listing saved to the dataset (details included). | $0.0013 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/trademe-scraper').call({
"startUrls": [
{
"url": "https://www.trademe.co.nz/a/marketplace/search?search_string=iphone"
}
],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/trademe-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=shelfbright/trademe-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Trade Me job listings for a keyword in one region.
Rental listings under a weekly rent cap.
Car listings from the Toyota category.
Marketplace listings in new condition within a price range.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.