# Trade Me Property Scraper (`parseforge/trade-me-property-scraper`) Actor

Collect residential property listings from Trade Me, New Zealand's largest marketplace. Get prices, bedrooms, bathrooms, land area, GPS coordinates, all photos, agent contacts, open homes, adjacent suburbs, and rental details for sales and rentals. Filter by region, suburb, price, and property type.

- **URL**: https://apify.com/parseforge/trade-me-property-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Real estate, Developer tools, Automation
- **Stats:** 24 total users, 5 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🚀 Trade Me Property Scraper

> 🕒 **Last updated:** 2026-05-05


Get instant access to New Zealand's residential property market data from Trade Me Property, the nation's largest property marketplace. Whether you're hunting for your next home, analyzing real estate trends, or tracking rental opportunities, this tool delivers complete property details in seconds - no coding skills required. Works seamlessly for both for-sale and rental listings with powerful filters to find exactly what you need.

### ✨ What Does It Do

- **Property Images** - Scrapes all listing photo URLs so you can build visual portfolios and conduct image-based market research without manually visiting each page
- **Listing ID & Title** - Captures unique identifiers and property descriptions so you can track specific listings over time and detect price or status changes
- **Address & Location Data** - Extracts full addresses, suburbs, districts, and regions so you can map listings geographically and perform precise neighborhood-level analysis
- **Price Information** - Collects asking prices for sales and weekly rental rates so you can compare market values across suburbs and spot under- or over-priced properties
- **Bedrooms & Bathrooms** - Records bedroom and bathroom counts so you can filter and segment the market by property size to match investment criteria or lifestyle needs
- **Parking Details** - Pulls parking space counts and types so you can factor convenience into property comparisons and investment decisions
- **Area Measurements** - Extracts floor area and land area in square metres so you can calculate price-per-sqm and evaluate value across different property sizes
- **Geographic Coordinates** - Captures latitude and longitude so you can plot listings on custom maps and perform distance-based or catchment-area analysis
- **Agency Details** - Gathers agency names, phone numbers, websites, and agent contacts so you can reach out directly and build relationships with active market participants
- **Open Home Schedules** - Retrieves scheduled open home dates and times so you can plan site visits and monitor how quickly properties are moving
- **Rental Specifics** - For rentals, collects pet policies, smoker rules, and furnished amenity details so you can match listings to tenant requirements instantly
- **Listing Status** - Records featured status, listing dates, and sales types so you can identify premium placements and measure time-on-market across your target area

### 🎬 Demo Video

Demo video coming soon.

### 🔧 Input

Configure your search with these simple filters:

