Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,528Letters: 13Defects: 1,322counted just now
teppi

Server definition

Hash
sha256:8f8e2dfaa483f68a391370d25501cdb67e52746d97c9226d4d4bbb017249d918
What it is
What a remote MCP server returned when asked what it offers: 173 tools

The blob, as servednamed by its sha256

{ "instructions": "Microburbs Australian property data.\n\nSuburb tools are keyed by the exact ABS Suburb and Locality (SAL) name, e.g.\n`Burwood (NSW)` — many suburbs carry a state suffix. Given free text or a bare\nname, call `geocode_suburb` first and use the `area_name` it returns. Those\ntools do not guess a state or correct typos; `geocode_suburb` is typo-tolerant\nand is where a name gets resolved.\n\nProperty tools are keyed by GNAF id — resolve an address with `geocode_address`.\n\nTo rank or shortlist suburbs on numeric criteria (growth, yield, price), use\n`suburbs_finder_search` rather than fetching suburbs one at a time.\n\nWITHOUT A KEY (the free sandbox), `geocode_suburb` still works — resolving a\nsuburb name is free nationwide, so start there as usual. What is limited is the\nDATA: only these nine suburbs answer, one per state and territory.\n\n Bondi · Belmont North · St Kilda (Vic.) · Fortitude Valley · Subiaco ·\n Unley · Sandy Bay · Kambah · Nightcliff\n\nPass the name exactly as written — the suffix is part of it, so\n`St Kilda (Vic.)`, not `St Kilda`. Any other suburb returns 403 naming that\nlist rather than data. `geocode_address` is billed and also returns 403, so\nproperty tools need one of the sample GNAF ids documented at\nhttps://www.microburbs.com.au/developers/mcp — or a key from\nhttps://www.microburbs.com.au/developers/keys for the whole country.\n", "tools": [ { "description": "Discover which statistical fields exist. Free (0c). Fuzzy, token-based\nmatching covers table topics and clean column labels as well as terse field\ncodes. Common natural-language plurals and Census synonyms are handled, so\nthe verbatim `query=couples with children` discovers the exact 2021 ABS\nfamily-composition count fields rather than substituting the broader\n`census_family_households` metric. Use the returned field code(s) with the\npriced `/area-stats/SAL/{suburb}/values` route. ~17k fields available.\n\n**Free.**", "inputSchema": { "properties": { "limit": { "default": 50, "description": "Max fields to return.", "maximum": 500, "minimum": 1, "type": "integer" }, "query": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Fuzzy search over ABS field names/codes, table topics and column labels (e.g. 'total population', 'couple family children', 'tenure owned outright', or 'median rent'). Omit to list.", "examples": [ "couple family children" ] } }, "required": [], "type": "object" }, "name": "area_stats_fields", "outputSchema": null }, { "description": "List the regions that exist at a level — every suburb, LGA, postcode, etc.\nFree (0c). Use it to discover the exact region names to pass to /values.\n\n**Free.**", "inputSchema": { "properties": { "limit": { "default": 100, "description": "Max regions to return.", "maximum": 1000, "minimum": 1, "type": "integer" }, "query": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by region name (substring, case-insensitive). Omit to list.", "examples": [ "lake" ] }, "region_level": { "description": "Region level: SAL (suburb), SA1, SA2, SA3, SA4, LGA, POA, GCCSA, STE, AUS.", "examples": [ "SAL" ], "type": "string" } }, "required": [ "region_level" ], "type": "object" }, "name": "area_stats_regions", "outputSchema": null }, { "description": "Statistical field values for one region. Pass `fields` — 1 to 5 field\ncodes (from /fields) — to fetch.\n\nAt SAL level, `mode=sa1` switches from the suburb-aggregate value to a\nper-SA1 breakdown — every SA1 that falls inside the suburb, each with its\nown values.\n\n**Price: 3¢ per call.**", "inputSchema": { "properties": { "fields": { "description": "Comma-separated field codes (from /fields). Required, 1-5 per call.", "examples": [ "Median_age_persons" ], "type": "string" }, "mode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "SAL only: 'sa1' returns values for every SA1 in the suburb, instead of the suburb aggregate." }, "region": { "description": "Region name (case-insensitive). For SA1, the SA1 code (SA1s are unnamed).", "examples": [ "Belmont North" ], "type": "string" }, "region_level": { "description": "Region level: SAL (suburb), SA1, SA2, SA3, SA4, LGA, POA, GCCSA, STE, AUS.", "examples": [ "SAL" ], "type": "string" } }, "required": [ "region_level", "region", "fields" ], "type": "object" }, "name": "area_stats_values", "outputSchema": null }, { "description": "Resolve a freeform address string to candidate G-NAF identifiers.\n\nUse this before calling any ``/v1/properties/{gnaf_id}/...`` route —\nthose endpoints require a GNAF in the path. Returns up to 10\ncandidates, ranked by Meilisearch score.\n\n**Price: 1¢ per call.**", "inputSchema": { "properties": { "address": { "description": "Freeform address string.", "examples": [ "27 Arlington Street, Belmont North NSW" ], "minLength": 2, "type": "string" } }, "required": [ "address" ], "type": "object" }, "name": "geocode_address", "outputSchema": null }, { "description": "Autocomplete a partial suburb search string against the ABS SAL\nlist. Use this before calling ``/v1/suburbs/{name}/...`` — those\nendpoints require a canonical SAL name in the path.\n\n**Free.**", "inputSchema": { "properties": { "q": { "description": "Partial suburb name.", "minLength": 1, "type": "string" }, "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Optional state filter (NSW, VIC, ...)." } }, "required": [ "q" ], "type": "object" }, "name": "geocode_suburb", "outputSchema": null }, { "description": "All Australian LGAs. Optional `?state=` filter (e.g. 'NSW').\nReturns `{lga, state}` per row. Flat cost.\n\n**Price: 3¢ per call.**", "inputSchema": { "properties": { "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by state / territory (NSW, VIC, ...). Optional — ~540 LGAs nationally." } }, "required": [], "type": "object" }, "name": "lga_list", "outputSchema": null }, { "description": "LGA's parent chain — state + GCCSA. LGAs aren't strictly nested\nin SA4 so the upward chain stops there.\n\n**Price: 3¢ per call.**", "inputSchema": { "properties": { "lga_name": { "type": "string" } }, "required": [ "lga_name" ], "type": "object" }, "name": "lga_profile", "outputSchema": null }, { "description": "Mesh-block codes inside a suburb. ``sal`` is required for now —\nnationwide / by-LGA / by-SA3 listings will land later when there's\na story for the large payloads (a single LGA can hit a few\nthousand mesh blocks).\n\n**Price: 3¢ per call.**", "inputSchema": { "properties": { "sal": { "description": "Required. Suburb (SAL) to list mesh blocks for.", "type": "string" } }, "required": [ "sal" ], "type": "object" }, "name": "mbs_list", "outputSchema": null }, { "description": "The mesh block's upward ABS chain — SA1, SA2/3/4, GCCSA, state —\nplus the parallel admin chain (LGA, suburb (SAL), postcode).\n\n**Price: 3¢ per call.**", "inputSchema": { "properties": { "mb_code": { "type": "string" } }, "required": [ "mb_code" ], "type": "object" }, "name": "mbs_profile", "outputSchema": null }, { "description": "Return key identity and the authoritative Autumn credit balance.\n\n**Free.**", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "me", "outputSchema": null }, { "description": "Returns immediately if the API is up. No authentication required and not metered — safe to poll from a load balancer, uptime monitor, or status dashboard without affecting your usage.\n\n**Free.**", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "ping", "outputSchema": null }, { "description": "Curated amenities (supermarkets, green spaces, restaurants/cafes)\nwithin `radius_m` of the property, bucketed and nearest-first.\n\n**Price: 10¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" }, "radius_m": { "default": 1000, "description": "Search radius in metres (100–5000, default 1000).", "maximum": 5000, "minimum": 100, "type": "integer" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_amenities_nearby", "outputSchema": null }, { "description": "**Price: 23¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_basics_all", "outputSchema": null }, { "description": "Bathroom count from the latest matching listing.\n\n**Price: 5¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_basics_bath_count", "outputSchema": null }, { "description": "Bedroom count from the latest matching listing.\n\n**Price: 5¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_basics_bed_count", "outputSchema": null }, { "description": "Dwelling type (house, unit, townhouse, ...).\n\n**Price: 5¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_basics_dwelling_type", "outputSchema": null }, { "description": "Parcel land area in square metres from the cadastral feed.\n\n**Price: 3¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_basics_land_area_sqm", "outputSchema": null }, { "description": "Parking-space count from the latest matching listing.\n\n**Price: 5¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_basics_parking_count", "outputSchema": null }, { "description": "**Price: 74¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_comparables_all", "outputSchema": null }, { "description": "Top comparable sales used to triangulate the subject property's value.\n\n**Price: 60¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_comparables_cma_comp_set", "outputSchema": null }, { "description": "Single best comparable from the CMA set (highest dist_score).\n\n**Price: 10¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_comparables_cma_single_comp", "outputSchema": null }, { "description": "Recent comparable sales in a small radius around the subject parcel.\n\n**Price: 4¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_comparables_recent_sales_nearby", "outputSchema": null }, { "description": "Mesh-block polygons within 1 km of the property (GeoJSON), each with\navg annual growth, investor counts, modal street and median sold price.\n\n**Price: 30¢ per call.**", "inputSchema": { "properties": { "geojson": { "default": true, "description": "When false, geometry is dropped — every Feature keeps its per-mesh-block stats but its `geometry` is null. Use it for the stats surface without the polygons (default true — response unchanged).", "type": "boolean" }, "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_context_mesh_blocks", "outputSchema": null }, { "description": "Currently for-sale listings within `radius_km` of the property\n(newest first, max 30) with AVM and rent-yield comparison.\n\n**Price: 20¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" }, "radius_km": { "default": 1, "description": "Search radius in km (0.1-5).", "maximum": 5, "minimum": 0.1, "type": "number" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_context_nearby_for_sale", "outputSchema": null }, { "description": "The subject's bedroom band (bed count from listing history) and the\nsuburb's 10-year price series for that band.\n\n**Price: 15¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_context_street_bedroom_series", "outputSchema": null }, { "description": "**Price: 8¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_development_all", "outputSchema": null }, { "description": "Primary zoning at the property's point — code (R2, B4, ...) when\nthe council ships one, plus the human-readable name and the\nbroader category.\n\n**Price: 3¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_development_zoning_code", "outputSchema": null }, { "description": "Development overlays intersecting the property's parcel.\n\n**Price: 5¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_development_zoning_overlays", "outputSchema": null }, { "description": "**Price: 80¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_history_all", "outputSchema": null }, { "description": "Adjoining-parcel neighbours, enriched with address + property\ntype + bed/bath/garage from the latest matching listing.\n\n**Price: 30¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_neighbours", "outputSchema": null }, { "description": "Resolve a GNAF to its full ABS Statistical Geography Standard\nhierarchy (Mesh Block → SA1 → SA2 → SA3 → SA4 → GCCSA → State) plus\nthe parallel admin chain (LGA, suburb (SAL), postcode). Call this\nonce to get every ABS key the rest of the data layers index on.\n\n**Price: 3¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_profile", "outputSchema": null }, { "description": "All For Rent records, most-recent first.\n\n**Price: 30¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_rent_history", "outputSchema": null }, { "description": "Most-recent For Rent record.\n\n**Price: 10¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_rent_history_latest", "outputSchema": null }, { "description": "Every property-level risk overlay in one call. Flat 30¢ — may grow\nwithout increasing the bundle price as new overlays are added.\n\nWith ``?geojson=true`` each risk that has a polygon overlay also carries\nits 1km-radius-clipped `geojson` FeatureCollection + `geojson_meta`.\n\n**Price: 48¢ per call.**", "inputSchema": { "properties": { "geojson": { "default": false, "description": "When true, add a `geojson` FeatureCollection of the hazard polygons clipped to a 1km-radius circle around the property, plus `geojson_meta` (default false — response unchanged).", "type": "boolean" }, "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_risks_all", "outputSchema": null }, { "description": "Bushfire-prone-area overlays within 1 km. Read `on_property` — a returned\nrow means \"found nearby\", not \"this property is in a bushfire zone\".\n\n**Price: 15¢ per call.**", "inputSchema": { "properties": { "geojson": { "default": false, "description": "When true, add a `geojson` FeatureCollection of the hazard polygons clipped to a 1km-radius circle around the property, plus `geojson_meta` (default false — response unchanged).", "type": "boolean" }, "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_risks_bushfire", "outputSchema": null }, { "description": "Environmental-risk overlay (contamination, salinity, ...).\n\n**Price: 3¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_risks_environment", "outputSchema": null }, { "description": "Coastal / soil erosion overlays within 1 km. Read `on_property` — a\nreturned row means \"found nearby\", not \"this property is eroding\".\n\n**Price: 3¢ per call.**", "inputSchema": { "properties": { "geojson": { "default": false, "description": "When true, add a `geojson` FeatureCollection of the hazard polygons clipped to a 1km-radius circle around the property, plus `geojson_meta` (default false — response unchanged).", "type": "boolean" }, "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_risks_erosion", "outputSchema": null }, { "description": "Modelled flood overlays within 1 km. Read `on_property` — a returned row\nmeans \"found nearby\", not \"this property floods\".\n\n**Price: 10¢ per call.**", "inputSchema": { "properties": { "geojson": { "default": false, "description": "When true, add a `geojson` FeatureCollection of the hazard polygons clipped to a 1km-radius circle around the property, plus `geojson_meta` (default false — response unchanged).", "type": "boolean" }, "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_risks_flood", "outputSchema": null }, { "description": "Heritage-listing overlays within 1 km. Read `on_property` — a returned row\nmeans \"found nearby\", not \"this property is heritage-listed\".\n\n**Price: 3¢ per call.**", "inputSchema": { "properties": { "geojson": { "default": false, "description": "When true, add a `geojson` FeatureCollection of the hazard polygons clipped to a 1km-radius circle around the property, plus `geojson_meta` (default false — response unchanged).", "type": "boolean" }, "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_risks_heritage", "outputSchema": null }, { "description": "Recorded historical flood extents within 1 km. Read `on_property` — a\nreturned row means \"found nearby\", not \"this property flooded\".\n\n**Price: 3¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_risks_historical_flood", "outputSchema": null }, { "description": "High-voltage power-line easement near the parcel.\n\n**Price: 2¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_risks_hv_power_line", "outputSchema": null }, { "description": "Landslide-risk overlays within 1 km. Read `on_property` — a returned row\nmeans \"found nearby\", not \"this property is at landslide risk\".\n\n**Price: 3¢ per call.**", "inputSchema": { "properties": { "geojson": { "default": false, "description": "When true, add a `geojson` FeatureCollection of the hazard polygons clipped to a 1km-radius circle around the property, plus `geojson_meta` (default false — response unchanged).", "type": "boolean" }, "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_risks_landslide", "outputSchema": null }, { "description": "Mobile-coverage black-spot overlay near the parcel.\n\n**Price: 2¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_risks_mobile_black_spot", "outputSchema": null }, { "description": "Public-housing concentration overlay near the parcel.\n\n**Price: 4¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_risks_public_housing", "outputSchema": null }, { "description": "All Sold + For Sale records, most-recent first.\n\n**Price: 30¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_sale_history", "outputSchema": null }, { "description": "Most-recent Sold or For Sale record.\n\n**Price: 10¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_sale_history_latest", "outputSchema": null }, { "description": "**Price: 105¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_schools_all", "outputSchema": null }, { "description": "Schools within ~5km of the property, with rank + student counts.\n\n**Price: 5¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_schools_nearby", "outputSchema": null }, { "description": "Schools within ~5km of the property, ranked by NAPLAN / socioeconomic score.\n\n**Price: 100¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_schools_ranking", "outputSchema": null }, { "description": "The property's own street: current median price, 2/4/8-year price\nforecasts, realised growth, sale/rental turnover, renter share and\nhouses/units on the street — plus the suburb-wide medians to judge it\nagainst and the street's rank on 4-year forecast growth.\n\n404s when the street has no forecast row rather than falling back to\nsuburb-wide figures, which would answer a different question.\n\n**Price: 20¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_street_profile", "outputSchema": null }, { "description": "Latest sold/rent dates and likely-owner-status signal per nearby property.\n\n**Price: 20¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_surroundings_listing_history_signals", "outputSchema": null }, { "description": "Cadastral parcel polygons (GeoJSON) for properties around the subject.\n\n**Price: 25¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_surroundings_parcels", "outputSchema": null }, { "description": "Every GNAF property within 200 m of the subject, with lat/lng and mesh block.\n\n**Price: 15¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_surroundings_properties", "outputSchema": null }, { "description": "Properties around the subject flagged by the public-housing classifier.\n\n**Price: 15¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_surroundings_public_housing", "outputSchema": null }, { "description": "ABS Census 2021 tenure shares for each mesh block around the subject.\n\n**Price: 15¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_surroundings_tenure", "outputSchema": null }, { "description": "Nearest train / tram / bus / ferry stop to the property, per mode,\nwith distance. Widen `radius_m` for the nearest station beyond 1km.\n\n**Price: 5¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" }, "radius_m": { "default": 1000, "description": "Search radius in metres (100–5000, default 1000).", "maximum": 5000, "minimum": 100, "type": "integer" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_transport_nearby", "outputSchema": null }, { "description": "Quoting accuracy of the property's current listing agency —\ncohort, median guide-vs-sold deviation, underquote rate and its 5\nmost-recent tracked sales. Only while the property is listed for\nsale with a tracked agency.\n\n**Price: 50¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_valuation_agent_quoting", "outputSchema": null }, { "description": "**Price: 10¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_valuation_all", "outputSchema": null }, { "description": "Microburbs ML AVM for a single GNAF — point estimate, 80% range,\nplus a confidence score (0–100) derived from the interval width.\n\n**Price: 10¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_valuation_avm", "outputSchema": null }, { "description": "Council land valuations for the parcel — val_2021..val_2025 series\nwith YoY change and $/sqm, plus lot area and zoning description.\n\n**Price: 15¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_valuation_land_values", "outputSchema": null }, { "description": "Negative-gearing stat at the finest available level: per-property\ncashflow scenarios (80% + 105% LVR), falling back to mesh-block then\nsuburb investor-exposure.\n\n**Price: 20¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_valuation_negative_gearing", "outputSchema": null }, { "description": "Modelled property value over time (monthly for the last year,\nannual before that). Houses only — units have no series.\n\n**Price: 30¢ per call.**", "inputSchema": { "properties": { "gnaf_id": { "type": "string" } }, "required": [ "gnaf_id" ], "type": "object" }, "name": "properties_valuation_value_series", "outputSchema": null }, { "description": "All Australian SA4s. Optional `?state=` filter. Returns\n`{sa4, state}` per row. Flat cost.\n\n**Price: 3¢ per call.**", "inputSchema": { "properties": { "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by state / territory. Optional — ~110 SA4s nationally." } }, "required": [], "type": "object" }, "name": "sa4_list", "outputSchema": null }, { "description": "SA4's parent chain — GCCSA + state.\n\n**Price: 3¢ per call.**", "inputSchema": { "properties": { "sa4_name": { "type": "string" } }, "required": [ "sa4_name" ], "type": "object" }, "name": "sa4_profile", "outputSchema": null }, { "description": "Per-crime-type rates (predicted incidents per 100,000 residents\nper year) for the suburb vs national medians.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_crime_breakdown", "outputSchema": null }, { "description": "Total crime rate for every mesh block in the suburb, keyed by ABS\nmesh-block code. Values are predicted incidents per 100,000 residents\nper year (see the payload's `unit` / `definition` keys).", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_crime_by_mesh_block", "outputSchema": null }, { "description": "Suburb and national total-crime medians (predicted incidents per\n100,000 residents per year) with a vs-national verdict.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_crime_summary", "outputSchema": null }, { "description": "Population by age bracket and gender.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_demographics_age", "outputSchema": null }, { "description": "Age + income — bundle", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_demographics_all", "outputSchema": null }, { "description": "The dominant ancestry (and its share) in each of the suburb's\nmicroburbs, plus suburb-level ancestry shares. Pilot coverage.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_demographics_ancestry_map", "outputSchema": null }, { "description": "ABN industry-mix pattern (Diverse / Professional-services-heavy /\nMining-exposed / Low-commercial residential) plus the POI categories\nunusually common in the suburb, with named examples.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_demographics_business", "outputSchema": null }, { "description": "How the suburb ranks inside its SA4 region and against its touching\nneighbours on renter share, welfare dependency, overseas-born parents\nand public housing.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_demographics_cohorts", "outputSchema": null }, { "description": "Suburb cultural-integration composite (0-100) with national\npercentile and tier, plus the per-microburb scores behind it.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_demographics_cultural_integration", "outputSchema": null }, { "description": "Household income breakdown by bracket.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_demographics_income", "outputSchema": null }, { "description": "Median weekly household income for every microburb in the suburb,\nplus the suburb median, national percentile and highest/lowest pockets.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_demographics_income_map", "outputSchema": null }, { "description": "Total suburb population is `current_population` (ABS Census 2021),\nalongside suburb census points (2011/2016/2021) and the LGA's yearly\npopulation series with a 10-year modelled projection tail. Use this route\nfor questions such as \"what is the total population of Clarkson?", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_demographics_population_history", "outputSchema": null }, { "description": "Share of residents attending Catholic / Independent schools —\nsuburb rollup plus the per-microburb shares behind it.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_demographics_private_school", "outputSchema": null }, { "description": "Single-parent-family share for the suburb against the pinned\nnational median, with the associated capital-growth impact.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_demographics_single_parents", "outputSchema": null }, { "description": "Explicit total owner-occupation rate plus owned-outright / mortgaged /\nrenting / public-housing shares — a suburb rollup and the per-microburb\ndownscaled Census shares. `owner_occupied_pct` is the requested headline;\nit equals owned outright plus mortgaged and is null if either is absent.\n`census_year` makes the 2021 reference period explicit.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_demographics_tenure", "outputSchema": null }, { "description": "Welfare-dependency and public-housing shares with the suburb's\nunderclass tier (High / Mid / Low) and the capital-growth impact\nassociated with that tier. Regional and neighbour ranks for the same\ntwo metrics are served by `/demographics/cohorts`.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_demographics_underclass_drag", "outputSchema": null }, { "description": "Labour-force-weighted unemployment rate for the suburb against the\npinned national median, plus the per-microburb shares behind it.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_demographics_unemployment", "outputSchema": null }, { "description": "Projected first-preference shares per party, aggregated across the\nsuburb's microburbs (booth-derived model — not an actual vote).", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_demographics_voting", "outputSchema": null }, { "description": "DA count + DA list — bundle", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_development_all", "outputSchema": null }, { "description": "Recent development applications (up to 100, newest first) with category counts.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_development_applications", "outputSchema": null }, { "description": "Height-of-building and floor-space-ratio control polygons with band summaries.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_development_building_controls", "outputSchema": null }, { "description": "Satellite-detected construction change per mesh block plus a suburb rollup.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_development_construction_activity", "outputSchema": null }, { "description": "Council capex / project-pipeline signals extracted from the LGA's meeting\nminutes — each with stage, dollar value, location and time horizon — plus a\nrollup of the total pipeline in dollars.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_development_council_intelligence", "outputSchema": null }, { "description": "Average annual residential council rate for the suburb's LGA.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_development_council_rates", "outputSchema": null }, { "description": "Count of recent development applications in the suburb.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_development_da_count", "outputSchema": null }, { "description": "Recent development applications lodged in the suburb.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_development_da_list", "outputSchema": null }, { "description": "Dwellings and people per km², plus the land area and counts behind them.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_development_density", "outputSchema": null }, { "description": "Dwelling-mix scalars — apartment share and average lot size.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_development_profile", "outputSchema": null }, { "description": "New dwellings (last 24 months) split units vs houses per mesh block plus a rollup.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_development_supply", "outputSchema": null }, { "description": "Zoning polygons clipped to the suburb, with per-class and parent-group area shares.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_development_zoning_map", "outputSchema": null }, { "description": "All ethnicity — bundle", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_ethnicity_all", "outputSchema": null }, { "description": "Ancestry breakdown from the ABS census.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_ethnicity_ancestry", "outputSchema": null }, { "description": "Country-of-birth breakdown from the ABS census.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_ethnicity_birthplace", "outputSchema": null }, { "description": "How many suburbs match the filter, without paying per row. 5c.\n\nUse this to size a result before searching: /search is capped at 25 rows\nper call, so `total` here tells you how many `offset` pages you need.\n\n**Price: 5¢ per call.**", "inputSchema": { "properties": { "filter": { "description": "Range filter `fieldKey:min..max` (repeatable). Valid fieldKeys: medianHousePrice, grossYield, medianRent, growthForecast4yr, growth10yrCagr, growth3yrCagr, rentGrowth3yr, soldAtLossPct, daysOnMarket, vacancyRate, unitMedianPrice, unitGrossYield, unitMedianRent, unitGrowthForecast4yr, unitGrowth10yrCagr, unitGrowth3yrCagr, unitRentGrowth3yr, unitSoldAtLossPct, unitDaysOnMarket, unitVacancyRate, stockOnMarket, monthsOfInventory, landValuePerSqm, lifestyleScore, safetyScore, hipScore, affluenceScore, renters, distanceCbdKm, publicHousingPct, overseasBornPct, welfareReliancePct, unemploymentPct, singleParentsPct, familyHouseholdsPct, privateSchoolPct, medianIncomeWeekly, communityDepthIndex, premiumRenovationIndex, homeOfficeIndex, tranquilityIndex, innovationEconomyIndex, alternativeLivingIndex, investorConcentration, negativeGearingExposure, mortgageStress. Apartment/unit metrics are the `unit`-prefixed keys (unitMedianPrice, unitGrossYield, unitMedianRent, …); the unprefixed market keys are houses. Unit data only exists where a suburb has a real unit market — coverage runs ~13-54% of suburbs depending on the field, so a unit filter implicitly excludes house-only suburbs.", "items": { "type": "string" }, "type": "array" }, "property_type": { "default": "house", "description": "Legacy flag: 'unit' re-points the ten unprefixed house-market keys (medianHousePrice, grossYield, ...) at their unit column. It does NOT affect the explicit `unit`-prefixed keys, which are always units. Prefer the `unit` keys — they are visible in /fields and can be mixed with house keys in one query.", "type": "string" }, "regions": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated EXACT SA4 region names — call GET /v1/suburbs/finder/regions for the list. A metro name like `Melbourne` alone will NOT match." }, "states": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated states (names or abbreviations), e.g. `VIC`." } }, "required": [], "type": "object" }, "name": "suburbs_finder_count", "outputSchema": null }, { "description": "Every field you can filter / sort on, with its label and unit. 0c.\n\nHouses and units are separate keys: the `unit`-prefixed ones\n(`unitMedianPrice`, `unitGrossYield`, `unitMedianRent`, …) are the\napartment market, the unprefixed market keys are houses, and both can be\nfiltered in the same query. Unit fields are NOT nationally populated — they\nonly exist where a suburb has a unit market (roughly 13-54% of suburbs\ndepending on the field), so a suburb with no unit market simply won't match\na unit filter.\n\n**Free.**", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "suburbs_finder_fields", "outputSchema": null }, { "description": "SA4 regions grouped by state — the values accepted by `states` /\n`regions` on search. 0c.\n\n**Free.**", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "suburbs_finder_regions", "outputSchema": null }, { "description": "Boolean-AND range filter over suburb metrics, single-column sort,\npaginated. Every row carries its `rank` — position in the ranked result\n(1 = top of the sort, out of `meta.total`). When sorting by a median or a\ngrowth, the actual value is also shown for the first 5 and last 5 rows of\nthe page; for any other suburb's number, call the per-field endpoint\n(market/*, forecast/*).\n\n**Paging:** a page is capped at 25 rows. A bigger `limit` is clamped, not\nrejected — so always read `meta`: `total` is the full match count,\n`has_more` says whether rows remain, and `next_offset` is the `offset` to\npass for the next page. A \"top 50\" needs two calls, each charged.\n\nFlat 30c.\n\n**Price: 30¢ per call.**", "inputSchema": { "properties": { "filter": { "description": "Range filter `fieldKey:min..max` (repeatable). Open-ended `min..` / `..max`. Valid fieldKeys: medianHousePrice, grossYield, medianRent, growthForecast4yr, growth10yrCagr, growth3yrCagr, rentGrowth3yr, soldAtLossPct, daysOnMarket, vacancyRate, unitMedianPrice, unitGrossYield, unitMedianRent, unitGrowthForecast4yr, unitGrowth10yrCagr, unitGrowth3yrCagr, unitRentGrowth3yr, unitSoldAtLossPct, unitDaysOnMarket, unitVacancyRate, stockOnMarket, monthsOfInventory, landValuePerSqm, lifestyleScore, safetyScore, hipScore, affluenceScore, renters, distanceCbdKm, publicHousingPct, overseasBornPct, welfareReliancePct, unemploymentPct, singleParentsPct, familyHouseholdsPct, privateSchoolPct, medianIncomeWeekly, communityDepthIndex, premiumRenovationIndex, homeOfficeIndex, tranquilityIndex, innovationEconomyIndex, alternativeLivingIndex, investorConcentration, negativeGearingExposure, mortgageStress. Apartment/unit metrics are the `unit`-prefixed keys (unitMedianPrice, unitGrossYield, unitMedianRent, …); the unprefixed market keys are houses. Unit data only exists where a suburb has a real unit market — coverage runs ~13-54% of suburbs depending on the field, so a unit filter implicitly excludes house-only suburbs.", "items": { "type": "string" }, "type": "array" }, "limit": { "default": 25, "description": "Page size. Hard cap 25 — a larger value is clamped, NOT an error, and `meta.requested_limit` says so. For more than 25 results, page with `offset`.", "type": "integer" }, "offset": { "default": 0, "description": "Row offset — page through results more than 25 deep. `meta.next_offset` gives the value for the next page.", "type": "integer" }, "property_type": { "default": "house", "description": "Legacy flag: 'unit' re-points the ten unprefixed house-market keys (medianHousePrice, grossYield, ...) at their unit column. It does NOT affect the explicit `unit`-prefixed keys, which are always units. Prefer the `unit` keys — they are visible in /fields and can be mixed with house keys in one query.", "type": "string" }, "regions": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated EXACT SA4 region names — call GET /v1/suburbs/finder/regions for the list. e.g. `Melbourne - Inner`, `Melbourne - West`. A metro name like `Melbourne` alone will NOT match; an unknown value 422s with the closest real names." }, "sort": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Sort field. Prefix '-' for descending (highest first), e.g. `-growth10yrCagr`. Must be one of the field keys (see enum). Works on its own — you do NOT need a filter on the field you sort by; to rank without a threshold, pass `sort` and no filter. Only when `sort` is omitted does it default to the first filter field, desc. Apartment/unit metrics are the `unit`-prefixed keys (unitMedianPrice, unitGrossYield, unitMedianRent, …); the unprefixed market keys are houses. Unit data only exists where a suburb has a real unit market — coverage runs ~13-54% of suburbs depending on the field, so a unit filter implicitly excludes house-only suburbs.", "enum": [ "medianHousePrice", "grossYield", "medianRent", "growthForecast4yr", "growth10yrCagr", "growth3yrCagr", "rentGrowth3yr", "soldAtLossPct", "daysOnMarket", "vacancyRate", "unitMedianPrice", "unitGrossYield", "unitMedianRent", "unitGrowthForecast4yr", "unitGrowth10yrCagr", "unitGrowth3yrCagr", "unitRentGrowth3yr", "unitSoldAtLossPct", "unitDaysOnMarket", "unitVacancyRate", "stockOnMarket", "monthsOfInventory", "landValuePerSqm", "lifestyleScore", "safetyScore", "hipScore", "affluenceScore", "renters", "distanceCbdKm", "publicHousingPct", "overseasBornPct", "welfareReliancePct", "unemploymentPct", "singleParentsPct", "familyHouseholdsPct", "privateSchoolPct", "medianIncomeWeekly", "communityDepthIndex", "premiumRenovationIndex", "homeOfficeIndex", "tranquilityIndex", "innovationEconomyIndex", "alternativeLivingIndex", "investorConcentration", "negativeGearingExposure", "mortgageStress", "-medianHousePrice", "-grossYield", "-medianRent", "-growthForecast4yr", "-growth10yrCagr", "-growth3yrCagr", "-rentGrowth3yr", "-soldAtLossPct", "-daysOnMarket", "-vacancyRate", "-unitMedianPrice", "-unitGrossYield", "-unitMedianRent", "-unitGrowthForecast4yr", "-unitGrowth10yrCagr", "-unitGrowth3yrCagr", "-unitRentGrowth3yr", "-unitSoldAtLossPct", "-unitDaysOnMarket", "-unitVacancyRate", "-stockOnMarket", "-monthsOfInventory", "-landValuePerSqm", "-lifestyleScore", "-safetyScore", "-hipScore", "-affluenceScore", "-renters", "-distanceCbdKm", "-publicHousingPct", "-overseasBornPct", "-welfareReliancePct", "-unemploymentPct", "-singleParentsPct", "-familyHouseholdsPct", "-privateSchoolPct", "-medianIncomeWeekly", "-communityDepthIndex", "-premiumRenovationIndex", "-homeOfficeIndex", "-tranquilityIndex", "-innovationEconomyIndex", "-alternativeLivingIndex", "-investorConcentration", "-negativeGearingExposure", "-mortgageStress" ] }, "states": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated states — abbreviation or full name, e.g. `VIC` or `Victoria`. Anything else is a 422 listing the valid values (a city name is not a state — use `regions`)." } }, "required": [], "type": "object" }, "name": "suburbs_finder_search", "outputSchema": null }, { "description": "1-year sale-price growth forecast (low / most-likely / high).", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_forecast_sale", "outputSchema": null }, { "description": "Nearest neighbouring suburbs with distance in km, closest first.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_hero_neighbours", "outputSchema": null }, { "description": "12-month sale-price growth by property type (house / unit).", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_hero_price_growth_12mo", "outputSchema": null }, { "description": "State, SA3/SA4, postcode, population, dwellings and centroid for the suburb.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_hero_summary", "outputSchema": null }, { "description": "Straight-line distance to the nearest city and to the nearest capital, in km.\n\nBoth, because they answer different questions and are often nowhere near\neach other: Belmont North is 14 km from Newcastle and 108 km from Sydney.\n`nearest_city` is usually what a buyer means by \"how far is town\".\n\nThe top-level `city` / `distance_km` fields are DEPRECATED. They still\ndescribe the CAPITAL, unchanged, so existing callers are unaffected —\nread `capital_city` or `nearest_city` instead.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_lifestyle_cbd", "outputSchema": null }, { "description": "Nearest beach and hospital with straight-line distances (null = none within ~50 km).", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_lifestyle_landmarks", "outputSchema": null }, { "description": "Livability scores (0–100) per dimension, aggregated from mesh-block scores, with the SA4 benchmark.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_lifestyle_livability", "outputSchema": null }, { "description": "All seven livability dimensions — affluence, lifestyle, hip,\nconvenience, family, safety, tranquility — scored 0-100 for every\nmicroburb (mesh block) in the suburb, each with its human band. Averaging\na dimension across the microburbs reproduces the suburb figure at\n``/lifestyle/livability``. Values only; polygons come from\n``/shapes/mesh-blocks``.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_lifestyle_livability_map", "outputSchema": null }, { "description": "One plain-English sentence per livability dimension for the suburb.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_lifestyle_narrative", "outputSchema": null }, { "description": "What the absence of petrol stations, fast food and bottle shops near sold properties was worth.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_lifestyle_poi_impacts", "outputSchema": null }, { "description": "Every named venue / amenity in the suburb as GeoJSON Point features, plus a\nper-category count.\n\nEach point carries `name`, a broad `category` (Restaurant / Cafe, Shopping,\nHealth, Entertainment, Sport & Fitness, Education, …) and a finer `subtype`\n(e.g. `pub`, `bar`, `cafe`, `restaurant`, `gym`, `supermarket`, `school`,\n`pharmacy`). This is the endpoint for \"what / how many <venue type> are in\nthis suburb\" and \"name the pubs / cafes / gyms in X\" — filter or count the\nfeatures on `subtype`, and read real venue names from `name`. The top-level\n`categories` array gives the broad-category counts without walking the list.\n\nUnpaged by default. Big suburbs are big — Sydney is ~3.7 MB of features — so\npass `limit`/`offset` (or narrow with `category`) when you don't need them\nall. `count` and `categories` always describe the whole suburb, so paging\nnever hides the totals. Flat price per call regardless of page size.", "inputSchema": { "properties": { "category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Only this display category (e.g. `Shopping`). Case-insensitive." }, "limit": { "anyOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ], "description": "Features to return (default: all)." }, "offset": { "default": 0, "description": "Feature offset — page with `limit`.", "minimum": 0, "type": "integer" }, "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_lifestyle_pois", "outputSchema": null }, { "description": "POI category breakdown, terrain scalars, nearest train/shop and beach/hospital flags.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_lifestyle_summary", "outputSchema": null }, { "description": "List Australian suburbs (SALs). Always returns `{suburb, state}`\nper row so SAL-name collisions across states are unambiguous.\n\nWith no filter you get the first 1000 suburbs alphabetically\n(browser-renderable preview). Pass any of the filters to narrow:\nstate / lga / sa4 / sa3 / postcode / q (name search). Filters\ncombine (AND). Flat cost regardless of how many rows come back.\n\n**Name search (`q`) is typo-tolerant.** It tries an exact match, then\nsubstring, then a fuzzy near-miss, and returns `match`\n(`exact` / `contains` / `fuzzy`) and `score` on every row so you can\nsee which happened.\n\n**Always tell the user which suburb you resolved to, and its state,\nbefore quoting numbers for it.** A fuzzy match is a suggestion, not a\nconfirmation — `rokeby` is one letter from Kokeby in Western Australia\nand Rokeby exists in both Tasmania and Victoria. If more than one\ncandidate is plausible, ask rather than pick.\n\nWhen `q` is combined with `state`, the state is a **preference, not a\nfilter**: in-state candidates rank first, but a suburb of that name in\nanother state is still returned rather than hidden, so a near-miss\nbecomes \"Seaview is in Victoria, not Tasmania\" instead of \"no data\".\nEvery other filter stays a strict AND.\n\n**Free.**", "inputSchema": { "properties": { "lga": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by Local Government Area name." }, "postcode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by 4-digit postcode (POA)." }, "q": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Suburb-name search. Matches exactly, then by substring, then by fuzzy near-miss so a typo still resolves ('devenport' -> Devonport). Each row comes back with `match` and `score` saying how it was found." }, "sa3": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by SA3 name." }, "sa4": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by SA4 name." }, "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by state / territory (e.g. NSW, VIC, 'New South Wales')." } }, "required": [], "type": "object" }, "name": "suburbs_list", "outputSchema": null }, { "description": "Current for-sale listings in the suburb, with address, price, beds/baths\nand coordinates per listing.\n\n`total` is the full number on the market (computed before `limit`), so a\ncount is accurate even when the rows are capped. Raise `limit` for more\nlistings; set `verbose=true` for the agent's full description text.", "inputSchema": { "properties": { "limit": { "default": 30, "description": "Max listings to return (default 30, max 200). `total` always reports the full match count.", "type": "integer" }, "suburb_name": { "type": "string" }, "verbose": { "default": false, "description": "Include the agent's full ad-copy in `attributes.description`. Off by default — it averages ~1.5 KB per listing.", "type": "boolean" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_listings_for_sale", "outputSchema": null }, { "description": "Microburbs affordability index for the suburb's postcode area.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_affordability", "outputSchema": null }, { "description": "The eight headline market indicators in one call: median sale price and\nmedian rent (each with its full history), 5-year price growth, gross yield,\ndays on market, and transaction volume.\n\n**This is a core set, not every market endpoint.** The `Suburb - Market`\nfamily has 29 endpoints; this bundles 8 of them, priced sum-of-parts. The\npath is `/market/all` for historical reasons — it is not \"all\". Supply,\nvacancy, growth drivers, affordability, mortgage stress, investor\nconcentration, land values, repeat sales, bedroom stats and the per-mesh-block\nmaps are separate calls, so you only pay for what you ask for.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_all", "outputSchema": null }, { "description": "House/unit price, sales volume, median bath/car/land, and stock mix per bedroom count.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_bedroom_stats", "outputSchema": null }, { "description": "Estimated build-year profile — suburb aggregate + per-mesh-block medians.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_built_year", "outputSchema": null }, { "description": "Same-SA3 comparable-suburb candidates (canonical SAL names).", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_comparable_suburbs", "outputSchema": null }, { "description": "Median days on market for current listings.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_days_on_market", "outputSchema": null }, { "description": "Median days on market across the suburb's greater region (GCCSA) — compare with /market/days-on-market.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_days_on_market_benchmark", "outputSchema": null }, { "description": "Per-indicator capital-growth attribution for the suburb.\n\nEach row pairs the suburb's own value for an indicator with the\ncapital-growth differential our matched studies attribute to it, in\npercentage points. Covers supply & demand pressure, market signals,\nenvironmental risks and demographic composition.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_growth_drivers", "outputSchema": null }, { "description": "Rental (investor) share per mesh block, with a suburb-wide rollup.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_investor_concentration", "outputSchema": null }, { "description": "Suburb land-value medians ($/sqm, lot size, land share of price) + per-mesh-block $/sqm.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_land_values", "outputSchema": null }, { "description": "Median house price for every microburb (mesh block) in the suburb, with\nits modal street name, plus the dearest and cheapest pockets. Values only —\nthe matching polygons come from ``/shapes/mesh-blocks``.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_median_price_map", "outputSchema": null }, { "description": "Latest median weekly rent for the suburb.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_median_rent", "outputSchema": null }, { "description": "Full median weekly-rent observation history for the suburb, including\n2024 and 2025 where the suburb has coverage. Older observations are\ngenerally month-end and recent observations can be weekly; this is not a\nuniformly quarterly series. Values are advertised median AUD per week.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_median_rent_series", "outputSchema": null }, { "description": "Latest median sale price for the suburb.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_median_sale_price", "outputSchema": null }, { "description": "Full median sale-price observation history for the suburb. Well-covered\nsuburbs extend back 20+ years; coverage and observation frequency vary.\nThis is the raw historical series needed to calculate a stated 20-year\nreturn, not a precomputed \"consistent growth\" score or a forecast.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_median_sale_price_series", "outputSchema": null }, { "description": "How many months the current for-sale stock would take to clear at the\nsuburb's current sales rate. Under 2 months is a seller's market.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_months_of_supply", "outputSchema": null }, { "description": "Mortgage-stress score (0-100) for the suburb, with per-mesh-block breakdown.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_mortgage_stress", "outputSchema": null }, { "description": "Past compound sale-price growth over 1 / 3 / 5 / 10 years, by property\ntype (decimal). The 3y / 10y figures are the same ones the Suburb Finder\nranks on.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_price_growth", "outputSchema": null }, { "description": "5-year compound sale-price growth (decimal).", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_price_growth_5y", "outputSchema": null }, { "description": "The last four weekly smart-median observations — house price, unit price\nand house rent — each with its week-on-week percentage change.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_recent_price_movement", "outputSchema": null }, { "description": "Median advertised weekly house rent for every microburb (mesh block) in\nthe suburb, with its modal street name, plus the dearest and cheapest\npockets. Values only — the matching polygons come from\n``/shapes/mesh-blocks``.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_rent_map", "outputSchema": null }, { "description": "Realised resale growth — summary + individual buy/sell pairs (max 500).", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_repeat_sales", "outputSchema": null }, { "description": "Properties currently listed for sale in the suburb, split house/unit,\nwith the suburb's rank among its peers.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_stock_on_market", "outputSchema": null }, { "description": "Median estimated annual strata levy for the suburb.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_strata_levies", "outputSchema": null }, { "description": "For-sale listings per 100 dwellings (90 days) — per mesh block + suburb rollup.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_supply_pressure", "outputSchema": null }, { "description": "Recent sale-transaction count for the suburb.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_transaction_volume", "outputSchema": null }, { "description": "Calibrated rental-vacancy rate for each mesh block in the suburb.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_vacancy_map", "outputSchema": null }, { "description": "Suburb-wide rental vacancy rate by property type, as a decimal fraction\n(0.00842 = 0.84%). Use `/market/vacancy-map` for the per-mesh-block surface.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_vacancy_rate", "outputSchema": null }, { "description": "Full rental-vacancy history by property type, decimal fractions.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_vacancy_rate_series", "outputSchema": null }, { "description": "Gross rental yield for every microburb (mesh block) in the suburb —\nweekly rent x 52 over median price — with both inputs returned so the\nnumber is checkable, plus the best- and worst-yielding pockets. Values\nonly; polygons come from ``/shapes/mesh-blocks``.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_yield_map", "outputSchema": null }, { "description": "Gross rental yield = median rent annualised / median sale price.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_yield_pct", "outputSchema": null }, { "description": "Full gross-rental-yield history by property type, decimal fractions.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_market_yield_pct_series", "outputSchema": null }, { "description": "The suburb's upward ABS admin chain — LGA, SA2/3/4, GCCSA,\nstate, postcode. Use ``/v1/suburbs/list`` to discover canonical\nSAL names (and filter by state / LGA / SA4 / postcode).", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_profile", "outputSchema": null }, { "description": "Bushfire + flood — bundle", "inputSchema": { "properties": { "geojson": { "default": false, "description": "When true, each sub-risk additionally carries a `geojson` FeatureCollection clipped to the suburb boundary — one call returns coverage plus every risk shape (default false — response unchanged).", "type": "boolean" }, "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_risks_all", "outputSchema": null }, { "description": "Share of the suburb AREA covered by bushfire-prone designation.\n\nArea, not properties — and the two differ a lot. Belmont North is 45.72%\nby area but 23.62% by property count, because designated land is not\nevenly built on. If you want \"what share of homes here are affected\",\nwhich is the figure our own reports headline, use\n`GET /v1/suburbs/{suburb_name}/risks/property-hazard-counts` — it returns\na count and pct per hazard against the suburb's actual dwellings.", "inputSchema": { "properties": { "geojson": { "default": false, "description": "When true, add a `geojson` FeatureCollection of the bushfire polygons clipped to the suburb boundary (default false — response unchanged).", "type": "boolean" }, "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_risks_bushfire", "outputSchema": null }, { "description": "Matched-study capital-growth impact (%/yr) for bushfire, flood, contamination, mine subsidence, aircraft noise and surface acid sulfate, scaled by the share of properties affected.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_risks_capital_growth_impact", "outputSchema": null }, { "description": "Counts of contamination points, heritage items and erosion-prone polygons inside the suburb.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_risks_counts", "outputSchema": null }, { "description": "Landslide / storm-tide coverage, EPA notices, landlord-insurance medians and crime benchmark, with per-microburb detail.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_risks_extras", "outputSchema": null }, { "description": "Share of the suburb AREA covered by modelled flood overlays.\n\nArea, not properties. For the share of DWELLINGS affected — the figure our\nown reports headline — use\n`GET /v1/suburbs/{suburb_name}/risks/property-hazard-counts`.\n\nTo answer **where** the flood zone is, pass `geojson=true`. The response\nthen includes the actual modelled flood polygons clipped to the suburb\nboundary, suitable for a street map, plus truncation/simplification\nmetadata. Do not infer street location from `coverage_pct` alone.", "inputSchema": { "properties": { "geojson": { "default": false, "description": "When true, add a `geojson` FeatureCollection of the flood polygons clipped to the suburb boundary (default false — response unchanged).", "type": "boolean" }, "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_risks_flood", "outputSchema": null }, { "description": "Share of the suburb's properties inside a heritage polygon.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_risks_heritage_share", "outputSchema": null }, { "description": "Whether high-voltage transmission lines cross the suburb, how many, and the highest voltage class (overhead lines only).", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_risks_hv_power_lines", "outputSchema": null }, { "description": "Counts and shares of the suburb's properties flagged bushfire / flood / mine-subsidence / contamination / aircraft-noise / acid-sulfate.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_risks_property_hazard_counts", "outputSchema": null }, { "description": "Median / 90th-percentile property gradient and share of steep (>10°) properties.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_risks_slope", "outputSchema": null }, { "description": "Properties sold in the suburb over the last 3 years, with beds/baths/land\nsize, sale price and date, and coordinates.\n\nPaginated: `total` reports how many sales are available for the suburb\n(counted before `limit`/`offset`), so you can page through the full feed.\nFlat price per call regardless of page size.", "inputSchema": { "properties": { "limit": { "default": 20, "description": "Sales to return (default 20, max 200).", "type": "integer" }, "offset": { "default": 0, "description": "Row offset — page through the feed with `limit`.", "type": "integer" }, "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_sales_recent", "outputSchema": null }, { "description": "Number of sales and median sold price in the suburb over the last 3 years.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_sales_summary", "outputSchema": null }, { "description": "All schools — bundle", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_schools_all", "outputSchema": null }, { "description": "Public-school catchment polygons covering the suburb.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_schools_catchment", "outputSchema": null }, { "description": "Schools serving / near the suburb, with rank + attendance data.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_schools_nearby", "outputSchema": null }, { "description": "Simplified SAL boundary polygon (GeoJSON Feature) plus centroid.", "inputSchema": { "properties": { "geojson": { "default": true, "description": "When false, geometry is dropped — every Feature keeps its `properties` but its `geometry` is null. Use it to fetch the counts and per-feature attributes without the coordinates (default true — response unchanged).", "type": "boolean" }, "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_shapes_boundary", "outputSchema": null }, { "description": "Busy-road line segments clipped to the suburb — the report's road-noise exposure proxy.", "inputSchema": { "properties": { "geojson": { "default": true, "description": "When false, geometry is dropped — every Feature keeps its `properties` but its `geometry` is null. Use it to fetch the counts and per-feature attributes without the coordinates (default true — response unchanged).", "type": "boolean" }, "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_shapes_busy_roads", "outputSchema": null }, { "description": "Registered easement geometries intersecting the suburb (GeoJSON FeatureCollection).", "inputSchema": { "properties": { "geojson": { "default": true, "description": "When false, geometry is dropped — every Feature keeps its `properties` but its `geometry` is null. Use it to fetch the counts and per-feature attributes without the coordinates (default true — response unchanged).", "type": "boolean" }, "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_shapes_easements", "outputSchema": null }, { "description": "Hazard polygons for one layer, clipped to the suburb boundary (empty collection = hazard not present).", "inputSchema": { "properties": { "geojson": { "default": true, "description": "When false, geometry is dropped — every Feature keeps its `properties` but its `geometry` is null. Use it to fetch the counts and per-feature attributes without the coordinates (default true — response unchanged).", "type": "boolean" }, "layer": { "description": "Hazard layer to return.", "enum": [ "bushfire", "flood", "heritage", "erosion", "landslide", "acid-sulfate" ], "examples": [ "flood" ], "type": "string" }, "suburb_name": { "type": "string" } }, "required": [ "suburb_name", "layer" ], "type": "object" }, "name": "suburbs_shapes_hazards", "outputSchema": null }, { "description": "ABS 2021 mesh-block polygons covering the suburb (GeoJSON FeatureCollection, MB code per feature).", "inputSchema": { "properties": { "geojson": { "default": true, "description": "When false, geometry is dropped — every Feature keeps its `properties` but its `geometry` is null. Use it to fetch the counts and per-feature attributes without the coordinates (default true — response unchanged).", "type": "boolean" }, "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_shapes_mesh_blocks", "outputSchema": null }, { "description": "Neighbouring suburbs as a GeoJSON FeatureCollection — each with its boundary polygon and distance in km.", "inputSchema": { "properties": { "geojson": { "default": true, "description": "When false, geometry is dropped — every Feature keeps its `properties` but its `geometry` is null. Use it to fetch the counts and per-feature attributes without the coordinates (default true — response unchanged).", "type": "boolean" }, "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_shapes_neighbours", "outputSchema": null }, { "description": "Precomputed noise colour regions clipped to the suburb, plus cell-centre heat points.", "inputSchema": { "properties": { "geojson": { "default": true, "description": "When false, geometry is dropped — every Feature keeps its `properties` but its `geometry` is null. Use it to fetch the counts and per-feature attributes without the coordinates (default true — response unchanged).", "type": "boolean" }, "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_shapes_noise_heatmap", "outputSchema": null }, { "description": "SA1 polygons in the suburb with their 2021 census public-housing share (only SA1s above 0%).", "inputSchema": { "properties": { "geojson": { "default": true, "description": "When false, geometry is dropped — every Feature keeps its `properties` but its `geometry` is null. Use it to fetch the counts and per-feature attributes without the coordinates (default true — response unchanged).", "type": "boolean" }, "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_shapes_public_housing_sa1", "outputSchema": null }, { "description": "Top-10 suburbs ranked closest by Microburbs' similarity model.", "inputSchema": { "properties": { "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_similar", "outputSchema": null }, { "description": "2/4/8-year price forecasts for every street in the suburb, anchored to the real sold median.\n\nUnpaged by default. Large suburbs are large — Point Cook has 943 streets\n(~1.4 MB) — so pass `limit`/`offset` when you don't need the lot. `total`\nreports how many exist. Flat price per call regardless of page size.", "inputSchema": { "properties": { "limit": { "anyOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ], "description": "Streets to return (default: all)." }, "offset": { "default": 0, "description": "Street offset — page with `limit`.", "minimum": 0, "type": "integer" }, "suburb_name": { "type": "string" } }, "required": [ "suburb_name" ], "type": "object" }, "name": "suburbs_street_forecasts", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:8f8e2dfaa483f68a391370d25501cdb67e52746d97c9226d4d4bbb017249d918 | sha256sum