# Trade Me Listings (`subrosa/trademe-listings`) Actor

Returns current Trade Me property-for-sale, property-for-rent and car listings for New Zealand with price, location and property or vehicle details, and no seller or agent identities.

- **URL**: https://apify.com/subrosa/trademe-listings.md
- **Developed by:** [Sub Rosa](https://apify.com/subrosa) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Trade Me Listings

Returns current listings from trademe.co.nz, New Zealand's main classifieds site, in three categories: residential property for sale, residential property for rent, and cars. Each item carries the listing id and canonical URL, the title, the price as shown and as a number, the region, district and suburb, the street address when a licensed agency or property manager placed the listing, bedrooms, bathrooms, floor and land area for property, make, model, year, odometer, body style, transmission, fuel and the auction-or-classified sale type for cars, the listing start date, the photo count, and the business name of the agency or dealer behind the listing when there is one. The data comes from the public search pages, fetched logged out, as they stand at the moment of the run. A default run returns 90 items in about ten seconds across four page fetches. The `result` price is $0.002 per item, with a $0.01 charge per run.

No agent, seller, landlord or contact identities are collected. The source pages carry individual agents' names, mobile numbers and photos, members' ids, map coordinates, photo URLs, and vehicle plates and VINs; none of that leaves the extractor. A private seller's or private landlord's street address is treated as that person's data and is not returned either: `address` is only ever filled alongside the organisation that placed the listing. See Limits and honesty and Legal below.

### Who uses it

- A property analyst tracking asking prices and rents by suburb: pulls `property-sale` and `property-rent` for one or more regions each morning, keeps `id`, `priceText`, `price`, `suburb`, `district`, `bedrooms`, `landArea` and `listedAt`, and builds a time series of what is on the market and how long it stays there.
- A dealer or fleet buyer watching the used-car market: pulls `motors` daily, filters `make`, `model`, `year`, `odometerKm`, `price` and `saleType`, and flags new arrivals below a target price before visiting the listing page, keeping auctions (where `price` is a bid, not an asking price) apart from classifieds.
- A researcher or journalist measuring the rental market: pulls `property-rent` across all regions, uses `price` (weekly rent), `bedrooms` and `region` to compare rents between regions, and uses `agencyName` to separate managed rentals from private ones without naming any landlord.

### Sample output

One real item from a real run, as JSON:

```json
{
    "id": "6128190765",
    "url": "https://www.trademe.co.nz/a/property/residential/lifestyle-property/auckland/rodney/tahekeroa/listing/6128190765",
    "title": "Country Charm With Captivating Views!",
    "category": "property-sale",
    "priceText": "Price by negotiation",
    "price": null,
    "currency": "NZD",
    "saleType": null,
    "region": "Auckland",
    "district": "Rodney",
    "suburb": "Tahekeroa",
    "address": "47 Haul Road",
    "bedrooms": 4,
    "bathrooms": 2,
    "floorArea": 197,
    "landArea": 116700,
    "make": null,
    "model": null,
    "year": null,
    "odometerKm": null,
    "bodyStyle": null,
    "transmission": null,
    "fuel": null,
    "listedAt": "2026-09-12T01:08:31.360Z",
    "agencyName": "Ray White Pinehill (Access Real Estate Ltd), (Licensed: REAA 2008)",
    "photoCount": 24,
    "sourceUrl": "https://www.trademe.co.nz/a/property/residential/sale/auckland",
    "scrapedAt": "2026-09-26T03:59:18.133Z"
}
```

Ten more, covering all three categories, private-party rentals with `address` null, and a car auction, are in `sample.json`.

### Data dictionary

Every field is present on every item. Fields that do not apply to a category, or that the lister left blank, are `null`, never missing and never an empty string.

| Field          | Type            | Meaning                                                                                                                                                                                                                                                                                                                                                                                                      | Example                                                                     |
| -------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------- |
| `id`           | string          | Trade Me's listing id                                                                                                                                                                                                                                                                                                                                                                                        | `"6128190765"`                                                              |
| `url`          | string          | Canonical listing page                                                                                                                                                                                                                                                                                                                                                                                       | `"https://www.trademe.co.nz/a/motors/cars/nissan/march/listing/6150375031"` |
| `title`        | string or null  | Listing title as the lister wrote it, after the house free-text filter (any sentence carrying a phone number, an email address, a name after an honorific or a role, or a licence number is dropped; null when nothing remains)                                                                                                                                                                              | `"2015 Nissan March S Model"`                                               |
| `category`     | string          | `property-sale`, `property-rent` or `motors`                                                                                                                                                                                                                                                                                                                                                                 | `"motors"`                                                                  |
| `priceText`    | string or null  | Price exactly as shown on the listing card                                                                                                                                                                                                                                                                                                                                                                   | `"Asking price: $7,949"`, `"$820 per week"`, `"Auction on 7 Oct, 9:30 am"`  |
| `price`        | number or null  | The first dollar amount in `priceText`. For `property-rent` it is the weekly rent. For "Enquiries over" and "Offers over" it is that threshold. For a car auction (`saleType` `"auction"`) it is the current bid, or the start price when no bid has been placed, not a valuation. Null when `priceText` shows no amount                                                                                     | `7949`                                                                      |
| `currency`     | string          | Always `"NZD"`                                                                                                                                                                                                                                                                                                                                                                                               | `"NZD"`                                                                     |
| `saleType`     | string or null  | Trade Me listing type, cars only: `"auction"` (bids placed on the site, closing at a set time) or `"classified"` (an asking price, buyer contacts the seller). Null for property, where every listing is a classified advertisement and the sale method (auction, tender, deadline sale, negotiation) is a matter of `priceText`, and null for a car record that carries neither marker                      | `"classified"`                                                              |
| `region`       | string or null  | Region name as the source gives it. Property uses the 15 Trade Me regions; cars use the older, finer set (for example Manawatu, Whanganui, Nelson Bays)                                                                                                                                                                                                                                                      | `"Wellington"`                                                              |
| `district`     | string or null  | District within the region; property only                                                                                                                                                                                                                                                                                                                                                                    | `"Rodney"`                                                                  |
| `suburb`       | string or null  | Suburb or town                                                                                                                                                                                                                                                                                                                                                                                               | `"Porirua"`                                                                 |
| `address`      | string or null  | Street address of the property, only when the listing is placed by a licensed real estate agency or property manager and that organisation is named in `agencyName`. Null for every private-party listing (a private seller's or landlord's street address is that person's data; `suburb`, `district` and `region` carry the location), null when the agency published no address, and always null for cars | `"47 Haul Road"`                                                            |
| `bedrooms`     | integer or null | Bedrooms; property only                                                                                                                                                                                                                                                                                                                                                                                      | `4`                                                                         |
| `bathrooms`    | integer or null | Bathrooms; property only                                                                                                                                                                                                                                                                                                                                                                                     | `2`                                                                         |
| `floorArea`    | number or null  | Floor area in square metres; property only                                                                                                                                                                                                                                                                                                                                                                   | `197`                                                                       |
| `landArea`     | number or null  | Land area in square metres; property only                                                                                                                                                                                                                                                                                                                                                                    | `116700`                                                                    |
| `make`         | string or null  | Vehicle make; cars only                                                                                                                                                                                                                                                                                                                                                                                      | `"Nissan"`                                                                  |
| `model`        | string or null  | Vehicle model; cars only                                                                                                                                                                                                                                                                                                                                                                                     | `"March"`                                                                   |
| `year`         | integer or null | Vehicle year; cars only                                                                                                                                                                                                                                                                                                                                                                                      | `2015`                                                                      |
| `odometerKm`   | integer or null | Odometer in kilometres; cars only                                                                                                                                                                                                                                                                                                                                                                            | `86630`                                                                     |
| `bodyStyle`    | string or null  | Body style; cars only                                                                                                                                                                                                                                                                                                                                                                                        | `"Hatchback"`                                                               |
| `transmission` | string or null  | Transmission; cars only                                                                                                                                                                                                                                                                                                                                                                                      | `"Automatic"`                                                               |
| `fuel`         | string or null  | Fuel type; cars only                                                                                                                                                                                                                                                                                                                                                                                         | `"Petrol"`                                                                  |
| `listedAt`     | string or null  | Listing start, ISO 8601, UTC                                                                                                                                                                                                                                                                                                                                                                                 | `"2026-09-26T03:10:03.230Z"`                                                |
| `agencyName`   | string or null  | Business name of the licensed real estate agency, property manager or registered motor dealer, as the source shows it (licence suffix included). Null for private sellers and private landlords, and null when the source shows an agency without its licence flag. Never an individual                                                                                                                      | `"Portage Cars New Lynn"`                                                   |
| `photoCount`   | integer or null | Number of photos on the listing                                                                                                                                                                                                                                                                                                                                                                              | `17`                                                                        |
| `sourceUrl`    | string          | Search page the item was extracted from                                                                                                                                                                                                                                                                                                                                                                      | `"https://www.trademe.co.nz/a/motors/cars"`                                 |
| `scrapedAt`    | string          | Extraction time, ISO 8601, UTC                                                                                                                                                                                                                                                                                                                                                                               | `"2026-09-26T03:59:21.269Z"`                                                |

### Input

| Field                | Type             | Default                | Meaning                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| -------------------- | ---------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `categories`         | array of strings | all three              | Any of `property-sale`, `property-rent`, `motors`. `maxItems` is split evenly across the categories you choose, so a default run returns 30 of each.                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `regions`            | array of strings | empty, meaning all     | Region slugs: `auckland`, `canterbury`, `wellington`, `waikato`, `bay-of-plenty`, `manawatu-whanganui`, `otago`, `northland`, `hawkes-bay`, `taranaki`, `nelson-tasman`, `southland`, `gisborne`, `marlborough`, `west-coast`. Property is fetched one region page at a time in this order (largest first) until the category's share is filled. Cars are fetched from national pages and filtered by region afterwards, because Trade Me's region-filtered car search uses URL parameters its robots.txt disallows; a sparse region therefore yields fewer cars per page. Unknown slugs are logged and ignored. |
| `query`              | string           | empty                  | Keep only items whose title, address, suburb, district, make, model or body style contains this text, case-insensitive. It is a filter applied after fetching, not a site search, because the site's search URLs are disallowed by robots.txt.                                                                                                                                                                                                                                                                                                                                                                   |
| `maxItems`           | integer          | 90                     | Stop after this many items. Each fetched page yields up to about 70 property listings or 22 cars, so a run over all regions can reach roughly 1,000 property listings per category and about 460 cars before it runs out of allowed pages.                                                                                                                                                                                                                                                                                                                                                                       |
| `proxyConfiguration` | object           | Apify datacenter proxy | Standard Apify proxy settings. Datacenter proxies are sufficient.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |

### Pricing

Pay per event, two events. `actor-start`: $0.01, once per run, covers the fixed overhead of starting. `result`: $0.002 per item, that is $2 per 1,000 items. Items are pushed and charged in the same step, so a run never delivers more items than it charges for, and a run stops cleanly when your maximum charge is reached. A default run of 90 items costs $0.19.

Measured platform cost: the default run fetches four pages, about 4.4 MB, and the crawler runs for about 11 seconds. Scaled to 1,000 items that is 15 to 46 pages (property pages carry about 70 listings, car pages 22) and roughly 25 MB, about a minute of crawl time at the 40 requests a minute limit, and at Apify's list prices ($0.40 per compute unit at 1 GB of memory, $0.20 per GB of transfer) about $0.015 per 1,000 items. The $2 price is therefore roughly 130 times the platform cost, above the house floor of three times.

Free allowance: Apify's free plan carries $5 of usage a month. At these prices that covers 26 default runs of 90 items ($0.19 each, $4.94 in all), or about 2,400 items across fewer, larger runs, before a paid plan is needed.

### Limits and honesty

- One page per region for property and one page per make for cars. Trade Me's robots.txt disallows paginated search URLs (`?page=`), search strings and region query parameters, and this Actor honours that. The reachable pool is therefore the first page of each allowed listing page: about 70 property listings per region per category (fewer in small regions) and 22 cars per make page across 20 common makes plus the national cars page. A run asking for more than that stops when the pages run out and says so in the log.
- Featured and promoted listings are included. The first page of each region carries the current results plus the featured listings shown around them; all belong to the same search and all are returned. A listing featured on more than one page is returned once. Order within a run follows the page.
- `price` is the first dollar amount in the displayed text. Property auctions, tenders, deadline sales and "price by negotiation" listings have `price` null; "enquiries over" and "offers over" carry that threshold. Car auctions (`saleType` `"auction"`) carry the current bid, or the start price when no bid has been placed, which can be as low as $1; that number is where the bidding stands, not what the car will sell for. Use `priceText` and `saleType` together to tell the cases apart.
- `saleType` is derived from the listing record in the page state, which marks classifieds explicitly and leaves auctions unmarked (the source omits false booleans), with the reserve state and a start price on auction records confirming the reading. A car record carrying neither marker gets null rather than a guess. Property is always null here: on Trade Me every property listing is a classified advertisement, and its sale method lives in `priceText`.
- `address` follows the house ruling on property addresses. It is filled only when a licensed real estate agency or property manager placed the listing and is named in `agencyName`; for every private-party listing, and for the occasional listing where the source shows an agency without its licence flag, `address` is null and `suburb`, `district` and `region` carry the location. Cars never carry an address.
- Region names differ between verticals. Property uses 15 regions; cars use Trade Me's older set (Manawatu and Whanganui separately, Nelson Bays, Wairarapa, Timaru - Oamaru). The `regions` filter folds the car names onto the 15 slugs; the `region` field keeps the source's own name.
- Not collected, on purpose: individual agents' names, phone numbers, photos and profile links; members' ids; private-party street addresses; vehicle number plates and VINs; agency phone numbers, websites and logos; open home times; map coordinates; photo URLs.
- `title` is free text a lister wrote and passes through the house free-text filter (`stripContactProse` in the shared `src/scrub.js`) before output: any sentence carrying a phone number, an email address, a name after an honorific or a role, or a licence number is dropped, and `title` is null when nothing remains. New Zealand landlines with a two-digit area code ("(09) 123 4567") and numbers typed without separators ("0211234567") are shapes the shared filter does not know, so this Actor drops sentences carrying those too. This is a filter, not a guarantee; a number written in a form neither rule recognises can pass.
- Listing detail pages are not fetched. Descriptions, full photo sets, rateable values, bid counts and open-home times are on those pages and are not returned.
- The site changes its front end from time to time. The extractor reads the application state the page embeds for crawlers; when that changes, the daily test fails, the house status page shows this Actor as under maintenance, a fix ships, and the changelog records it.
- Running locally without an Apify login: set `proxyConfiguration` to `{ "useApifyProxy": false }` in the input, otherwise the SDK tries the Apify proxy without credentials.

### Legal

Robots. Trade Me's robots.txt (https://www.trademe.co.nz/robots.txt) was checked on 2026-09-25 for the exact paths this Actor fetches. The crawler's product token `SubRosaBot` matches none of the named groups in the file, so the `User-agent: *` group applies. That group opens with `Allow: /` and later says `Disallow: /a/property/`, but it then allows, by name and with a terminal anchor, each of the thirty property pages used here: `Allow: /a/property/residential/sale/<region>$` for all fifteen regions and `Allow: /a/property/residential/*/<region>$`, which covers the rent pages; the longer, more specific allow rule wins over the shorter disallow. For cars, `Allow: /a/motors/cars*` covers `/a/motors/cars` and the twenty `/a/motors/cars/<make>` pages; the disallow rules beside it apply to a trailing slash, to numeric path segments, to `refine` and `search` paths and to any query string, none of which this Actor requests. What robots.txt does disallow and this Actor does not fetch: paginated results (`?page=`), search and refine URLs, and region and district query parameters. Property listing detail pages are allowed by longer rules in the file; this Actor does not fetch them either, because every field it returns is on the search page. All 51 URLs the Actor can request were checked against the file with the same parser the crawler uses at run time, under the declared identity, and all 51 are allowed. The crawler also reads robots.txt at the start of every run and skips anything that has since become disallowed. Trade Me last changed the file's parameter blocks on 15 September 2025 by its own comment.

Terms. Trade Me's site terms and conditions (https://help.trademe.co.nz/hc/en-us/articles/360007001532-Trade-Me-site-terms-and-conditions), clause 3.3 under "Your general commitments", say: "No scraping: You may not use a robot, spider, scraper or other unauthorised automated means to access the Site or information featured on it for any purpose. You also may not manually scrape, harvest or otherwise extract data from our Site without our express permission." The house holds no Trade Me account, has never registered one, and never logs in, so it has not entered those terms as a member. The statement the site addresses to automated visitors is its robots.txt, and that is the consent the house honours exactly. This Actor fetches only logged-out public pages that robots.txt permits, at 40 requests a minute and two at a time, under the declared identity `SubRosaBot/1.0` (`SubRosaBot/1.0 (+https://subrosa.dev/bots)` in full), with header generation off, no session pool and no cookies kept. Trade Me serves the fully rendered search page, listing records included, to clients whose User-Agent declares a crawler, and answers a browser User-Agent sent from a non-browser client with an empty 406; this Actor takes only what the site serves to declared crawlers and never impersonates a browser. If Trade Me asks the house to stop, in any form, the Actor is unpublished the same day and the changelog says why.

Personal data. The source's search pages show, for each listing, fields this Actor reads and drops before output: for property, the listing agents' full names, mobile and office phone numbers, photos and profile slugs, the agency's phone number, website, logos and branding, the member id of the lister, the listing's photo URLs and thumbnail, its map coordinates (latitude, longitude, easting, northing), the agency's internal reference code, open home times, and, for rentals, the ideal-tenant, maximum-tenant and smoking preferences; for cars, the member id of the seller, the number plate, the VIN, the dealer's showroom URL and logos, the photo URLs and thumbnail, and the seller's preferred contact time. None of these is in the output. Under the house ruling on property addresses, a street address is returned only when the listing is placed by a licensed agency or property manager whose business name is in the item; a private seller's or private landlord's street address is that person's data, so `address` is null on every private-party listing and the locality fields carry the location. The only names returned are the business names of licensed agencies, property managers and registered dealers. `title` passes through the house free-text filter before output, which drops any sentence carrying a phone number, an email address, a name after an honorific or a role, or a licence number; this is a filter, not a guarantee.

You. A buyer who holds a Trade Me account is bound by the terms they accepted there, including clause 3.3 above, and is responsible for whether and how they use this data. You are responsible for your downstream use of the output and for the law that applies to you.

### Changelog

- 2026-09-26: house scrub module adopted. `title` now passes through the shared `stripContactProse` (sentence-level: phone, email, honorific or role plus name, licence number), with a New Zealand addition for two-digit area codes and unspaced numbers; the live test reads the shared phone and email rules and the schema's identifier keys; `sameDomainDelaySecs` written explicitly as 0 (trademe.co.nz robots.txt states no Crawl-delay, checked 2026-09-26); test fixtures use 555 numbers and example.com addresses only.
- 2026-09-25: review fixes. Identity moved to the shared house module (`SubRosaBot/1.0 (+https://subrosa.dev/bots)`); delivery routed through `createDeliverer`; `address` now null on private-party listings per the house ruling; `saleType` added for cars; Legal and Pricing sections rewritten to the scaffold; sample and tests regenerated.
- 2026-09-25: first release.

### Support

Open an issue on the Actor's Issues tab. Replies within one day.

# Changelog

This Actor's version history is a separate document: https://apify.com/subrosa/trademe-listings/changelog.md

# Actor input Schema

## `categories` (type: `array`):

Which listing types to return. property-sale is residential property for sale, property-rent is residential property to rent, motors is cars. maxItems is shared evenly across the chosen categories.

## `regions` (type: `array`):

Trade Me region slugs to include. Empty means every region, in order of size (Auckland first). Property pages are fetched per region; car listings are filtered by region after fetching, because Trade Me's region-filtered car search uses URL parameters its robots.txt disallows.

## `query` (type: `string`):

Keep only listings whose title, address, suburb, district, make, model or body style contains this text (case-insensitive). Applied after fetching; it does not run a site search, because Trade Me's robots.txt disallows search-parameter URLs. Leave empty for no filter.

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

Stop after this many items, shared evenly across the chosen categories. The default is sized so the default run finishes in well under five minutes. Each fetched page yields up to about 70 property listings or 22 car listings; a run can reach roughly 1,000 property listings per category across all regions and about 460 cars.

## `proxyConfiguration` (type: `object`):

Apify proxy settings. Datacenter proxies are enough for this source; residential proxies are not needed and cost more.

## Actor input object example

```json
{
  "categories": [
    "property-sale",
    "property-rent",
    "motors"
  ],
  "regions": [],
  "query": "",
  "maxItems": 90,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}
```

# Actor output Schema

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

No description

# 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 = {
    "categories": [
        "property-sale",
        "property-rent",
        "motors"
    ],
    "regions": [],
    "query": "",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": []
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("subrosa/trademe-listings").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 = {
    "categories": [
        "property-sale",
        "property-rent",
        "motors",
    ],
    "regions": [],
    "query": "",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": [],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("subrosa/trademe-listings").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "categories": [
    "property-sale",
    "property-rent",
    "motors"
  ],
  "regions": [],
  "query": "",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}' |
apify call subrosa/trademe-listings --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,subrosa/trademe-listings"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ci9Uf4ZqvtJVzcMbH/builds/e7h9AGfqhB24Yj9NB/openapi.json
