{
  "openapi": "3.0.1",
  "info": {
    "title": "RealEstate.co.nz Scraper with Contacts & Financials",
    "description": "Scrape New Zealand property listings from Realestate.co.nz including  prices, addresses, specs, agent info and more. Perfect for real estate analytics, lead generation, or dashboards.",
    "version": "0.0",
    "x-build-id": "seQlp5FVnGbhnFTn7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fatihtahta~realestate-co-nz-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fatihtahta-realestate-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/fatihtahta~realestate-co-nz-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fatihtahta-realestate-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/fatihtahta~realestate-co-nz-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fatihtahta-realestate-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": {
          "startUrls": {
            "title": "Add Direct Realestate.co.nz URLs",
            "type": "array",
            "description": "Paste one or more supported Realestate.co.nz URLs, such as a residential search page or an individual property listing URL. Use this option for precise repeatability; leave it empty when you want the actor to build a search from city, district, suburb, listing type, price, size, and property-type filters.",
            "items": {
              "type": "string"
            }
          },
          "city": {
            "title": "Set One or More Cities or Regions to Search",
            "type": "array",
            "description": "Enter city or region names supported by Realestate.co.nz, such as Auckland or Bay of Plenty. Leave this empty to search the actor's default nationwide residential scope; add districts and suburbs when you need a more focused market for monitoring, comparison, or downstream deduplication.",
            "items": {
              "type": "string"
            }
          },
          "district": {
            "title": "Narrow the Search to Districts Within the Selected City or Region",
            "type": "array",
            "description": "Enter district names within the selected city or region, such as Auckland City or Manukau City. Use districts to reduce broad regional searches into cleaner local-market exports.",
            "items": {
              "type": "string"
            }
          },
          "suburbs": {
            "title": "Narrow the Search to Specific Suburbs",
            "type": "array",
            "description": "Enter one or more suburb names within the selected district, such as Auckland Central, Avondale, or Blockhouse Bay. Suburb-level targeting is useful for repeatable neighborhood monitoring and smaller validation runs.",
            "items": {
              "type": "string"
            }
          },
          "listing_type": {
            "title": "Choose the Residential Listing Channel",
            "enum": [
              "sale",
              "rental",
              "sold"
            ],
            "type": "string",
            "description": "Select whether the query-built search should collect properties for sale, rentals, or recently sold residential records. This only affects searches built from the structured query fields; direct URLs keep their own source scope.",
            "default": "sale"
          },
          "sort_by": {
            "title": "Choose How Query-Built Results Are Ordered",
            "enum": [
              "latest",
              "featured",
              "latest-sale"
            ],
            "type": "string",
            "description": "Choose the ordering used for structured searches. Use latest for fresh listing monitoring, featured for marketplace-style result order, or latest sale date for sold-history workflows.",
            "default": "latest"
          },
          "min_price": {
            "title": "Set the Minimum Price or Weekly Rent",
            "minimum": 0,
            "type": "integer",
            "description": "Enter the minimum sale price for sale or sold searches, or the minimum weekly rent for rental searches. Use price bounds to keep exports aligned with an investment, affordability, or competitive-tracking segment."
          },
          "max_price": {
            "title": "Set the Maximum Price or Weekly Rent",
            "minimum": 0,
            "type": "integer",
            "description": "Enter the maximum sale price for sale or sold searches, or the maximum weekly rent for rental searches. Combine this with the minimum price to create a bounded pricing band for analysis or scheduled syncs."
          },
          "min_bedrooms": {
            "title": "Set the Minimum Number of Bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Use this to keep only listings with at least the selected number of bedrooms. This is useful for family-home searches, investor criteria, or lead lists with minimum property requirements."
          },
          "max_bedrooms": {
            "title": "Set the Maximum Number of Bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Use this to cap the bedroom count for smaller-home, apartment, unit, or tightly scoped rental searches."
          },
          "min_bathrooms": {
            "title": "Set the Minimum Number of Bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Use this to keep listings that meet a minimum bathroom requirement. Combine it with bedroom, price, and property-type filters for cleaner downstream comparison."
          },
          "max_bathrooms": {
            "title": "Set the Maximum Number of Bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Use this to cap bathroom count when you want a tighter property profile or smaller export segment."
          },
          "min_carparks": {
            "title": "Set the Minimum Number of Carparks",
            "minimum": 0,
            "type": "integer",
            "description": "Enter the minimum number of carparks required for each listing. This helps target properties that meet parking requirements for buyers, renters, or operational lead lists."
          },
          "min_land_area": {
            "title": "Set the Minimum Land Area in Square Metres",
            "minimum": 0,
            "type": "integer",
            "description": "Enter the minimum land area in square metres. Use this for section, lifestyle, redevelopment, or land-size-sensitive property searches."
          },
          "max_land_area": {
            "title": "Set the Maximum Land Area in Square Metres",
            "minimum": 0,
            "type": "integer",
            "description": "Enter the maximum land area in square metres. Combine this with the minimum land area to keep exports inside a specific land-size band."
          },
          "min_floor_area": {
            "title": "Set the Minimum Floor Area in Square Metres",
            "minimum": 0,
            "type": "integer",
            "description": "Enter the minimum building or floor area in square metres. This helps filter for properties with enough internal space before records are saved."
          },
          "max_floor_area": {
            "title": "Set the Maximum Floor Area in Square Metres",
            "minimum": 0,
            "type": "integer",
            "description": "Enter the maximum building or floor area in square metres. Use it with the minimum floor area for controlled property-size exports."
          },
          "has_swimming_pool": {
            "title": "Only Collect Listings With a Swimming Pool",
            "type": "boolean",
            "description": "Enable this when swimming pool availability is part of your property criteria. Leave it off for broader discovery.",
            "default": false
          },
          "sale_property_types": {
            "title": "Select Sale or Sold Property Types",
            "type": "array",
            "description": "Choose one or more property types for sale and sold searches, such as House, Section, Apartment, or Townhouse. Leave empty to keep all supported sale or sold property types in scope.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "7",
                "9",
                "2",
                "4",
                "8",
                "5",
                "6",
                "3",
                "50",
                "53",
                "51",
                "52"
              ],
              "enumTitles": [
                "House",
                "Lifestyle Property",
                "Section",
                "Apartment",
                "Townhouse",
                "Lifestyle Section",
                "Residential Unit",
                "Home & Income",
                "Studio",
                "Retirement Living",
                "Multiple Properties",
                "Carpark",
                "Boat shed"
              ]
            }
          },
          "rental_property_types": {
            "title": "Select Rental Property Types",
            "type": "array",
            "description": "Choose one or more property types for rental searches, such as House, Apartment, Unit, Townhouse, or Studio. Leave empty to keep all supported rental property types in scope.",
            "items": {
              "type": "string",
              "enum": [
                "10",
                "11",
                "12",
                "13",
                "14",
                "15",
                "54",
                "55",
                "56",
                "57"
              ],
              "enumTitles": [
                "House",
                "Apartment",
                "Studio",
                "Townhouse",
                "Unit",
                "Holiday Rental",
                "Lifestyle Property",
                "Section",
                "Retirement Living",
                "Carpark"
              ]
            }
          },
          "publication_date": {
            "title": "Filter Active Listings by Publication Date 📅",
            "enum": [
              "last_24_hours",
              "last_3_days",
              "last_7_days",
              "last_30_days",
              "last_90_days"
            ],
            "type": "string",
            "description": "Optionally keep only active listings published within a recent window. Use this for fresh-listing monitoring, scheduled alerts, or incremental ETL refreshes where older active listings are not needed."
          },
          "get_valuations": {
            "title": "Collect Available Valuation and Market History Details",
            "type": "boolean",
            "description": "Enable this to collect council CV, estimated value, valuation history, and sale history when Realestate.co.nz provides them. Leave it off for faster validation runs, high-volume listing exports, or workflows that only need the standard listing record.",
            "default": false
          },
          "limit": {
            "title": "Set the Maximum Number of Listings to Save per Source",
            "minimum": 1,
            "type": "integer",
            "description": "Choose the maximum number of listings to save for each input source or query-built search. The actor stops saving records for that source after this limit is reached.",
            "default": 50000
          },
          "proxyConfiguration": {
            "title": "Use the Default Residential Connection Configuration",
            "type": "object",
            "description": "The default Apify Residential proxy configuration is suitable for most runs. Adjust only when your Apify workspace has a specific connection policy or you are testing a controlled local setup.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}