```json
{
  "listingType": "residential-sale",
  "maxItems": 100,
  "region": "auckland",
  "district": "auckland-city",
  "suburb": "ponsonby",
  "minBedrooms": 3,
  "maxBedrooms": 5,
  "minBathrooms": 2,
  "propertyType": "House",
  "minPrice": 500000,
  "maxPrice": 1500000,
  "minLandArea": 500,
  "maxLandArea": 2000,
  "minFloorArea": 150,
  "maxFloorArea": 400,
  "petsOkay": true,
  "keyword": "villa"
}
````

**Key Input Parameters:**

- **Listing Type** - Choose "Residential For Sale" or "Residential For Rent" to focus on the property type you need
- **Max Items** - Limited to 100 listings per run for standard users. Higher limits available for comprehensive market analysis
- **Location Filters** - Narrow by region (e.g., auckland, wellington, canterbury), district, and suburb for targeted results
- **Bedroom & Bathroom Range** - Set minimum and maximum counts to match your requirements
- **Property Type** - Filter by House, Apartment, Townhouse, Unit, Section, or Lifestyle properties
- **Price Range** - For sales: set minimum and maximum prices in NZD. For rentals: set weekly rent range
- **Area Range** - Specify minimum and maximum floor area (interior space) and land area for size-based filtering
- **Pets Allowed** - For rentals, check this to see only pet-friendly properties
- **Keyword Search** - Search by specific words in property titles or descriptions

### 📊 Output

Your results are available in multiple formats (CSV, Excel, JSON) with complete property details:

```json
{
  "listingId": 6851234,
  "title": "Modern 3-Bedroom Villa in Ponsonby",
  "url": "https://www.trademe.co.nz/property/residential-sale/auckland/auckland-city/ponsonby/6851234",
  "address": "42 Elm Street, Ponsonby",
  "suburb": "Ponsonby",
  "district": "Auckland City",
  "region": "Auckland",
  "priceDisplay": "$1,250,000",
  "startPrice": 1250000,
  "propertyType": "House",
  "bedrooms": 3,
  "bathrooms": 2,
  "parking": "Off-street",
  "totalParking": 2,
  "area": 280,
  "landArea": 750,
  "latitude": -37.7833,
  "longitude": 174.7667,
  "pictureHref": "https://images.trademe.co.nz/...",
  "photoUrls": ["https://images.trademe.co.nz/...", "https://images.trademe.co.nz/..."],
  "openHomes": [
    {
      "date": "2026-03-01",
      "time": "14:00"
    }
  ],
  "agencyName": "Harcourts Auckland",
  "agencyPhone": "+64 9 XXX XXXX",
  "agencyWebsite": "https://www.harcourts.co.nz/",
  "agencyLogo": "https://...",
  "agents": [
    {
      "name": "Jane Smith",
      "phone": "+64 9 XXX XXXX",
      "email": "jane.smith@harcourts.co.nz"
    }
  ],
  "isFeatured": true,
  "rateableValue": 1200000,
  "petsOkay": true,
  "whiteware": false,
  "scrapedAt": "2026-02-26T12:30:00.000Z"
}
```

**Available Download Formats:**

- CSV for spreadsheet analysis
- Excel for professional reporting
- JSON for system integration

### 💎 Why Choose the Trade Me Property Scraper?

**Covers New Zealand's Largest Property Marketplace** - Trade Me Property is where most NZ property transactions happen. Get access to thousands of active listings with no geographic restrictions.

**Instant Market Insight** - Stop manually browsing listings. Get comprehensive property data in seconds to identify trends, compare values, and spot opportunities faster than competitors.

**Complete Property Information** - Unlike basic listing feeds, you get full details: location coordinates, agency contacts, photos, open home schedules, and rental-specific amenities in one dataset.

**Flexible Filtering** - Start broad or go specific. Search by region, suburb, price range, property type, size, and even pet policies. Perfect for investors, researchers, and property hunters.

**No Authentication Required** - Zero setup needed. No tokens, no registration hurdles. Start collecting data immediately after setting your filters.

**Works for Both Sales & Rentals** - Whether analyzing residential purchases or rental market trends, flip a switch between for-sale and rental modes without setup changes.

**Contact Information Included** - Get agency and agent details directly from each listing for direct outreach and inquiries.

### 📋 How to Use

1. **Sign Up**: [Create a free account w/ $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp)
2. **Find the Tool**: Search for "Trade Me Property Scraper" in the Apify store
3. **Set Your Filters**: Choose listing type (for-sale or rental), location, price range, bedrooms, bathrooms, and any other criteria that match your needs
4. **Run the Scraper**: Click the play button to start collecting data
5. **Download Results**: Export as CSV, Excel, or JSON and import into your analysis tool, spreadsheet, or CRM
6. **No Technical Skills Required** - The interface is designed for business users. No coding, no command line, no configuration hassles

### 🎯 Business Use Cases

**Real Estate Investors & Developers**

- Monitor new listings daily to identify properties below market value
- Analyze neighborhood trends and price movements across multiple suburbs
- Compare property specifications and price points to identify renovation opportunities
- Track market inventory levels to make informed purchase timing decisions

**Property Researchers & Analysts**

- Build comprehensive market reports with historical property data
- Identify emerging neighborhoods by analyzing price growth trends
- Study demographic patterns through property characteristics and location data
- Create competitive intelligence on comparable properties in target areas

**Real Estate Agents & Agencies**

- Bulk extract competitor listings for market comparison analysis
- Generate market snapshots for client presentations and CMA reports
- Track properties in your listing pipeline for performance benchmarking
- Monitor competitor agency activity and listing strategies by suburb

**Rental Market Analysts**

- Track rental price trends across neighborhoods and property types
- Identify pet-friendly rental opportunities for specific tenant profiles
- Analyze rental yield by comparing prices against property values
- Monitor availability and demand in high-demand rental areas

**Home Buyers & Renters**

- Create alerts for properties matching your specific criteria automatically
- Research neighborhoods by analyzing available listings and local market activity
- Compare multiple properties side-by-side with standardized data fields
- Track how long similar properties stay on the market in your target area

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 🎯 | **Built for the job.** Scoped specifically to this data source so you skip the parser engineering entirely. |
| 🔖 | **Structured output.** Clean, typed fields ready for analysis, dashboards, or downstream pipelines. |
| ⚡ | **Fast.** Optimized request patterns return results in seconds, not minutes. |
| 🔁 | **Always fresh.** Every run pulls live data, so the dataset reflects the source as of run time. |
| 🌐 | **No infra to manage.** Apify handles proxies, retries, scaling, scheduling, and storage. |
| 🛡️ | **Reliable.** Battle-tested across many runs and edge cases, with graceful error handling. |
| 🚫 | **No code required.** Configure in the UI, run from CLI, schedule via cron, or call from any language with the Apify SDK. |

> 📊 Production-grade structured data without the engineering overhead of building and maintaining your own scraper.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ Trade Me Property Scraper** *(this Actor)* | $5 free credit, then pay-per-use | Full source coverage | **Live per run** | Source-native filters supported | ⚡ 2 min |
| Build your own scraper | Engineering hours | Full once built | Whenever you maintain it | Custom code | 🐢 Days to weeks |
| Paid managed APIs | $$$ monthly | Vendor-defined | Live | Vendor-defined | ⏳ Hours |
| Third-party data dumps | Varies | Subset, often stale | Periodic | None | 🕒 Variable |

Pick this Actor when you want broad coverage, server-side filtering, and no pipeline maintenance.

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Go to the Trade Me Property Scraper page on the Apify Store.
3. 🎯 **Set input.** Configure the input fields in the form (or paste a JSON), then set `maxItems`.
4. 🚀 **Run it.** Click **Start** and let the Actor collect your data.
5. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to downloaded dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### 📊 Data & Analytics

- Build trend reports and dashboards from live source data
- Feed BI tools, warehouses, and ML pipelines with structured records
- Run periodic snapshots to track changes over time
- Compare segments, regions, or categories with consistent fields

</td>
<td width="50%" valign="top">

#### 🏢 Operations & Strategy

- Monitor competitor moves, pricing, and inventory shifts
- Build internal directories and lookup tools backed by current data
- Power workflows that depend on fresh source records
- Cut manual data-gathering time from hours to minutes

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 🎯 Marketing & Growth

- Identify market opportunities and trending topics
- Research target audiences and customer personas at scale
- Power lead-generation pipelines with verified records
- Track sentiment, reviews, or social signals over time

</td>
<td width="50%" valign="top">

#### 🛠️ Engineering & Product

- Prototype features that need real-world data without owning a crawler
- Replace fragile in-house scrapers with a managed Actor
- Wire datasets into your apps via the Apify API or webhooks
- Skip the proxy, retry, and parsing maintenance entirely

</td>
</tr>
</table>

***

### 🌟 Beyond business use cases

Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Empirical datasets for papers, thesis work, and coursework
- Longitudinal studies tracking changes across snapshots
- Reproducible research with cited, versioned data pulls
- Classroom exercises on data analysis and ethical scraping

</td>
<td width="50%">

#### 🎨 Personal and creative

- Side projects, portfolio demos, and indie app launches
- Data visualizations, dashboards, and infographics
- Content research for bloggers, YouTubers, and podcasters
- Hobbyist collections and personal trackers

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Transparency reporting and accountability projects
- Advocacy campaigns backed by public-interest data
- Community-run databases for local issues
- Investigative journalism on public records

</td>
<td width="50%">

#### 🧪 Experimentation

- Prototype AI and machine-learning pipelines with real data
- Validate product-market hypotheses before engineering spend
- Train small domain-specific models on niche corpora
- Test dashboard concepts with live input

</td>
</tr>
</table>

### ❓ FAQ

**How does this tool work?**
The Trade Me Property Scraper connects directly to Trade Me's property database. Set your search filters, click run, and the tool fetches all matching listings with full details including photos, prices, location data, agency contacts, and more. Results are ready to download within seconds or minutes depending on volume.

**How accurate and current is the data?**
You receive live data directly from Trade Me's database. Accuracy matches Trade Me's property listings exactly. Data is current to the moment you run the scraper, so you always get the latest market snapshot.

**Can I schedule regular automatic runs?**
Yes. Apify supports scheduling. You can set the scraper to run daily, weekly, or on any custom schedule. Results are automatically stored, so you can track how listings and prices change over time.

**What if I need technical help or custom filtering?**
Visit our support page or reach out to our team. We can also help customize the scraper for specific workflows or integrate it with your existing systems.

**Is there a limit on how many properties I can collect?**
Standard users are limited to 100 listings per run. Higher capacity options are available for comprehensive market analysis or building large research datasets.

**What about international properties outside New Zealand?**
This scraper focuses exclusively on New Zealand residential properties from Trade Me Property. For other countries, we have regional scrapers available.

### 🔗 Integrate Trade Me Property Scraper with any app

Connect your property data with thousands of other tools:

- [Make](https://docs.apify.com/platform/integrations/make) - Automate workflows and connect to 1000+ apps
- [Zapier](https://docs.apify.com/platform/integrations/zapier) - Connect 5000+ business applications
- [GitHub](https://docs.apify.com/platform/integrations/github) - Version control and automation
- [Slack](https://docs.apify.com/platform/integrations/slack) - Get notifications in your team channels
- [Airbyte](https://docs.apify.com/platform/integrations/airbyte) - Build scalable data pipelines
- [Google Drive](https://docs.apify.com/platform/integrations/drive) - Export directly to spreadsheets

**Use Webhooks** - Trigger automated workflows whenever new property listings are found. Instantly notify team members, update dashboards, or feed data into analytics platforms.

### 🤖 Ask an AI assistant about this scraper

Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:

- 💬 [**ChatGPT**](https://chat.openai.com/?q=How%20do%20I%20use%20the%20Trade%20Me%20Property%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🧠 [**Claude**](https://claude.ai/new?q=How%20do%20I%20use%20the%20Trade%20Me%20Property%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🔍 [**Perplexity**](https://perplexity.ai/search?q=How%20do%20I%20use%20the%20Trade%20Me%20Property%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🅒 [**Copilot**](https://copilot.microsoft.com/?q=How%20do%20I%20use%20the%20Trade%20Me%20Property%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

***

### 🔌 Integrate with any app

Trade Me Property Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate multi-step workflows
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Connect with 5,000+ apps
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Get run notifications in your channels
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe results into your warehouse
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits and releases
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export datasets straight to Sheets

You can also use webhooks to trigger downstream actions when a run finishes. Push fresh data into your product backend, or alert your team in Slack.

***

### 🔗 Recommended Actors

Explore other powerful data extraction tools:

- [REMAX Real Estate Scraper](https://apify.com/parseforge/remax-scraper) - Extract US residential property listings
- [LoopNet Business Listings Scraper](https://apify.com/parseforge/loopnet-scraper) - Collect commercial real estate data
- [James Edition Real Estate Scraper](https://apify.com/parseforge/james-edition-real-estate-scraper) - Scrape luxury property listings
- [Auction.com Property Scraper](https://apify.com/parseforge/auction-com-property-scraper) - Harvest foreclosure and auction properties

Browse our [complete collection of data extraction tools](https://apify.com/parseforge) for more.

### 🆘 Need Help?

Check the FAQ section above for quick answers. For additional support, visit the Apify documentation or contact our team through the support portal.

### 📞 Contact

Have feedback or need a custom solution? Contact us to request a new scraper, propose a custom data project, or report a technical issue with this actor at https://tally.so/r/BzdKgA

### ⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Trade Me Group Limited or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

# Actor input Schema

## `listingType` (type: `string`):

Type of property listings to scrape: residential for-sale or rental.

## `maxItems` (type: `integer`):

Free users: Limited to 100. Paid users: Optional, max 1,000,000.

## `region` (type: `string`):

Filter by NZ region (e.g. auckland, wellington, canterbury). Leave blank for all regions.

## `district` (type: `string`):

Filter by district within the region (e.g. auckland-city, north-shore-city). Requires region to be set.

## `suburb` (type: `string`):

Filter by suburb within the district (e.g. ponsonby, remuera). Requires region and district to be set.

## `minBedrooms` (type: `integer`):

Minimum number of bedrooms.

## `maxBedrooms` (type: `integer`):

Maximum number of bedrooms.

## `minBathrooms` (type: `integer`):

Minimum number of bathrooms.

## `propertyType` (type: `string`):

Filter by property type (e.g. House, Apartment, Townhouse, Unit, Section, Lifestyle).

## `minPrice` (type: `integer`):

Minimum price in NZD (for sales) or minimum weekly rent in NZD (for rentals).

## `maxPrice` (type: `integer`):

Maximum price in NZD (for sales) or maximum weekly rent in NZD (for rentals).

## `minLandArea` (type: `integer`):

Minimum land area in square metres.

## `maxLandArea` (type: `integer`):

Maximum land area in square metres.

## `minFloorArea` (type: `integer`):

Minimum floor area in square metres.

## `maxFloorArea` (type: `integer`):

Maximum floor area in square metres.

## `petsOkay` (type: `boolean`):

Filter rental listings that allow pets.

## `keyword` (type: `string`):

Search keyword to filter listings by title or description.

## Actor input object example

```json
{
  "listingType": "residential-sale",
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset with all scraped items

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "listingType": "residential-sale",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/trade-me-property-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "listingType": "residential-sale",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/trade-me-property-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "listingType": "residential-sale",
  "maxItems": 10
}' |
apify call parseforge/trade-me-property-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/trade-me-property-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Trade Me Property Scraper",
        "description": "Collect residential property listings from Trade Me, New Zealand's largest marketplace. Get prices, bedrooms, bathrooms, land area, GPS coordinates, all photos, agent contacts, open homes, adjacent suburbs, and rental details for sales and rentals. Filter by region, suburb, price, and property type.",
        "version": "1.0",
        "x-build-id": "VSJ30IexXcDf19BJL"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~trade-me-property-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-trade-me-property-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parseforge~trade-me-property-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-trade-me-property-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parseforge~trade-me-property-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-trade-me-property-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "listingType": {
                        "title": "Listing Type",
                        "enum": [
                            "residential-sale",
                            "residential-rent"
                        ],
                        "type": "string",
                        "description": "Type of property listings to scrape: residential for-sale or rental."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 100. Paid users: Optional, max 1,000,000."
                    },
                    "region": {
                        "title": "Region",
                        "type": "string",
                        "description": "Filter by NZ region (e.g. auckland, wellington, canterbury). Leave blank for all regions."
                    },
                    "district": {
                        "title": "District",
                        "type": "string",
                        "description": "Filter by district within the region (e.g. auckland-city, north-shore-city). Requires region to be set."
                    },
                    "suburb": {
                        "title": "Suburb",
                        "type": "string",
                        "description": "Filter by suburb within the district (e.g. ponsonby, remuera). Requires region and district to be set."
                    },
                    "minBedrooms": {
                        "title": "Min Bedrooms",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum number of bedrooms."
                    },
                    "maxBedrooms": {
                        "title": "Max Bedrooms",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of bedrooms."
                    },
                    "minBathrooms": {
                        "title": "Min Bathrooms",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum number of bathrooms."
                    },
                    "propertyType": {
                        "title": "Property Type",
                        "type": "string",
                        "description": "Filter by property type (e.g. House, Apartment, Townhouse, Unit, Section, Lifestyle)."
                    },
                    "minPrice": {
                        "title": "Min Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum price in NZD (for sales) or minimum weekly rent in NZD (for rentals)."
                    },
                    "maxPrice": {
                        "title": "Max Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum price in NZD (for sales) or maximum weekly rent in NZD (for rentals)."
                    },
                    "minLandArea": {
                        "title": "Min Land Area (m²)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum land area in square metres."
                    },
                    "maxLandArea": {
                        "title": "Max Land Area (m²)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum land area in square metres."
                    },
                    "minFloorArea": {
                        "title": "Min Floor Area (m²)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum floor area in square metres."
                    },
                    "maxFloorArea": {
                        "title": "Max Floor Area (m²)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum floor area in square metres."
                    },
                    "petsOkay": {
                        "title": "Pets Allowed",
                        "type": "boolean",
                        "description": "Filter rental listings that allow pets."
                    },
                    "keyword": {
                        "title": "Keyword",
                        "type": "string",
                        "description": "Search keyword to filter listings by title or description."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
