{
  "openapi": "3.0.1",
  "info": {
    "title": "OneRoof New Zealand Property Scraper",
    "description": "[💰 $4.0 / 1K] Extract New Zealand property listings from oneroof.co.nz — for sale, for rent, sold, rural, and commercial. Get prices, addresses, beds/baths, floor & land area, GPS, photos, OneRoof estimates, and agent contacts. Search by region and type, or paste OneRoof URLs.",
    "version": "1.0",
    "x-build-id": "JhqiRgh83eadVIitv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~oneroof-co-nz-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-oneroof-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/solidcode~oneroof-co-nz-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-oneroof-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/solidcode~oneroof-co-nz-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-oneroof-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",
        "properties": {
          "mode": {
            "title": "What to Collect",
            "enum": [
              "houses-for-sale",
              "houses-for-rent",
              "sold",
              "rural",
              "commercial-property-for-sale",
              "commercial-property-for-lease",
              "businesses-for-sale"
            ],
            "type": "string",
            "description": "Choose which kind of listings to collect. Ignored when Start URLs are provided.",
            "default": "houses-for-sale"
          },
          "region": {
            "title": "Region",
            "enum": [
              "all-new-zealand-1",
              "northland-34",
              "auckland-35",
              "waikato-36",
              "bay-of-plenty-37",
              "coromandel-48",
              "gisborne-region-38",
              "hawke-s-bay-39",
              "central-north-island-55",
              "taranaki-40",
              "manawatu-whanganui-56",
              "wairarapa-52",
              "wellington-42",
              "marlborough-51",
              "nelson-bays-43",
              "west-coast-44",
              "canterbury-45",
              "central-otago-lakes-district-50",
              "otago-46",
              "southland-47",
              "pacific-islands-54"
            ],
            "type": "string",
            "description": "New Zealand region to search. Choose 'All New Zealand' to cover the whole country.",
            "default": "all-new-zealand-1"
          },
          "propertyType": {
            "title": "Property Type",
            "enum": [
              "any",
              "house",
              "apartment",
              "townhouse",
              "unit",
              "section",
              "lifestyle"
            ],
            "type": "string",
            "description": "Filter by property category. Choose 'Any' to include all types. Applies to residential modes; ignored for commercial, rural, and business modes.",
            "default": "any"
          },
          "bedroomsMin": {
            "title": "Minimum Bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Only keep properties with at least this many bedrooms. Applied after each page is collected (OneRoof has no exact minimum-bedrooms filter in its results URL), so on sparse regions a run may stop early after several pages return no matches. Leave empty for no filter."
          },
          "bathroomsMin": {
            "title": "Minimum Bathrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Only keep properties with at least this many bathrooms. Applied after each page is collected (no exact bathrooms filter exists in the OneRoof results URL). Leave empty for no filter."
          },
          "priceMin": {
            "title": "Minimum Price (NZD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep listings at or above this price in New Zealand dollars. For rentals this is the weekly rent. Applied after each page is collected (OneRoof only exposes bucketed price bands, not an exact minimum). Listings with no numeric price (e.g. 'Auction', 'By Negotiation') are kept. Leave empty for no minimum."
          },
          "priceMax": {
            "title": "Maximum Price (NZD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep listings at or below this price in New Zealand dollars. For rentals this is the weekly rent. Applied after each page is collected (OneRoof only exposes bucketed price bands, not an exact maximum). Listings with no numeric price (e.g. 'Auction', 'By Negotiation') are kept. Leave empty for no maximum."
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Power-user input. Paste oneroof.co.nz search-result URLs (e.g. https://www.oneroof.co.nz/search/houses-for-sale/region_auckland-35_page_1) or individual listing URLs. When provided, these override the What to Collect, Region, Property Type, and Filters settings above. Any filters you set on the OneRoof site (price, beds, type) are preserved this way.",
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Include Full Listing Details",
            "type": "boolean",
            "description": "Open each listing's own page to add the agent email, agent profile link, full description, legal description, capital (council) value, open-home times, and the complete photo set. Turn off (the default) for faster, cheaper runs that still return everything on the search card — price, address, beds/baths/parking, area, GPS, photos, OneRoof estimate, rating valuation, and the agent's name and phone. Slower when on: it makes one extra request per listing.",
            "default": false
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of listings to collect across all searches and URLs. Set 0 for unlimited (an internal upper limit of 50,000 rows per run still applies to prevent runaway pagination). Results are collected in full pages, so the final page may overshoot this cap by a few records.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}