{
  "openapi": "3.0.1",
  "info": {
    "title": "Trade Me NZ Scraper – Marketplace, Property, Motors & Jobs",
    "description": "Scrape trademe.co.nz across all five sections: Marketplace goods and auctions, Property, Motors, Jobs and Services. Search or paste URLs, walk pagination, and enrich with full detail plus seller feedback (positive/negative counts and score).",
    "version": "1.0",
    "x-build-id": "iICwaI6sKMAIVGyXI"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~trademe-co-nz-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-trademe-co-nz-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/abotapi~trademe-co-nz-scraper/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-trademe-co-nz-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/abotapi~trademe-co-nz-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-trademe-co-nz-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",
        "required": [
          "mode"
        ],
        "properties": {
          "vertical": {
            "title": "Section",
            "enum": [
              "marketplace",
              "property",
              "motors",
              "jobs",
              "services"
            ],
            "type": "string",
            "description": "Which Trade Me section to scrape: Marketplace (general goods and auctions), Property, Motors (vehicles), Jobs, or Services.",
            "default": "marketplace"
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "url"
            ],
            "type": "string",
            "description": "Search mode uses keywords and filters. URL mode scrapes category, search or individual listing links you paste.",
            "default": "search"
          },
          "queries": {
            "title": "Keyword searches",
            "type": "array",
            "description": "One or more keyword searches within the selected section (for example: iphone, mountain bike). Leave empty to browse the whole section or a category.",
            "items": {
              "type": "string"
            }
          },
          "listingType": {
            "title": "Property listing type",
            "enum": [
              "residential-sale",
              "residential-rent",
              "commercial-sale",
              "lifestyle"
            ],
            "type": "string",
            "description": "Property section only. Which property market to search.",
            "default": "residential-sale"
          },
          "region": {
            "title": "Region",
            "type": "string",
            "description": "Property or Jobs section. Region name or id (for example: auckland, wellington, canterbury)."
          },
          "district": {
            "title": "District",
            "type": "string",
            "description": "Property or Jobs section. District within the region."
          },
          "suburb": {
            "title": "Suburb",
            "type": "string",
            "description": "Property section. Suburb within the district."
          },
          "propertyType": {
            "title": "Property type",
            "type": "string",
            "description": "Property section. For example: House, Apartment, Townhouse, Unit, Section, Lifestyle."
          },
          "minBedrooms": {
            "title": "Min bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Property section. Minimum number of bedrooms."
          },
          "maxBedrooms": {
            "title": "Max bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Property section. Maximum number of bedrooms."
          },
          "minBathrooms": {
            "title": "Min bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Property section. Minimum number of bathrooms."
          },
          "minLandArea": {
            "title": "Min land area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Property section. Minimum land area in square metres."
          },
          "maxLandArea": {
            "title": "Max land area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Property section. Maximum land area in square metres."
          },
          "minFloorArea": {
            "title": "Min floor area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Property section. Minimum floor area in square metres."
          },
          "maxFloorArea": {
            "title": "Max floor area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Property section. Maximum floor area in square metres."
          },
          "petsOkay": {
            "title": "Pets okay",
            "type": "boolean",
            "description": "Property section (rentals). Only listings that allow pets.",
            "default": false
          },
          "make": {
            "title": "Vehicle make",
            "type": "string",
            "description": "Motors section. For example: Toyota, Ford, Mazda."
          },
          "model": {
            "title": "Vehicle model",
            "type": "string",
            "description": "Motors section. For example: Corolla, Ranger."
          },
          "minYear": {
            "title": "Min year",
            "minimum": 1900,
            "type": "integer",
            "description": "Motors section. Earliest manufacture year."
          },
          "maxYear": {
            "title": "Max year",
            "minimum": 1900,
            "type": "integer",
            "description": "Motors section. Latest manufacture year."
          },
          "minOdometer": {
            "title": "Min odometer (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Motors section. Minimum odometer reading."
          },
          "maxOdometer": {
            "title": "Max odometer (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Motors section. Maximum odometer reading."
          },
          "bodyStyle": {
            "title": "Body style",
            "type": "string",
            "description": "Motors section. For example: Hatchback, Sedan, SUV, Ute."
          },
          "transmission": {
            "title": "Transmission",
            "type": "string",
            "description": "Motors section. For example: Automatic, Manual."
          },
          "fuel": {
            "title": "Fuel type",
            "type": "string",
            "description": "Motors section. For example: Petrol, Diesel, Electric, Hybrid."
          },
          "category": {
            "title": "Category",
            "type": "string",
            "description": "Marketplace, Jobs or Services section. Category id or slug to narrow the search."
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "",
              "New",
              "Used"
            ],
            "type": "string",
            "description": "Marketplace section. Item condition.",
            "default": ""
          },
          "buyNowOnly": {
            "title": "Buy Now only",
            "type": "boolean",
            "description": "Marketplace section. Only listings with a Buy Now price.",
            "default": false
          },
          "jobType": {
            "title": "Job type",
            "type": "string",
            "description": "Jobs section. For example: Full time, Part time, Contract."
          },
          "minPrice": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price in NZD (or minimum salary for Jobs)."
          },
          "maxPrice": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price in NZD (or maximum salary for Jobs)."
          },
          "startUrls": {
            "title": "URLs",
            "type": "array",
            "description": "Trade Me category, search-result or individual listing URLs. Results continue from the page number in the URL onward.",
            "items": {
              "type": "string"
            }
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "Default",
              "FeaturedFirst",
              "PriceAsc",
              "PriceDesc",
              "TitleAsc",
              "ExpiryAsc",
              "ExpiryDesc",
              "BidsMost",
              "BuyNowPrice",
              "BestMatch",
              "JobsLatestListingDesc",
              "HighestSalary",
              "LowestSalary",
              "ReviewsDesc"
            ],
            "type": "string",
            "description": "Result ordering. Applicability varies by section: Marketplace supports Default, FeaturedFirst, PriceAsc, PriceDesc, TitleAsc, ExpiryAsc, ExpiryDesc, BidsMost, BuyNowPrice; Jobs supports BestMatch, JobsLatestListingDesc, HighestSalary, LowestSalary; Services supports ReviewsDesc. Also orders a pasted category or search URL in URL mode, taking precedence over any ordering already encoded in that URL. Leave as Default if unsure.",
            "default": "Default"
          },
          "keyword": {
            "title": "Extra keyword filter",
            "type": "string",
            "description": "Optional free-text term applied on top of the section and filters. Also applies to a pasted URL in URL mode, but only when that URL does not already contain a search term of its own, in which case the URL's own term wins."
          },
          "fetchDetails": {
            "title": "Fetch full details + seller feedback",
            "type": "boolean",
            "description": "Fetch each listing's full detail page and the seller's member feedback (positive/negative counts and score). Slower and adds a per-item detail charge.",
            "default": false
          },
          "includeMemberFeedbackComments": {
            "title": "Include individual feedback comments",
            "type": "boolean",
            "description": "When full details are enabled, also collect the seller's individual feedback comments.",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of listings to return. This is the main limit. Set 0 for unlimited.",
            "default": 20
          },
          "maxPages": {
            "title": "Max pages",
            "minimum": 0,
            "type": "integer",
            "description": "Limit on result pages to walk per search. Leave empty to walk every result page; the run still stops at Max items."
          },
          "resumeFromRunId": {
            "title": "Resume from a previous run (optional)",
            "type": "string",
            "description": "Paste a previous run ID or dataset ID to continue an interrupted or paginated walk. Listings already collected there (matched by listingId) are skipped, so this run only saves the new ones. Leave empty for a normal fresh run."
          },
          "proxy": {
            "title": "Connection",
            "type": "object",
            "description": "Connection configuration. The default is recommended.",
            "default": {
              "useApifyProxy": true
            }
          },
          "mcpConnectors": {
            "title": "Pipe results into your apps (optional)",
            "type": "array",
            "description": "Optionally send results into apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a page per item; other connectors get a best-effort write. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com)."
          },
          "notionParentPageUrl": {
            "title": "Notion parent page (Notion connector only)",
            "type": "string",
            "description": "URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
          },
          "maxNotifyListings": {
            "title": "Max items to export per connector",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap on items written to each connector per run. Does not affect the dataset.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}