realestate.co.nz search
Listings on realestate.co.nz (New Zealand) for sale, rent and lease (residential, rural, lifestyle, commercial, business) with the site's filters: place (region, district or suburb), nearby suburbs, office, price, bedrooms, bathrooms, land and floor area, car parks, property types, keywords, open homes, mortgagee sales, new builds, waterfront, pool, pets, floor plans, videos, 3D tours, furnishing and recent price changes, plus sort. Each result has id, link, listing number, category, property type, status, headline, price text, price history, rooms, parking, areas, flags, published date, address with coordinates, open homes, photos, the office and agents (a private listing has none), and the auction, tender or deadline-sale date (deadline), council rates (rates, rates_period), body-corporate levy (body_corp_levy, body_corp_levy_period), area units (floor_area_unit, land_area_unit: the land area can be in hectares), full bathrooms and the agency's offer and document links (action_links). aggregations.property_types counts results by type. Pass next_page back as page; null on the last page.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
location | string | A region (auckland, wellington, canterbury...), a district path (auckland/auckland-city), a suburb path or a place name (Ponsonby); see /realestate-nz/v1/places. Example: auckland |
category | res_sale | res_rent | rural_sale | lifestyle_sale | lifestyle_lease | com_sale | com_lease | biz_sale | Listing category. Example: res_sale |
include_nearby | boolean | Include nearby suburbs. |
office_id | integer | Only this office's listings. |
price_min | number | Minimum price (NZD; per week for rentals). |
price_max | number | Maximum price (NZD; per week for rentals). |
bedrooms_min | integer | Minimum bedrooms. |
bedrooms_max | integer | Maximum bedrooms. |
bathrooms_min | integer | Minimum bathrooms. |
bathrooms_max | integer | Maximum bathrooms. |
land_area_min | number | Minimum land area (m²). |
land_area_max | number | Maximum land area (m²). |
floor_area_min | number | Minimum floor area (m²). |
floor_area_max | number | Maximum floor area (m²). |
carparks_min | integer | Minimum car parks. |
property_type | string | Residential types, comma list: house, apartment, studio, townhouse, unit, home_and_income, lifestyle_property, lifestyle_section, section. |
property_type_ids | string | Other property type ids (numbers), comma list. |
keywords | string | Keywords, comma list. |
open_home | boolean | Only listings with an open home. |
mortgagee_sale | boolean | Mortgagee sales only. |
new_construction | boolean | New builds only. |
waterfront | boolean | Coastal waterfront only. |
pool | boolean | With a swimming pool. |
pets_allowed | boolean | Pets allowed (rentals). |
has_floorplans | boolean | With floor plans. |
has_videos | boolean | With videos. |
has_3d_tour | boolean | With a 3D tour. |
with_address | boolean | With a street address. |
furnished | string | Furnishing (rentals), comma list: furnished, unfurnished, partly. |
price_changed | boolean | Price changed in the last 28 days. |
sort | featured | best-match | latest | oldest | lowest-price | highest-price | Sort order. Example: featured |
limit | integer | Results per page (max 50). Example: 20 |
page | integer | Result page (1 = first). Example: 1 |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/realestate-nz/v1/search?location=auckland" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/realestate-nz/v1/search",
params={"location": "auckland"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/realestate-nz/v1/search");
url.searchParams.set("location", "auckland");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).