trademe.co.nz APIwww.trademe.co.nz ↗
Search residential property listings for sale on TradeMe.co.nz. Filter by location, price, bedrooms, and bathrooms. Returns address, price, size, and coordinates.
curl -X GET 'https://api.parse.bot/scraper/dc94d41b-ec3a-4ee9-9899-91e8b50f254b/search_properties?rows=3&location=%2Fproperty%2Fresidential%2Fsale%2Fauckland' \ -H 'X-API-Key: $PARSE_API_KEY'
Search residential properties for sale on TradeMe with optional filters for location, price, bedrooms, bathrooms, property type, and keyword. Returns paginated results with property details including address, price, size, and coordinates.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-based). |
| rows | integer | Number of results per page. |
| location | string | Canonical path for location filter (e.g. /property/residential/sale/canterbury/christchurch-city, /property/residential/sale/auckland). Determines region, district, and optionally suburb. |
| price_max | integer | Maximum price in NZD. |
| price_min | integer | Minimum price in NZD. |
| bedrooms_max | integer | Maximum number of bedrooms. |
| bedrooms_min | integer | Minimum number of bedrooms. |
| bathrooms_max | integer | Maximum number of bathrooms. |
| bathrooms_min | integer | Minimum number of bathrooms. |
| property_type | string | Property type filter (e.g. House, Townhouse, Apartment, Unit, Section, Dwelling). |
| search_string | string | Keyword search within listings. |
{
"type": "object",
"fields": {
"page": "integer - current page number",
"listings": "array of property objects with listing_id, title, address, suburb, district, region, price_display, start_price, bedrooms, bathrooms, lounges, floor_area, land_area, property_type, parking, total_parking, rateable_value, latitude, longitude, listing_url, picture_url",
"page_size": "integer - results per page",
"total_count": "integer - total matching listings",
"total_pages": "integer - total pages available"
},
"sample": {
"data": {
"page": 1,
"listings": [
{
"title": "Much Slicker Than Your Average!",
"region": "Auckland",
"suburb": "Pukekohe",
"address": "123 Main St",
"lounges": null,
"parking": "1 Garage Space",
"bedrooms": 4,
"district": "Franklin",
"latitude": -37.2028807,
"bathrooms": 2,
"land_area": 300,
"longitude": 174.8808965,
"floor_area": 148,
"listing_id": 5804317933,
"listing_url": "https://www.trademe.co.nz/property/residential/sale/auckland/franklin/pukekohe/listing/5804317933",
"picture_url": "https://trademe.tmcdn.co.nz/photoserver/thumb/2290960762.jpg",
"start_price": 0,
"price_display": "Enquiries over $849,000",
"property_type": "House",
"total_parking": 1,
"rateable_value": null
}
],
"page_size": 3,
"total_count": 16834,
"total_pages": 5612
},
"status": "success"
}
}About the trademe.co.nz API
The TradeMe Property API provides access to New Zealand's largest residential property marketplace through 2 endpoints. The search_properties endpoint returns paginated listings with fields including address, price in NZD, bedroom and bathroom counts, land size, and coordinates. A companion get_localities endpoint exposes the full hierarchy of regions, districts, and suburbs needed to construct valid location filters.
Searching Residential Properties
The search_properties endpoint accepts up to eight optional filter parameters. Location filtering uses a canonical path string such as /property/residential/sale/canterbury/christchurch-city, which maps to the region/district/suburb hierarchy returned by get_localities. Price filters (price_min, price_max) accept integers in NZD. Bedroom and bathroom counts can be bounded with bedrooms_min, bedrooms_max, and bathrooms_max. Results are paginated; you control page position with page (1-based) and page size with rows.
Response Shape
Each item in the listings array includes listing_id, title, address, suburb, district, region, price_display (a formatted string as shown on the site), start_price (a numeric NZD value for range filtering), bedrooms, and bathrooms, plus property size and coordinate fields useful for mapping. The top-level response also returns total_count and total_pages so you can drive pagination loops without guessing.
Locality Lookup
The get_localities endpoint requires no inputs and returns a regions array. Each region object carries a region_id, a name, and a nested districts array. Each district in turn contains district_id, name, and a suburbs array. Use these IDs and names to build the canonical location path strings expected by search_properties, or to populate a location picker in your own application.
Coverage Scope
All data reflects residential properties listed for sale. Rental listings, commercial properties, and sold/off-market records are outside the current endpoint set.
- Build a property price heatmap for New Zealand suburbs using coordinates and start_price fields
- Track median asking prices by district over time using paginated search_properties results filtered by region
- Populate a location autocomplete using region, district, and suburb names from get_localities
- Alert buyers when new listings matching bedroom count and price range appear in a target suburb
- Compare listing density across New Zealand regions using total_count values from multiple location-filtered queries
- Aggregate bedroom-to-price ratios by suburb to identify relative value pockets in a given city
- Feed listing_id, address, and price_display into a CRM for real estate agents monitoring specific districts
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does TradeMe have an official developer API?+
How do I find the correct location string to pass to search_properties?+
get_localities first. It returns a full nested structure of regions, districts, and suburbs with their IDs and names. Combine these names to form the canonical path string, for example /property/residential/sale/auckland/auckland-city/ponsonby, and pass it as the location parameter in search_properties.Does the API return rental listings or sold property records?+
What does price_display versus start_price represent in the listings response?+
price_display is the formatted label shown on the listing (for example 'Asking Price $850,000' or 'Price by Negotiation'). start_price is the numeric NZD integer, suitable for programmatic range comparisons and sorting. Listings without a stated price may have a null or zero start_price.