{"openapi":"3.0.3","info":{"title":"Insitive Property Intelligence API","description":"\nThe Insitive API is a B2B property intelligence service for the Australian market.\nCustomers query cadastre, planning, envelope, locality, and dossier data through\na single authenticated endpoint and pay per request / per quota tier.\n\n## Base URL\n\n`https://api.insitive.com.au`\n\n## Authentication\n\nEvery request must include a Bearer token issued by Insitive:\n\n```http\nAuthorization: Bearer ins_live_xxxxxxxxxxxxxxxxxxxxxxxx\n```\n\n- `ins_live_*` — production keys, billable, subject to per-key rate limit + monthly quota.\n- `ins_test_*` — sandbox keys, free, served from a frozen demo dataset (sandbox host).\n\nKeys are issued from your account in the Insitive admin console. The secret value\nis shown **once** at creation time; we store only a SHA-256 hash. If you lose a\nkey, rotate it — we cannot recover the original value.\n\n## Scopes\n\nEach key is granted one or more scopes. A request to a scoped route without the\nrequired scope returns `403 Forbidden` with `error: \"Missing scope: <scope>\"`.\n\n| Scope | Grants access to |\n| --- | --- |\n| `cadastre.read` | Lot boundaries, parcel attributes, PFI lookups |\n| `planning.read` | Zone resolution, overlays, schedule references |\n| `envelope.read` | Building envelope, setbacks, cut/fill, contours |\n| `locality.read` | Schools, amenities, suburb trends, demographics, address |\n| `dossier.read` | Property sales, DA records, building footprints, suitability |\n| `catalog.read` | Home design + builder catalogue |\n| `ai-vision.read` | AI-generated vision data (floor plans, façades) |\n\n## Rate Limits\n\nPer-key token bucket. Default `60 requests/minute`; enterprise tiers configurable.\nResponse headers:\n\n- `X-RateLimit-Limit` — bucket size\n- `X-RateLimit-Remaining` — tokens left\n- `X-RateLimit-Reset` — Unix epoch seconds when the bucket refills\n- `Retry-After` — seconds to wait (only on 429)\n\n## Usage Metering\n\nMonthly request volume per key is recorded in Redis (`api_key:usage:<id>:<YYYY-MM>`)\nand surfaced in the admin console for invoicing. Hard quota enforcement\n(automatic 429 when a cap is exceeded) is on the productisation roadmap;\ntoday, exceeding a contracted volume triggers a manual billing review rather\nthan a blocking 429. Per-key rate limiting (above) is enforced in real time.\n\n## Data Formats\n\n- Coordinates: WGS84 (`lat`, `lng` decimal degrees)\n- Areas: square metres (`m²`)\n- Lengths: metres (`m`)\n- Currency: AUD\n- Timestamps: ISO 8601 UTC\n\n## Source Attribution\n\nEndpoints that return third-party open data (cadastre/parcel, G-NAF\naddress, planning zones & overlays incl. risk, building footprints,\nsuburb trends, demographics) carry the required source credit in **two**\nplaces so you can pick it up from whichever is convenient:\n\n- a JSON `attribution` field (plus a `license` field naming the licence,\n  e.g. `Creative Commons Attribution 4.0 International (CC BY 4.0)`); and\n- the `X-Insitive-Attribution` and `X-Insitive-License` response headers.\n\nMost datasets are CC BY 4.0; building footprints are ODbL (Microsoft\nBuilding Footprints) supplemented by VicMap (CC BY 4.0); G-NAF carries\nthe Geoscape Australia credit. **If you display or redistribute this\ndata you must reproduce the supplied attribution** to meet the upstream\nlicence terms. The credit varies by Australian state for cadastre and\nplanning data.\n\n## Versioning\n\nThe current major version is `v1`. Breaking changes ship as `v2` with a\nminimum 12-month deprecation window announced via `Sunset` and `Deprecation`\nresponse headers and a public changelog at `/changelog`.\n\n## Sandbox\n\nA free sandbox running the same routes against a frozen demo dataset is\navailable at `https://sandbox.api.insitive.com.au`. Use any `ins_test_*` key.\n\n## Status\n\nReal-time availability and incident history: `https://status.insitive.com.au`.\n              ","version":"1.0.0","contact":{"name":"Insitive Developer Support","email":"developers@insitive.com.au","url":"https://insitive.com.au/developers"},"license":{"name":"Insitive API Terms of Service","url":"https://insitive.com.au/legal/api-terms"}},"servers":[{"url":"https://api.insitive.com.au","description":"Production"},{"url":"https://sandbox.api.insitive.com.au","description":"Sandbox (frozen demo dataset; planned)"}],"externalDocs":{"description":"Insitive Developer Portal","url":"https://insitive.com.au/developers"},"tags":[{"name":"Cadastre","description":"Lot boundaries, parcel attributes, PFI lookups across VIC/NSW/QLD/WA/TAS/ACT. Scope: `cadastre.read`."},{"name":"Planning","description":"Planning zone resolution, overlays, schedule references, WMS/WFS proxies. Scope: `planning.read`."},{"name":"Envelope","description":"Building envelope calculations, setbacks, cut/fill, contour data. Scope: `envelope.read`."},{"name":"Siting","description":"Lot-home siting: building-envelope fit, footprint clash/breach checks, and async DEM-derived earthworks (cut/fill volumes + slope-adjusted setbacks). Scopes: `siting.read`, `siting.fit`, `siting.earthworks`."},{"name":"Locality","description":"Nearest schools, kindergarten/childcare, supermarket, transport stops; suburb-level amenity proximity. Scope: `locality.read`."},{"name":"Suburb Trends","description":"Quarterly median prices for 768+ VIC suburbs with AI-generated market summary. Scope: `locality.read`."},{"name":"Demographics","description":"ABS-sourced demographic context for a coordinate. Scope: `locality.read`."},{"name":"Property Sales","description":"Sale history for a lot (price, date, settlement). Scope: `dossier.read`."},{"name":"Development Applications","description":"DA records within a radius, status + decision metadata. Scope: `dossier.read`."},{"name":"SPEAR","description":"Victorian SPEAR/PPAR planning applications touching a lot — lookups by point, bbox, or PFI. Scope: `spear.read`."},{"name":"Risk","description":"Unified flood / bushfire (BAL) / contamination overlay query for a coordinate, wrapping the planning-overlay adapters that back the map UI. Scope: `risk.read`."},{"name":"Soil","description":"Indicative site soil & footing-risk band for a coordinate from the CSIRO/TERN Soil and Landscape Grid of Australia (~90 m) — clay content + soil depth mapped to a screening band loosely aligned to AS2870 site classes. Scope: `soil.read`."},{"name":"Building Footprints","description":"Microsoft Building Footprints intersecting a lot. Scope: `dossier.read`."},{"name":"Suitability","description":"Lot-home suitability scoring. Scope: `dossier.read`."},{"name":"Catalog","description":"Home design + builder catalogue (read-only). Scope: `catalog.read`."},{"name":"Address","description":"Address autocomplete and validation (Google Places proxy). Scope: `locality.read`."},{"name":"Climate Zone","description":"NCC climate zone for a coordinate. Scope: `envelope.read`."},{"name":"Valuation","description":"Run Direct Comparison, Summation, Income Capitalisation, DCF, Hypothetical Development and Profits Method calculators server-side. Scope: `valuation.compute`."},{"name":"Image & Object Access","description":"Stream raw image bytes (floor plans, façades, canonical home images) and gis-mirror snapshot artefacts by object storage key, for whitelisted prefixes. Scope: `image-access.read`."},{"name":"Basemap","description":"Self-hosted Australia vector basemap (OpenStreetMap/ODbL) — MapLibre style JSON plus Range-capable PMTiles/glyph/sprite delivery from object storage. Scope: `basemap.read`."},{"name":"Elevation","description":"Raw elevation / terrain statistics for a lot or bbox from the contour mirror (VIC today; other states return available:false). Scope: `elevation.read`."},{"name":"Roads","description":"Nearest road centreline(s) to a point and fronting road(s) for a parcel, from the VicMap Transport road network (CC BY 4.0). Scope: `roads.read`."},{"name":"UGB","description":"Victorian Urban Growth Boundary (UGB) / Growth Areas Infrastructure Contribution (GAIC) polygons clipped to a bbox, from the VicMap Planning mirror (CC BY 4.0). Scope: `ugb.read`."},{"name":"Easements","description":"VicMap property easement features by bbox or parcel PFI, from the Victorian Open Data Platform (CC BY 4.0). Scope: `easement.read`."},{"name":"Health","description":"Service health, status, observability metrics. No auth required."}],"paths":{"/__staging_auth":{"post":{"operationId":"post__staging_auth","responses":{"200":{}}}},"/api/health":{"get":{"operationId":"getApiHealth","tags":["Health"],"summary":"System health check","security":[],"responses":{"200":{}}}},"/api/planning-zones/health":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},"timestamp":{"type":"string"},"responseTime":{"type":"number"},"coverage":{"type":"object","required":["statesSupported","statesCount","totalStates","coveragePercentage"],"properties":{"statesSupported":{"type":"array","items":{"type":"string"}},"statesCount":{"type":"number"},"totalStates":{"type":"number"},"coveragePercentage":{"type":"number"}}},"adapters":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["status","serviceType","provider","message"],"properties":{"status":{"anyOf":[{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},{"const":"unsupported","type":"string"}]},"serviceType":{"type":"string"},"provider":{"type":"string"},"successRate":{"nullable":true,"anyOf":[{"type":"number"},{"type":"null"}]},"errorCount":{"type":"number"},"message":{"type":"string"}}}}},"configuration":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"}}},"summary":{"type":"object","required":["healthyAdapters","degradedAdapters","unhealthyAdapters","unsupportedStates"],"properties":{"healthyAdapters":{"type":"number"},"degradedAdapters":{"type":"number"},"unhealthyAdapters":{"type":"number"},"unsupportedStates":{"type":"number"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["status","timestamp","responseTime","coverage","adapters","configuration","summary"]}},"multipart/form-data":{"schema":{"type":"object","properties":{"status":{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},"timestamp":{"type":"string"},"responseTime":{"type":"number"},"coverage":{"type":"object","required":["statesSupported","statesCount","totalStates","coveragePercentage"],"properties":{"statesSupported":{"type":"array","items":{"type":"string"}},"statesCount":{"type":"number"},"totalStates":{"type":"number"},"coveragePercentage":{"type":"number"}}},"adapters":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["status","serviceType","provider","message"],"properties":{"status":{"anyOf":[{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},{"const":"unsupported","type":"string"}]},"serviceType":{"type":"string"},"provider":{"type":"string"},"successRate":{"nullable":true,"anyOf":[{"type":"number"},{"type":"null"}]},"errorCount":{"type":"number"},"message":{"type":"string"}}}}},"configuration":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"}}},"summary":{"type":"object","required":["healthyAdapters","degradedAdapters","unhealthyAdapters","unsupportedStates"],"properties":{"healthyAdapters":{"type":"number"},"degradedAdapters":{"type":"number"},"unhealthyAdapters":{"type":"number"},"unsupportedStates":{"type":"number"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["status","timestamp","responseTime","coverage","adapters","configuration","summary"]}},"text/plain":{"schema":{"type":"object","properties":{"status":{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},"timestamp":{"type":"string"},"responseTime":{"type":"number"},"coverage":{"type":"object","required":["statesSupported","statesCount","totalStates","coveragePercentage"],"properties":{"statesSupported":{"type":"array","items":{"type":"string"}},"statesCount":{"type":"number"},"totalStates":{"type":"number"},"coveragePercentage":{"type":"number"}}},"adapters":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["status","serviceType","provider","message"],"properties":{"status":{"anyOf":[{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},{"const":"unsupported","type":"string"}]},"serviceType":{"type":"string"},"provider":{"type":"string"},"successRate":{"nullable":true,"anyOf":[{"type":"number"},{"type":"null"}]},"errorCount":{"type":"number"},"message":{"type":"string"}}}}},"configuration":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"}}},"summary":{"type":"object","required":["healthyAdapters","degradedAdapters","unhealthyAdapters","unsupportedStates"],"properties":{"healthyAdapters":{"type":"number"},"degradedAdapters":{"type":"number"},"unhealthyAdapters":{"type":"number"},"unsupportedStates":{"type":"number"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["status","timestamp","responseTime","coverage","adapters","configuration","summary"]}}}},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"unhealthy","type":"string"},"timestamp":{"type":"string"},"error":{"type":"string"},"message":{"type":"string"}},"required":["status","timestamp","error","message"]}},"multipart/form-data":{"schema":{"type":"object","properties":{"status":{"const":"unhealthy","type":"string"},"timestamp":{"type":"string"},"error":{"type":"string"},"message":{"type":"string"}},"required":["status","timestamp","error","message"]}},"text/plain":{"schema":{"type":"object","properties":{"status":{"const":"unhealthy","type":"string"},"timestamp":{"type":"string"},"error":{"type":"string"},"message":{"type":"string"}},"required":["status","timestamp","error","message"]}}}},"503":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},"timestamp":{"type":"string"},"responseTime":{"type":"number"},"coverage":{"type":"object","required":["statesSupported","statesCount","totalStates","coveragePercentage"],"properties":{"statesSupported":{"type":"array","items":{"type":"string"}},"statesCount":{"type":"number"},"totalStates":{"type":"number"},"coveragePercentage":{"type":"number"}}},"adapters":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["status","serviceType","provider","message"],"properties":{"status":{"anyOf":[{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},{"const":"unsupported","type":"string"}]},"serviceType":{"type":"string"},"provider":{"type":"string"},"successRate":{"nullable":true,"anyOf":[{"type":"number"},{"type":"null"}]},"errorCount":{"type":"number"},"message":{"type":"string"}}}}},"configuration":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"}}},"summary":{"type":"object","required":["healthyAdapters","degradedAdapters","unhealthyAdapters","unsupportedStates"],"properties":{"healthyAdapters":{"type":"number"},"degradedAdapters":{"type":"number"},"unhealthyAdapters":{"type":"number"},"unsupportedStates":{"type":"number"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["status","timestamp","responseTime","coverage","adapters","configuration","summary"]}},"multipart/form-data":{"schema":{"type":"object","properties":{"status":{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},"timestamp":{"type":"string"},"responseTime":{"type":"number"},"coverage":{"type":"object","required":["statesSupported","statesCount","totalStates","coveragePercentage"],"properties":{"statesSupported":{"type":"array","items":{"type":"string"}},"statesCount":{"type":"number"},"totalStates":{"type":"number"},"coveragePercentage":{"type":"number"}}},"adapters":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["status","serviceType","provider","message"],"properties":{"status":{"anyOf":[{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},{"const":"unsupported","type":"string"}]},"serviceType":{"type":"string"},"provider":{"type":"string"},"successRate":{"nullable":true,"anyOf":[{"type":"number"},{"type":"null"}]},"errorCount":{"type":"number"},"message":{"type":"string"}}}}},"configuration":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"}}},"summary":{"type":"object","required":["healthyAdapters","degradedAdapters","unhealthyAdapters","unsupportedStates"],"properties":{"healthyAdapters":{"type":"number"},"degradedAdapters":{"type":"number"},"unhealthyAdapters":{"type":"number"},"unsupportedStates":{"type":"number"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["status","timestamp","responseTime","coverage","adapters","configuration","summary"]}},"text/plain":{"schema":{"type":"object","properties":{"status":{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},"timestamp":{"type":"string"},"responseTime":{"type":"number"},"coverage":{"type":"object","required":["statesSupported","statesCount","totalStates","coveragePercentage"],"properties":{"statesSupported":{"type":"array","items":{"type":"string"}},"statesCount":{"type":"number"},"totalStates":{"type":"number"},"coveragePercentage":{"type":"number"}}},"adapters":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["status","serviceType","provider","message"],"properties":{"status":{"anyOf":[{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},{"const":"unsupported","type":"string"}]},"serviceType":{"type":"string"},"provider":{"type":"string"},"successRate":{"nullable":true,"anyOf":[{"type":"number"},{"type":"null"}]},"errorCount":{"type":"number"},"message":{"type":"string"}}}}},"configuration":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"}}},"summary":{"type":"object","required":["healthyAdapters","degradedAdapters","unhealthyAdapters","unsupportedStates"],"properties":{"healthyAdapters":{"type":"number"},"degradedAdapters":{"type":"number"},"unhealthyAdapters":{"type":"number"},"unsupportedStates":{"type":"number"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["status","timestamp","responseTime","coverage","adapters","configuration","summary"]}}}}},"operationId":"getApiPlanning-zonesHealth","tags":["Planning Zones"],"summary":"System health check with adapter statuses","description":"Performs a comprehensive health check of all planning zone adapters across Australian states. Returns overall system status, individual adapter health metrics, success rates, coverage statistics, and configuration details."}},"/api/planning-zones/metrics":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"responseTime":{"type":"number"},"adapters":{"type":"object","patternProperties":{"^(.*)$":{}}},"system":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout","performanceTracking"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"},"performanceTracking":{"type":"boolean"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"responseTime":{"type":"number"},"adapters":{"type":"object","patternProperties":{"^(.*)$":{}}},"system":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout","performanceTracking"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"},"performanceTracking":{"type":"boolean"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"responseTime":{"type":"number"},"adapters":{"type":"object","patternProperties":{"^(.*)$":{}}},"system":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout","performanceTracking"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"},"performanceTracking":{"type":"boolean"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"timestamp":{"type":"string"},"message":{"type":"string"}},"required":["error","timestamp","message"]}},"multipart/form-data":{"schema":{"type":"object","properties":{"error":{"type":"string"},"timestamp":{"type":"string"},"message":{"type":"string"}},"required":["error","timestamp","message"]}},"text/plain":{"schema":{"type":"object","properties":{"error":{"type":"string"},"timestamp":{"type":"string"},"message":{"type":"string"}},"required":["error","timestamp","message"]}}}}},"operationId":"getApiPlanning-zonesMetrics","tags":["Planning Zones"],"summary":"Detailed performance metrics and statistics","description":"Returns detailed performance metrics for the planning zone orchestrator including request counts, success rates, error counts, and response times for each state adapter. Also includes system configuration details."}},"/api/planning-zones/coverage":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"coverage":{"type":"object","required":["supported","unsupported","totalStates","supportedCount","coveragePercentage"],"properties":{"supported":{"type":"array","items":{"type":"string"}},"unsupported":{"type":"array","items":{"type":"string"}},"totalStates":{"type":"number"},"supportedCount":{"type":"number"},"coveragePercentage":{"type":"number"}}},"details":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["supported","protocol","provider"],"properties":{"supported":{"type":"boolean"},"protocol":{"type":"string"},"provider":{"type":"string"}}}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["timestamp","coverage","details"]}},"multipart/form-data":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"coverage":{"type":"object","required":["supported","unsupported","totalStates","supportedCount","coveragePercentage"],"properties":{"supported":{"type":"array","items":{"type":"string"}},"unsupported":{"type":"array","items":{"type":"string"}},"totalStates":{"type":"number"},"supportedCount":{"type":"number"},"coveragePercentage":{"type":"number"}}},"details":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["supported","protocol","provider"],"properties":{"supported":{"type":"boolean"},"protocol":{"type":"string"},"provider":{"type":"string"}}}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["timestamp","coverage","details"]}},"text/plain":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"coverage":{"type":"object","required":["supported","unsupported","totalStates","supportedCount","coveragePercentage"],"properties":{"supported":{"type":"array","items":{"type":"string"}},"unsupported":{"type":"array","items":{"type":"string"}},"totalStates":{"type":"number"},"supportedCount":{"type":"number"},"coveragePercentage":{"type":"number"}}},"details":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["supported","protocol","provider"],"properties":{"supported":{"type":"boolean"},"protocol":{"type":"string"},"provider":{"type":"string"}}}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["timestamp","coverage","details"]}}}},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"error":{"type":"string"}},"required":["timestamp","error"]}},"multipart/form-data":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"error":{"type":"string"}},"required":["timestamp","error"]}},"text/plain":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"error":{"type":"string"}},"required":["timestamp","error"]}}}}},"operationId":"getApiPlanning-zonesCoverage","tags":["Planning Zones"],"summary":"State coverage information and adapter availability","description":"Provides information about planning zone adapter coverage across all Australian states and territories. Lists supported and unsupported states, coverage percentage, and protocol details for each adapter (WFS, ArcGIS REST API)."}},"/api/cadastre/parse-lot":{"get":{"operationId":"getApiCadastreParse-lot","responses":{"200":{}}}},"/api/cadastre/lot-detail/{propertyId}":{"get":{"operationId":"getApiCadastreLot-detailByPropertyId","parameters":[{"schema":{"type":"string"},"in":"path","name":"propertyId","required":true}],"responses":{"200":{}}}},"/api/cadastre/lookup":{"get":{"parameters":[{"description":"Latitude in WGS84 (required unless pfi is supplied)","schema":{"anyOf":[{"format":"numeric","default":0,"type":"string"},{"description":"Latitude in WGS84 (required unless pfi is supplied)","type":"number"}]},"in":"query","name":"lat","required":false},{"description":"Longitude in WGS84 (required unless pfi is supplied)","schema":{"anyOf":[{"format":"numeric","default":0,"type":"string"},{"description":"Longitude in WGS84 (required unless pfi is supplied)","type":"number"}]},"in":"query","name":"lng","required":false},{"description":"State code (VIC, NSW, QLD, …). Defaults to VIC.","schema":{"type":"string"},"in":"query","name":"state","required":false},{"description":"Parcel feature identifier; bypasses lat/lng lookup","schema":{"type":"string"},"in":"query","name":"pfi","required":false}],"responses":{"200":{"description":"Cadastral parcel result with source attribution. `data` holds the parcel geometry/properties (or the address+parcel envelope) with stable `parcel_*` identifiers; `attribution`/`license` credit the state cadastre (and G-NAF for address lookups).","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{"anyOf":[{"additionalProperties":true,"description":"Cadastral parcel payload: GeoJSON `geometry` + `properties` with stable `parcel_*` identifiers.","type":"object","properties":{"geometry":{"additionalProperties":true,"description":"GeoJSON parcel geometry (WGS84).","type":"object","properties":{"type":{"type":"string"},"coordinates":{}}},"properties":{"additionalProperties":true,"description":"Parcel attributes. `parcel_pfi`/`parcel_spi`/`parcel_lot_number`/`parcel_plan_number` are the stable cadastral identifiers; `ezi_address` is the G-NAF-matched address for by-address lookups. State adapters may add further raw upstream attributes.","type":"object","properties":{"parcel_pfi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_spi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_lot_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_plan_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"ezi_address":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"null"}]},"error":{"type":"string"},"hint":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{"anyOf":[{"additionalProperties":true,"description":"Cadastral parcel payload: GeoJSON `geometry` + `properties` with stable `parcel_*` identifiers.","type":"object","properties":{"geometry":{"additionalProperties":true,"description":"GeoJSON parcel geometry (WGS84).","type":"object","properties":{"type":{"type":"string"},"coordinates":{}}},"properties":{"additionalProperties":true,"description":"Parcel attributes. `parcel_pfi`/`parcel_spi`/`parcel_lot_number`/`parcel_plan_number` are the stable cadastral identifiers; `ezi_address` is the G-NAF-matched address for by-address lookups. State adapters may add further raw upstream attributes.","type":"object","properties":{"parcel_pfi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_spi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_lot_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_plan_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"ezi_address":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"null"}]},"error":{"type":"string"},"hint":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{"anyOf":[{"additionalProperties":true,"description":"Cadastral parcel payload: GeoJSON `geometry` + `properties` with stable `parcel_*` identifiers.","type":"object","properties":{"geometry":{"additionalProperties":true,"description":"GeoJSON parcel geometry (WGS84).","type":"object","properties":{"type":{"type":"string"},"coordinates":{}}},"properties":{"additionalProperties":true,"description":"Parcel attributes. `parcel_pfi`/`parcel_spi`/`parcel_lot_number`/`parcel_plan_number` are the stable cadastral identifiers; `ezi_address` is the G-NAF-matched address for by-address lookups. State adapters may add further raw upstream attributes.","type":"object","properties":{"parcel_pfi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_spi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_lot_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_plan_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"ezi_address":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"null"}]},"error":{"type":"string"},"hint":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiCadastreLookup","summary":"Resolve the cadastral parcel at a point (or by PFI).","description":"Mirror-first cadastre lookup with live fallback. Requires `cadastre.read` scope."}},"/api/cadastre/by-address":{"get":{"parameters":[{"description":"Address string (free text). Matched structurally against the G-NAF mirror: a strict exact pass first (returns similarity 1), then a tolerant pass that accepts loose/abbreviated forms (no postcode, trailing \", Australia\", abbreviated street type, lowercase, spelled-out state, stray commas). Only parcel-grade geocodes are returned (coarse street/locality/interpolated centroids are dropped). Never substitutes a different street.","schema":{"type":"string"},"in":"query","name":"q","required":true},{"description":"Optional state code to restrict the G-NAF search (VIC, NSW, ...). Defaults to the resolved address state.","schema":{"type":"string"},"in":"query","name":"state","required":false},{"description":"Optional 4-digit postcode to disambiguate a postcode-less query and bound the search. Defaults to a postcode parsed from q.","schema":{"type":"string"},"in":"query","name":"postcode","required":false},{"description":"Optional \"lat,lng\" point (WGS84, within Australia) to disambiguate an otherwise-ambiguous address that has no postcode or suburb; the nearest matching parcel wins.","schema":{"type":"string"},"in":"query","name":"near","required":false},{"description":"Optional per-request statement-timeout budget (milliseconds) for each G-NAF resolution stage. Lower it to fail fast and retry rather than wait out a cold lookup; raise it to outwait a genuinely slow cold lookup on a large, rarely-queried postcode instead of receiving a 503. Clamped server-side to a safe range (default 250–12000 ms); garbage or non-positive values are ignored and the server default budget applies.","schema":{"type":"string"},"in":"query","name":"timeout_ms","required":false}],"responses":{"200":{"description":"Cadastral parcel result with source attribution. `data` holds the parcel geometry/properties (or the address+parcel envelope) with stable `parcel_*` identifiers; `attribution`/`license` credit the state cadastre (and G-NAF for address lookups).","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{"anyOf":[{"additionalProperties":true,"description":"Cadastral parcel payload: GeoJSON `geometry` + `properties` with stable `parcel_*` identifiers.","type":"object","properties":{"geometry":{"additionalProperties":true,"description":"GeoJSON parcel geometry (WGS84).","type":"object","properties":{"type":{"type":"string"},"coordinates":{}}},"properties":{"additionalProperties":true,"description":"Parcel attributes. `parcel_pfi`/`parcel_spi`/`parcel_lot_number`/`parcel_plan_number` are the stable cadastral identifiers; `ezi_address` is the G-NAF-matched address for by-address lookups. State adapters may add further raw upstream attributes.","type":"object","properties":{"parcel_pfi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_spi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_lot_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_plan_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"ezi_address":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"null"}]},"error":{"type":"string"},"hint":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{"anyOf":[{"additionalProperties":true,"description":"Cadastral parcel payload: GeoJSON `geometry` + `properties` with stable `parcel_*` identifiers.","type":"object","properties":{"geometry":{"additionalProperties":true,"description":"GeoJSON parcel geometry (WGS84).","type":"object","properties":{"type":{"type":"string"},"coordinates":{}}},"properties":{"additionalProperties":true,"description":"Parcel attributes. `parcel_pfi`/`parcel_spi`/`parcel_lot_number`/`parcel_plan_number` are the stable cadastral identifiers; `ezi_address` is the G-NAF-matched address for by-address lookups. State adapters may add further raw upstream attributes.","type":"object","properties":{"parcel_pfi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_spi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_lot_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_plan_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"ezi_address":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"null"}]},"error":{"type":"string"},"hint":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{"anyOf":[{"additionalProperties":true,"description":"Cadastral parcel payload: GeoJSON `geometry` + `properties` with stable `parcel_*` identifiers.","type":"object","properties":{"geometry":{"additionalProperties":true,"description":"GeoJSON parcel geometry (WGS84).","type":"object","properties":{"type":{"type":"string"},"coordinates":{}}},"properties":{"additionalProperties":true,"description":"Parcel attributes. `parcel_pfi`/`parcel_spi`/`parcel_lot_number`/`parcel_plan_number` are the stable cadastral identifiers; `ezi_address` is the G-NAF-matched address for by-address lookups. State adapters may add further raw upstream attributes.","type":"object","properties":{"parcel_pfi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_spi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_lot_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_plan_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"ezi_address":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"null"}]},"error":{"type":"string"},"hint":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiCadastreBy-address","summary":"Resolve the cadastral parcel by address string (G-NAF → mirror).","description":"Address-first cadastre lookup. Two-tier G-NAF resolution: (1) a STRICT exact match (same leading house number, street-name tokens in order, recognised street-type alias, exact postcode) returning `similarity: 1` and additively surfacing the G-NAF `confidence` + `geocodeType` (the geocode grade) when the matched row carries them — an additive SUPERSET of the original envelope (fields appear only when non-null), never a breaking removal for existing B2B integrators; (2) a TOLERANT fallback for loose/abbreviated input (missing postcode, trailing \", Australia\", abbreviated/expanded street type, lowercase, spelled-out state, extra commas/whitespace) that still anti-substitutes — it never resolves a different street — and reports the real `similarity`, the G-NAF `confidence`, and the `geocodeType` (G-NAF geocode grade). Only parcel-grade geocodes are accepted on the tolerant path: coarse street-locality (`STL`), locality-centroid (`LOC`) and gap/interpolated (`GG`) points are dropped, so a tolerant hit always points at a real parcel/building/frontage, never a vague centroid. Optional `state` / `postcode` / `near=lat,lng` narrow and disambiguate postcode-less queries; results rank by `confidence` then `similarity` (and proximity to `near`), and a 404 is returned only when nothing clears the match floor. The resolved property centroid is then matched point-in-polygon against the cadastre (PostGIS → R2 mirror → live). Far higher hit-rate than `/api/cadastre/lookup?lat&lng` for address-driven flows because G-NAF centroids sit inside the parcel polygon by construction. An optional `timeout_ms` lets the caller tune the per-stage G-NAF statement-timeout budget (clamped server-side, default 250–12000 ms): lower it to fail fast and retry rather than wait out a cold lookup, or raise it to outwait a genuinely slow cold lookup on a large, rarely-queried postcode instead of receiving a 503. Requires `cadastre.read` scope."}},"/api/cadastre/bbox":{"get":{"parameters":[{"description":"west,south,east,north — max span 0.1° per axis","schema":{"type":"string"},"in":"query","name":"bbox","required":true},{"description":"State code (VIC, NSW, QLD, …). Defaults to VIC.","schema":{"type":"string"},"in":"query","name":"state","required":false}],"responses":{"200":{"description":"Cadastral parcels intersecting a bounding box as a GeoJSON `FeatureCollection` (capped at 1000 features) with source attribution. Served from the R2 mirror when available, otherwise the API runs the live state cadastre server-side and returns those parcels — callers never need to race the WFS proxy themselves.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"description":"Always 'FeatureCollection' on a hit or empty miss.","type":"string"},"features":{"type":"array","items":{"additionalProperties":true,"description":"GeoJSON parcel feature (WGS84, unclipped).","type":"object","properties":{"type":{"type":"string"},"geometry":{},"properties":{}}}},"source":{"type":"string"},"hint":{"type":"string"},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"type":{"description":"Always 'FeatureCollection' on a hit or empty miss.","type":"string"},"features":{"type":"array","items":{"additionalProperties":true,"description":"GeoJSON parcel feature (WGS84, unclipped).","type":"object","properties":{"type":{"type":"string"},"geometry":{},"properties":{}}}},"source":{"type":"string"},"hint":{"type":"string"},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"type":{"description":"Always 'FeatureCollection' on a hit or empty miss.","type":"string"},"features":{"type":"array","items":{"additionalProperties":true,"description":"GeoJSON parcel feature (WGS84, unclipped).","type":"object","properties":{"type":{"type":"string"},"geometry":{},"properties":{}}}},"source":{"type":"string"},"hint":{"type":"string"},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiCadastreBbox","summary":"Return cadastral parcels intersecting a bounding box.","description":"Returns parcels intersecting a bounding box, capped at 1000 features. Served from the R2 mirror when warm; on a mirror miss the API resolves the window against the live state cadastre server-side and returns those parcels (you never race /api/wfs-proxy yourself). Every returned parcel genuinely intersects the requested bbox (exact geometry test — parcels whose bounding box merely overlaps the window but whose geometry lies entirely outside it are excluded), so the result is safe to use directly for tiling. Parcels that partially overlap the window are returned WHOLE (unclipped) — standard for parcel tiling — so a returned geometry may extend beyond the requested bbox. A clean live window with no parcels is a 200 empty collection; a genuine upstream outage is a 5xx. Requires `cadastre.read` scope."}},"/api/wms-proxy/gis-health":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"refresh","required":false}],"operationId":"getApiWms-proxyGis-health","tags":["WMS Proxy"],"summary":"GIS Service Health Check","description":"Check health status of all Australian state GIS services. Add ?refresh=true to run a fresh check.","responses":{"200":{}}}},"/api/wms-proxy/":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"base_url","required":true}],"operationId":"getApiWms-proxy","tags":["WMS Proxy"],"summary":"Proxy WMS requests","description":"Secure WMS proxy with SSRF protection. Proxies tile requests to approved Australian government WMS services.","responses":{"200":{}}}},"/api/wfs-proxy/":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"base_url","required":true}],"operationId":"getApiWfs-proxy","tags":["WFS Proxy"],"summary":"Proxy WFS requests","description":"Secure WFS proxy with SSRF protection. Proxies requests to approved Australian government WFS services.","responses":{"200":{}}}},"/api/contours/vector":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"state","required":true},{"schema":{"type":"string"},"in":"query","name":"bbox","required":true},{"schema":{"type":"string"},"in":"query","name":"zoom","required":false}],"operationId":"getApiContoursVector","responses":{"200":{}}}},"/api/contours/terrain-stats":{"post":{"parameters":[],"operationId":"postApiContoursTerrain-stats","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["state","polygon"],"properties":{"state":{"type":"string"},"polygon":{}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["state","polygon"],"properties":{"state":{"type":"string"},"polygon":{}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["state","polygon"],"properties":{"state":{"type":"string"},"polygon":{}},"additionalProperties":false}}}},"responses":{"200":{}}}},"/api/ugb/vector":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"state","required":false},{"schema":{"type":"string"},"in":"query","name":"bbox","required":true}],"operationId":"getApiUgbVector","tags":["UGB"],"summary":"Urban Growth Boundary / GAIC polygons for a bbox","description":"Returns Victorian Urban Growth Boundary (UGB) and Growth Areas Infrastructure Contribution (GAIC) contribution-area polygons clipped to the requested `bbox` (west,south,east,north), sourced from the R2 GIS mirror. UGB is published in Victoria only; other states return an empty FeatureCollection (HTTP 200). The `source` field + `X-Mirror-Source` header carry provenance (`mirror:vic/ugb@{snapshotId}` or `live:vic/ugb` when no snapshot is published). `attribution`/`license` credit the VicMap (CC BY 4.0) source. Scope: `ugb.read` (keyed callers only; the first-party map mount stays open).","responses":{"200":{}}}},"/api/ugb/at-point":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"state","required":false},{"schema":{"type":"string"},"in":"query","name":"lat","required":false},{"schema":{"type":"string"},"in":"query","name":"lng","required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"error":{"type":"string"},"data":{"additionalProperties":true,"type":"object","properties":{"state":{"type":"string"},"available":{"type":"boolean"},"reason":{"type":"string"},"query":{"additionalProperties":true,"type":"object","required":["lat","lng"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"}}},"insideUGB":{"type":"boolean"},"gaicApplies":{"type":"boolean"},"ugbLga":{"type":"string"},"zoneDescription":{"type":"string"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"error":{"type":"string"},"data":{"additionalProperties":true,"type":"object","properties":{"state":{"type":"string"},"available":{"type":"boolean"},"reason":{"type":"string"},"query":{"additionalProperties":true,"type":"object","required":["lat","lng"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"}}},"insideUGB":{"type":"boolean"},"gaicApplies":{"type":"boolean"},"ugbLga":{"type":"string"},"zoneDescription":{"type":"string"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"error":{"type":"string"},"data":{"additionalProperties":true,"type":"object","properties":{"state":{"type":"string"},"available":{"type":"boolean"},"reason":{"type":"string"},"query":{"additionalProperties":true,"type":"object","required":["lat","lng"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"}}},"insideUGB":{"type":"boolean"},"gaicApplies":{"type":"boolean"},"ugbLga":{"type":"string"},"zoneDescription":{"type":"string"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiUgbAt-point","tags":["UGB"],"summary":"Urban Growth Boundary / GAIC verdict for a point","description":"Returns the Victorian Urban Growth Boundary (UGB) inside/outside verdict for a single point (`lat`, `lng`), wrapping the same logic used by the interactive site map. The `data` payload carries `insideUGB`, `gaicApplies` (whether a Growth Areas Infrastructure Contribution may apply), `ugbLga`, and `zoneDescription`. UGB is published in Victoria only; other states return an authoritative no-coverage answer (`data.available:false`, HTTP 200). The `source` field + `X-Mirror-Source` header carry provenance (`mirror:vic/ugb@{snapshotId}` or `live:vic/ugb`). `attribution`/`license` credit the VicMap (CC BY 4.0) source. Scope: `ugb.read`."}},"/api/easements/by-bbox":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"state","required":false},{"schema":{"type":"string"},"in":"query","name":"bbox","required":false},{"schema":{"type":"string"},"in":"query","name":"limit","required":false}],"responses":{"200":{"description":"Easement result with source attribution. `data.easements[]` holds the matched easement features (GeoJSON geometry + upstream attributes); `data.available` is false for states with no loaded easement source; `attribution`/`license` credit the VicMap Property (CC BY 4.0) source.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiEasementsBy-bbox","tags":["Easements"],"summary":"Easements intersecting a bbox","description":"Returns VicMap property easement features intersecting the requested `bbox` (\"west,south,east,north\", EPSG:4326), up to `limit` results (default 200, max 1000). The bbox span is capped at 0.5 degrees per axis. Each easement carries a GeoJSON geometry and the upstream attributes. Non-VIC states return `200 { success:false, data.available:false }`; a clean empty bbox returns `200 { success:false }`; an upstream WFS outage returns `500`. Scope: `easement.read`."}},"/api/easements/by-parcel":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"state","required":false},{"schema":{"type":"string"},"in":"query","name":"pfi","required":false},{"schema":{"type":"string"},"in":"query","name":"limit","required":false}],"responses":{"200":{"description":"Easement result with source attribution. `data.easements[]` holds the matched easement features (GeoJSON geometry + upstream attributes); `data.available` is false for states with no loaded easement source; `attribution`/`license` credit the VicMap Property (CC BY 4.0) source.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiEasementsBy-parcel","tags":["Easements"],"summary":"Easements for a parcel","description":"Returns the VicMap property easement feature(s) attached to the cadastral parcel identified by `pfi`, up to `limit` results (default 200, max 1000). A parcel with no easements (or not found upstream) returns `200 { success:false }`; non-VIC states return `200 { success:false, data.available:false }`; an upstream WFS outage returns `500`. Scope: `easement.read`."}},"/api/locality/proximity":{"get":{"parameters":[{"description":"Street address to resolve to a coordinate via the G-NAF-first resolver (alternative to lat/lng). Must include a leading house number, a recognised street type and a 4-digit postcode, e.g. \"19 Kerferd Rd, Albert Park VIC 3206\".","schema":{"type":"string"},"in":"query","name":"address","required":false},{"description":"Latitude coordinate (WGS84). Required unless `address` is supplied.","schema":{"type":"string"},"in":"query","name":"lat","required":false},{"description":"Longitude coordinate (WGS84). Required unless `address` is supplied.","schema":{"type":"string"},"in":"query","name":"lng","required":false},{"description":"Optional state hint (e.g. VIC) used to disambiguate the address lookup","schema":{"type":"string"},"in":"query","name":"state","required":false}],"responses":{"200":{"description":"Nearest-amenity proximity result with source attribution. `data` holds the nearest school/childcare/supermarket/transport block(s); `attribution`/`license` credit the underlying open data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiLocalityProximity","tags":["Locality"],"summary":"Resolve nearest amenities at a coordinate or address","description":"Resolves the nearest school, kindergarten/childcare, supermarket and transport stops for a location. The location can be supplied either as a `lat`/`lng` coordinate (WGS84) or as a street `address`, which is geocoded through the same G-NAF-first resolver `/api/cadastre/by-address` uses (an explicit lat/lng wins if both are given). When an `address` is resolved, the response `data` echoes a `resolvedAddress` `{ formatted, lat, lng, source }`. An unresolvable `address` returns 404 `ADDRESS_NOT_FOUND` (or 503 `ADDRESS_INDEX_UNAVAILABLE` if the address index is down; 400 `ADDRESS_TOO_SHORT` for a sub-3-character query). Scope: `locality.read`."}},"/api/amenities/nearby":{"get":{"parameters":[{"description":"Latitude coordinate","schema":{"type":"string"},"in":"query","name":"lat","required":true},{"description":"Longitude coordinate","schema":{"type":"string"},"in":"query","name":"lng","required":true},{"description":"Search radius in meters (default 1000, max 5000)","schema":{"type":"string"},"in":"query","name":"radius","required":false},{"description":"Comma-separated list of categories","schema":{"type":"string"},"in":"query","name":"categories","required":false}],"operationId":"getApiAmenitiesNearby","tags":["Amenities"],"summary":"Find nearby amenities and points of interest","description":"Searches for nearby amenities using OpenStreetMap data. Supports filtering by category and radius.","responses":{"200":{}}}},"/api/demographics/":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"lat","required":true},{"schema":{"type":"string"},"in":"query","name":"lng","required":true}],"responses":{"200":{"description":"ABS Census 2021 demographics result with source attribution. `attribution`/`license` credit the underlying ABS open data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"error":{"type":"string"},"notice":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"error":{"type":"string"},"notice":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"error":{"type":"string"},"notice":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiDemographics","tags":["Demographics"],"summary":"Resolve a point to ABS Census 2021 demographics","description":"Returns the headline ABS Census 2021 General Community Profile (population, age, income, household composition, dwelling tenure, country of birth) for the SA2 the point lies inside, plus the resolved SA1 and SSC codes for further drill-down."}},"/api/demographics/suburb/{suburb}":{"get":{"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":100},"in":"path","name":"suburb","required":true},{"schema":{"type":"string","minLength":2,"maxLength":4},"in":"query","name":"state","required":false}],"responses":{"200":{"description":"ABS Census 2021 demographics result with source attribution. `attribution`/`license` credit the underlying ABS open data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"error":{"type":"string"},"notice":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"error":{"type":"string"},"notice":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"error":{"type":"string"},"notice":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiDemographicsSuburbBySuburb","tags":["Demographics"],"summary":"Resolve a suburb (SSC) to ABS Census 2021 demographics","description":"Looks up the State Suburb (SSC) by name (optionally filtered by state) and returns the headline ABS Census 2021 General Community Profile for that SSC."}},"/api/suburb-trends/search":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"q","required":false},{"schema":{"type":"string"},"in":"query","name":"limit","required":false}],"responses":{"200":{"description":"Suburb median-price trends result with source attribution. `data` holds the price/history/summary payload; `attribution`/`license` credit the Victorian Government median-price data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiSuburb-trendsSearch","tags":["Suburb Trends"],"summary":"Search suburbs with trend data","description":"Typeahead search over suburbs that have median price/rent data. Returns `{ success, data: [{ suburb, state }] }`. Queries shorter than 2 characters return 200 `{ success: false }`. Scope: `locality.suburb`."}},"/api/suburb-trends/{suburb}":{"get":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"suburb","required":true},{"schema":{"type":"string"},"in":"query","name":"state","required":false},{"schema":{"type":"string"},"in":"query","name":"fresh","required":false}],"responses":{"200":{"description":"Suburb median-price trends result with source attribution. `data` holds the price/history/summary payload; `attribution`/`license` credit the Victorian Government median-price data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiSuburb-trendsBySuburb","tags":["Suburb Trends"],"summary":"Median sale-price trends for a suburb","description":"Latest median sale prices by property type (house/unit/land) plus quarterly/annual change and history, with an additive weekly-rent block when rental data exists. `?state=` defaults to VIC; `?fresh=1` bypasses the cache. An authoritative miss (no price data for the suburb/state) returns 404 `{ success: false }`. Scope: `locality.suburb`."}},"/api/suburb-trends/{suburb}/history":{"get":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"suburb","required":true},{"schema":{"type":"string"},"in":"query","name":"state","required":false},{"schema":{"type":"string"},"in":"query","name":"type","required":false}],"responses":{"200":{"description":"Suburb median-price trends result with source attribution. `data` holds the price/history/summary payload; `attribution`/`license` credit the Victorian Government median-price data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiSuburb-trendsBySuburbHistory","tags":["Suburb Trends"],"summary":"Median sale-price history for a suburb","description":"Full quarterly median sale-price time series for a suburb and property type (`?type=house|unit|land`, default house). `?state=` defaults to VIC. Scope: `locality.suburb`."}},"/api/suburb-trends/{suburb}/summary":{"get":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"suburb","required":true},{"schema":{"type":"string"},"in":"query","name":"state","required":false},{"schema":{"type":"string"},"in":"query","name":"fresh","required":false}],"responses":{"200":{"description":"Suburb median-price trends result with source attribution. `data` holds the price/history/summary payload; `attribution`/`license` credit the Victorian Government median-price data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiSuburb-trendsBySuburbSummary","tags":["Suburb Trends"],"summary":"AI market summary for a suburb","description":"Natural-language market commentary generated from the suburb price trends (Gemini, 24h cached). No price data for the suburb/state returns 404. If the AI generation degrades, the endpoint still returns 200 with `data.summary: null` and `data.summaryStatus: \"failed\"` (an explicit signal, not an outage) so the price context is never masked. Scope: `locality.suburb`."}},"/api/suburb-trends/{suburb}/rents":{"get":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"suburb","required":true},{"schema":{"type":"string"},"in":"query","name":"state","required":false}],"responses":{"200":{"description":"Suburb median-price trends result with source attribution. `data` holds the price/history/summary payload; `attribution`/`license` credit the Victorian Government median-price data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiSuburb-trendsBySuburbRents","tags":["Suburb Trends"],"summary":"Median weekly-rent trends for a suburb","description":"Latest median weekly rents by property type and bedroom count, plus quarterly/annual change. `?state=` defaults to VIC. An authoritative miss (no rent data for the suburb/state) returns 404 `{ success: false }`; coverage today is VIC + NSW. Scope: `locality.suburb`."}},"/api/suburb-trends/{suburb}/rents/history":{"get":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"suburb","required":true},{"schema":{"type":"string"},"in":"query","name":"state","required":false},{"schema":{"type":"string"},"in":"query","name":"type","required":false},{"schema":{"type":"string"},"in":"query","name":"bedrooms","required":false}],"responses":{"200":{"description":"Suburb median-price trends result with source attribution. `data` holds the price/history/summary payload; `attribution`/`license` credit the Victorian Government median-price data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiSuburb-trendsBySuburbRentsHistory","tags":["Suburb Trends"],"summary":"Median weekly-rent history for a suburb","description":"Full quarterly median weekly-rent time series for a suburb, filterable by property type (`?type=house|unit`) and bedroom count (`?bedrooms=`). `?state=` defaults to VIC; coverage today is VIC + NSW. Scope: `locality.suburb`."}},"/api/spear/status":{"get":{"responses":{"200":{"description":"VIC SPEAR planning-application result with source attribution. `data` holds the matched applications; `attribution`/`license` credit the underlying VIC SPEAR/PPAR open data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"state":{"type":"string"},"data":{},"mirror":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"state":{"type":"string"},"data":{},"mirror":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"state":{"type":"string"},"data":{},"mirror":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiSpearStatus","tags":["SPEAR"],"summary":"SPEAR mirror status","description":"Returns snapshot id + age of the VIC SPEAR R2 mirror. No scope required."}},"/api/spear/point":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"lat","required":true},{"schema":{"type":"string"},"in":"query","name":"lng","required":true}],"responses":{"200":{"description":"VIC SPEAR planning-application result with source attribution. `data` holds the matched applications; `attribution`/`license` credit the underlying VIC SPEAR/PPAR open data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"state":{"type":"string"},"data":{},"mirror":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"state":{"type":"string"},"data":{},"mirror":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"state":{"type":"string"},"data":{},"mirror":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiSpearPoint","tags":["SPEAR"],"summary":"SPEAR applications at a point","description":"Return every SPEAR planning application whose geometry contains the given point. Scope: `spear.read`."}},"/api/spear/bbox":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"bbox","required":true},{"schema":{"type":"string"},"in":"query","name":"limit","required":false}],"responses":{"200":{"description":"VIC SPEAR planning-application result with source attribution. `data` holds the matched applications; `attribution`/`license` credit the underlying VIC SPEAR/PPAR open data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"state":{"type":"string"},"data":{},"mirror":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"state":{"type":"string"},"data":{},"mirror":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"state":{"type":"string"},"data":{},"mirror":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiSpearBbox","tags":["SPEAR"],"summary":"SPEAR applications in a bbox","description":"Return SPEAR planning applications whose geometry bbox intersects the requested envelope. Hard-capped at 1000 features. Scope: `spear.read`."}},"/api/spear/pfi/{pfi}":{"get":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"pfi","required":true}],"responses":{"200":{"description":"VIC SPEAR planning-application result with source attribution. `data` holds the matched applications; `attribution`/`license` credit the underlying VIC SPEAR/PPAR open data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"state":{"type":"string"},"data":{},"mirror":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"state":{"type":"string"},"data":{},"mirror":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"available":{"type":"boolean"},"state":{"type":"string"},"data":{},"mirror":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiSpearPfiByPfi","tags":["SPEAR"],"summary":"SPEAR applications by parcel PFI","description":"Return SPEAR planning applications attached to the given VicMap parcel PFI. Scope: `spear.read`."}},"/api/valuation/direct-comparison":{"post":{"parameters":[],"responses":{"200":{"description":"Valuation method result envelope with optional source attribution. `result` holds the computed valuation; `attribution`/`license` credit any third-party evidence (e.g. suburb median sales) used to build it.","content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postApiValuationDirect-comparison","tags":["Valuation"],"summary":"Direct Comparison — median of adjusted comparable sales.","description":"Compute an indicated market value from a set of comparable sales adjusted to the subject. Scope: `valuation.compute`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["comps"],"properties":{"comps":{"type":"array","items":{"type":"object","required":["id","address","salePrice","adjLocation","adjLand","adjBuilding","adjTime"],"properties":{"id":{"type":"string"},"address":{"type":"string"},"salePrice":{"type":"number"},"adjLocation":{"type":"number"},"adjLand":{"type":"number"},"adjBuilding":{"type":"number"},"adjTime":{"type":"number"}}}}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["comps"],"properties":{"comps":{"type":"array","items":{"type":"object","required":["id","address","salePrice","adjLocation","adjLand","adjBuilding","adjTime"],"properties":{"id":{"type":"string"},"address":{"type":"string"},"salePrice":{"type":"number"},"adjLocation":{"type":"number"},"adjLand":{"type":"number"},"adjBuilding":{"type":"number"},"adjTime":{"type":"number"}}}}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["comps"],"properties":{"comps":{"type":"array","items":{"type":"object","required":["id","address","salePrice","adjLocation","adjLand","adjBuilding","adjTime"],"properties":{"id":{"type":"string"},"address":{"type":"string"},"salePrice":{"type":"number"},"adjLocation":{"type":"number"},"adjLand":{"type":"number"},"adjBuilding":{"type":"number"},"adjTime":{"type":"number"}}}}},"additionalProperties":false}}}}}},"/api/valuation/summation":{"post":{"parameters":[],"responses":{"200":{"description":"Valuation method result envelope with optional source attribution. `result` holds the computed valuation; `attribution`/`license` credit any third-party evidence (e.g. suburb median sales) used to build it.","content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postApiValuationSummation","tags":["Valuation"],"summary":"Summation (cost approach) — land + depreciated improvements + soft costs.","description":"Run the summation / cost approach calculator. Scope: `valuation.compute`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["landArea","landRate","dwellingArea","buildRate","age","econLife","siteWorks","softCosts"],"properties":{"landArea":{"type":"number"},"landRate":{"type":"number"},"dwellingArea":{"type":"number"},"buildRate":{"type":"number"},"age":{"type":"number"},"econLife":{"type":"number"},"siteWorks":{"type":"number"},"softCosts":{"type":"number"}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["landArea","landRate","dwellingArea","buildRate","age","econLife","siteWorks","softCosts"],"properties":{"landArea":{"type":"number"},"landRate":{"type":"number"},"dwellingArea":{"type":"number"},"buildRate":{"type":"number"},"age":{"type":"number"},"econLife":{"type":"number"},"siteWorks":{"type":"number"},"softCosts":{"type":"number"}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["landArea","landRate","dwellingArea","buildRate","age","econLife","siteWorks","softCosts"],"properties":{"landArea":{"type":"number"},"landRate":{"type":"number"},"dwellingArea":{"type":"number"},"buildRate":{"type":"number"},"age":{"type":"number"},"econLife":{"type":"number"},"siteWorks":{"type":"number"},"softCosts":{"type":"number"}},"additionalProperties":false}}}}}},"/api/valuation/income-cap":{"post":{"parameters":[],"responses":{"200":{"description":"Valuation method result envelope with optional source attribution. `result` holds the computed valuation; `attribution`/`license` credit any third-party evidence (e.g. suburb median sales) used to build it.","content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postApiValuationIncome-cap","tags":["Valuation"],"summary":"Income Capitalisation — NOI ÷ cap rate, net of acquisition costs.","description":"Capitalise sustainable NOI at a market-derived yield. Scope: `valuation.compute`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["grossIncome","vacancy","opexRatio","capRate","acquisitionCosts"],"properties":{"grossIncome":{"type":"number"},"vacancy":{"type":"number"},"opexRatio":{"type":"number"},"capRate":{"type":"number"},"acquisitionCosts":{"type":"number"}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["grossIncome","vacancy","opexRatio","capRate","acquisitionCosts"],"properties":{"grossIncome":{"type":"number"},"vacancy":{"type":"number"},"opexRatio":{"type":"number"},"capRate":{"type":"number"},"acquisitionCosts":{"type":"number"}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["grossIncome","vacancy","opexRatio","capRate","acquisitionCosts"],"properties":{"grossIncome":{"type":"number"},"vacancy":{"type":"number"},"opexRatio":{"type":"number"},"capRate":{"type":"number"},"acquisitionCosts":{"type":"number"}},"additionalProperties":false}}}}}},"/api/valuation/dcf":{"post":{"parameters":[],"responses":{"200":{"description":"Valuation method result envelope with optional source attribution. `result` holds the computed valuation; `attribution`/`license` credit any third-party evidence (e.g. suburb median sales) used to build it.","content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postApiValuationDcf","tags":["Valuation"],"summary":"Discounted Cash Flow — present value of projected NOI plus terminal value.","description":"n-year NOI projection with growth, discounted at the required rate of return; terminal value via exit cap. Scope: `valuation.compute`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["year1Noi","growth","discount","exitCap","holdYears"],"properties":{"year1Noi":{"type":"number"},"growth":{"type":"number"},"discount":{"type":"number"},"exitCap":{"type":"number"},"holdYears":{"type":"number"}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["year1Noi","growth","discount","exitCap","holdYears"],"properties":{"year1Noi":{"type":"number"},"growth":{"type":"number"},"discount":{"type":"number"},"exitCap":{"type":"number"},"holdYears":{"type":"number"}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["year1Noi","growth","discount","exitCap","holdYears"],"properties":{"year1Noi":{"type":"number"},"growth":{"type":"number"},"discount":{"type":"number"},"exitCap":{"type":"number"},"holdYears":{"type":"number"}},"additionalProperties":false}}}}}},"/api/valuation/hypothetical-development":{"post":{"parameters":[],"responses":{"200":{"description":"Valuation method result envelope with optional source attribution. `result` holds the computed valuation; `attribution`/`license` credit any third-party evidence (e.g. suburb median sales) used to build it.","content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postApiValuationHypothetical-development","tags":["Valuation"],"summary":"Hypothetical Development (residual) — residual land value from a feasibility.","description":"Reverse-engineer residual land value: gross realisation less costs, profit & risk, finance. Scope: `valuation.compute`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["units","avgPrice","sellingCosts","hardCostPerUnit","softCosts","profitRisk","holdMonths","financeRate"],"properties":{"units":{"type":"number"},"avgPrice":{"type":"number"},"sellingCosts":{"type":"number"},"hardCostPerUnit":{"type":"number"},"softCosts":{"type":"number"},"profitRisk":{"type":"number"},"holdMonths":{"type":"number"},"financeRate":{"type":"number"}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["units","avgPrice","sellingCosts","hardCostPerUnit","softCosts","profitRisk","holdMonths","financeRate"],"properties":{"units":{"type":"number"},"avgPrice":{"type":"number"},"sellingCosts":{"type":"number"},"hardCostPerUnit":{"type":"number"},"softCosts":{"type":"number"},"profitRisk":{"type":"number"},"holdMonths":{"type":"number"},"financeRate":{"type":"number"}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["units","avgPrice","sellingCosts","hardCostPerUnit","softCosts","profitRisk","holdMonths","financeRate"],"properties":{"units":{"type":"number"},"avgPrice":{"type":"number"},"sellingCosts":{"type":"number"},"hardCostPerUnit":{"type":"number"},"softCosts":{"type":"number"},"profitRisk":{"type":"number"},"holdMonths":{"type":"number"},"financeRate":{"type":"number"}},"additionalProperties":false}}}}}},"/api/valuation/profits":{"post":{"parameters":[],"responses":{"200":{"description":"Valuation method result envelope with optional source attribution. `result` holds the computed valuation; `attribution`/`license` credit any third-party evidence (e.g. suburb median sales) used to build it.","content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postApiValuationProfits","tags":["Valuation"],"summary":"Profits Method — fair maintainable trade × years’ purchase.","description":"Capitalise trading performance of a specialised business attached to the property. Scope: `valuation.compute`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["turnover","grossMargin","opexRatio","operatorWage","yp","stockGoodwill"],"properties":{"turnover":{"type":"number"},"grossMargin":{"type":"number"},"opexRatio":{"type":"number"},"operatorWage":{"type":"number"},"yp":{"type":"number"},"stockGoodwill":{"type":"number"}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["turnover","grossMargin","opexRatio","operatorWage","yp","stockGoodwill"],"properties":{"turnover":{"type":"number"},"grossMargin":{"type":"number"},"opexRatio":{"type":"number"},"operatorWage":{"type":"number"},"yp":{"type":"number"},"stockGoodwill":{"type":"number"}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["turnover","grossMargin","opexRatio","operatorWage","yp","stockGoodwill"],"properties":{"turnover":{"type":"number"},"grossMargin":{"type":"number"},"opexRatio":{"type":"number"},"operatorWage":{"type":"number"},"yp":{"type":"number"},"stockGoodwill":{"type":"number"}},"additionalProperties":false}}}}}},"/api/valuation/direct-comparison/by-property":{"post":{"parameters":[],"responses":{"200":{"description":"Valuation method result envelope with optional source attribution. `result` holds the computed valuation; `attribution`/`license` credit any third-party evidence (e.g. suburb median sales) used to build it.","content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postApiValuationDirect-comparisonBy-property","tags":["Valuation"],"summary":"Direct Comparison by property — auto-fill comps from suburb evidence.","description":"Resolve a saved property by `propertyId`, `address`, or `pfi`, then build synthetic comparable anchors from the latest suburb median sales. Caller may pass `overrides.comps` to bypass the synthetic anchors entirely. Scope: `valuation.compute`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}}}}}},"/api/valuation/summation/by-property":{"post":{"parameters":[],"responses":{"200":{"description":"Valuation method result envelope with optional source attribution. `result` holds the computed valuation; `attribution`/`license` credit any third-party evidence (e.g. suburb median sales) used to build it.","content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postApiValuationSummationBy-property","tags":["Valuation"],"summary":"Summation by property — auto-fill land/building areas + age.","description":"Pulls landArea, dwellingArea and age from the cadastre row; derives a coarse landRate from the suburb median when both are available. buildRate, econLife, siteWorks and softCosts default to industry mid-range values and should normally be overridden. Scope: `valuation.compute`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}}}}}},"/api/valuation/income-cap/by-property":{"post":{"parameters":[],"responses":{"200":{"description":"Valuation method result envelope with optional source attribution. `result` holds the computed valuation; `attribution`/`license` credit any third-party evidence (e.g. suburb median sales) used to build it.","content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postApiValuationIncome-capBy-property","tags":["Valuation"],"summary":"Income Cap by property — attaches cadastre context, NOI inputs via overrides.","description":"The cadastre does not carry NOI / tenancy schedules. All calculator inputs must be supplied under `overrides`; the resolved property + suburb median count are attached to the envelope for traceability. Scope: `valuation.compute`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}}}}}},"/api/valuation/dcf/by-property":{"post":{"parameters":[],"responses":{"200":{"description":"Valuation method result envelope with optional source attribution. `result` holds the computed valuation; `attribution`/`license` credit any third-party evidence (e.g. suburb median sales) used to build it.","content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postApiValuationDcfBy-property","tags":["Valuation"],"summary":"DCF by property — attaches cadastre context, projection inputs via overrides.","description":"Same shape as `/dcf`. Year-1 NOI, growth, discount, exit cap and hold-years must all be supplied under `overrides`. Scope: `valuation.compute`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}}}}}},"/api/valuation/hypothetical-development/by-property":{"post":{"parameters":[],"responses":{"200":{"description":"Valuation method result envelope with optional source attribution. `result` holds the computed valuation; `attribution`/`license` credit any third-party evidence (e.g. suburb median sales) used to build it.","content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postApiValuationHypothetical-developmentBy-property","tags":["Valuation"],"summary":"Hypothetical Development by property — feasibility inputs via overrides.","description":"Resolves the parcel for traceability but the development programme (units, prices, costs, profit & risk, finance) must all be supplied under `overrides`. Scope: `valuation.compute`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}}}}}},"/api/valuation/profits/by-property":{"post":{"parameters":[],"responses":{"200":{"description":"Valuation method result envelope with optional source attribution. `result` holds the computed valuation; `attribution`/`license` credit any third-party evidence (e.g. suburb median sales) used to build it.","content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postApiValuationProfitsBy-property","tags":["Valuation"],"summary":"Profits Method by property — trading inputs via overrides.","description":"Resolves the parcel for traceability; turnover, margins, opex, operator wage, YP and stock/goodwill must all be supplied under `overrides`. Scope: `valuation.compute`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","properties":{"propertyId":{"anyOf":[{"type":"string"},{"type":"number"}]},"address":{"type":"string"},"pfi":{"type":"string"},"overrides":{"type":"object","patternProperties":{"^(.*)$":{}}}},"additionalProperties":false}}}}}},"/api/valuation/runs":{"get":{"parameters":[{"description":"Page size, 1–100 (default 25).","schema":{"type":"string"},"in":"query","name":"limit","required":false},{"description":"Opaque cursor from a prior response `nextCursor`.","schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"description":"Filter by method slug, e.g. `direct-comparison`, `dcf`.","schema":{"type":"string"},"in":"query","name":"method","required":false},{"description":"Inclusive start date, YYYY-MM-DD (UTC).","schema":{"type":"string"},"in":"query","name":"from","required":false},{"description":"Inclusive end date, YYYY-MM-DD (UTC).","schema":{"type":"string"},"in":"query","name":"to","required":false}],"responses":{"200":{"description":"A page of valuation run summaries, newest first. Pass `nextCursor` back as the `cursor` query param to fetch the next page; it is `null` on the final page.","content":{"application/json":{"schema":{"type":"object","properties":{"runs":{"type":"array","items":{"type":"object","required":["reportReference","method","generatedAt"],"properties":{"reportReference":{"type":"string"},"method":{"type":"string"},"generatedAt":{"type":"string"}}}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"error":{"type":"string"},"success":{"type":"boolean"},"statusCode":{"type":"number"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"runs":{"type":"array","items":{"type":"object","required":["reportReference","method","generatedAt"],"properties":{"reportReference":{"type":"string"},"method":{"type":"string"},"generatedAt":{"type":"string"}}}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"error":{"type":"string"},"success":{"type":"boolean"},"statusCode":{"type":"number"}}}},"text/plain":{"schema":{"type":"object","properties":{"runs":{"type":"array","items":{"type":"object","required":["reportReference","method","generatedAt"],"properties":{"reportReference":{"type":"string"},"method":{"type":"string"},"generatedAt":{"type":"string"}}}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"error":{"type":"string"},"success":{"type":"boolean"},"statusCode":{"type":"number"}}}}}}},"operationId":"getApiValuationRuns","tags":["Valuation"],"summary":"List previously computed valuation runs for the calling api key.","description":"Returns the caller's valuation runs, newest first, with cursor pagination. Each entry is a lightweight summary (`reportReference`, `method`, `generatedAt`); fetch the full input + result envelope via `GET /api/valuation/runs/{reportReference}`. Supports optional `method` and `from`/`to` date-range filters. Page through history by passing the previous response's `nextCursor` as `cursor`; `nextCursor` is `null` on the final page. Scope: `valuation.compute`."}},"/api/valuation/runs/{reportReference}":{"get":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"reportReference","required":true}],"responses":{"200":{"description":"Valuation method result envelope with optional source attribution. `result` holds the computed valuation; `attribution`/`license` credit any third-party evidence (e.g. suburb median sales) used to build it.","content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"method":{"type":"string"},"reportReference":{"type":"string"},"generatedAt":{"type":"string"},"input":{},"result":{},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiValuationRunsByReportReference","tags":["Valuation"],"summary":"Fetch a previously computed valuation run by reportReference.","description":"Returns the persisted input + result envelope for a prior /api/valuation/* call, scoped to the owning api key. Useful for audit replay (APRA / API of Australia) and per-method billing reconciliation. Scope: `valuation.compute`."}},"/api/risk/":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"lat","required":true},{"schema":{"type":"string"},"in":"query","name":"lng","required":true}],"responses":{"200":{"description":"Combined risk overlay result with source attribution. `data` holds the `{ flood, bushfire, contamination, state, hasHazard }` block; `attribution`/`license` credit the underlying planning data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["flood","bushfire","contamination","state","hasHazard"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]},"hasHazard":{"description":"True when at least one hazard returned `present: true`.","type":"boolean"}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["flood","bushfire","contamination","state","hasHazard"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]},"hasHazard":{"description":"True when at least one hazard returned `present: true`.","type":"boolean"}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["flood","bushfire","contamination","state","hasHazard"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]},"hasHazard":{"description":"True when at least one hazard returned `present: true`.","type":"boolean"}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiRisk","tags":["Risk"],"summary":"Flood + bushfire (BAL) + contamination at a point","description":"Returns `{ flood, bushfire, contamination }` for the given coordinate, wrapping the planning-overlay adapters. Each hazard block is either `{ present: true, coverage: \"live\", classification, sourceLayer, state, attributes }` when a layer covers the point, or `{ present: false, coverage: \"live\" | \"not_covered\" }` otherwise — `coverage: \"live\"` means the state publishes a layer for this hazard and the point is clear, `coverage: \"not_covered\"` means the state does not yet publish a layer for this hazard (so `present: false` is \"unknown\", not \"no risk\"). Scope: `risk.read`.\n\nPer-state coverage matrix (which hazards are live in which jurisdiction) —\nderived from the same per-state registry the planning-overlay adapters\nuse, so onboarding a new LGA layer auto-updates this table. Each hazard\nblock in the response also carries a `coverage` field (`\"live\"` vs.\n`\"not_covered\"`) so callers can disambiguate \"checked, clear\" from\n\"state does not publish that layer yet\" without reading this table.\n\n| State | Flood | Bushfire (BAL) | Contamination |\n|---|---|---|---|\n| VIC | ✓ | ✓ | ✓ |\n| NSW | ✓ | ✓ | ✓ |\n| SA | — | — | — |\n| WA | ✓ | ✓ | ✓ |\n| TAS | ✓ | ✓ | ✓ |\n| NT | ✓ | ✓ | — |\n| ACT | ✓ | ✓ | — |\n| QLD | ✓ | ✓ | ✓ |"}},"/api/risk/flood":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"lat","required":true},{"schema":{"type":"string"},"in":"query","name":"lng","required":true}],"responses":{"200":{"description":"Flood overlay result with source attribution. `data` holds `{ flood, state }`.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["flood","state"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["flood","state"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["flood","state"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiRiskFlood","tags":["Risk"],"summary":"Flood overlay at a point","description":"Returns the flood overlay covering the given coordinate. Block shape: `{ present: true, coverage: \"live\", classification, ... }` when covered, or `{ present: false, coverage: \"live\" | \"not_covered\" }` otherwise (see `/api/risk` for `coverage` semantics). Scope: `risk.read`."}},"/api/risk/bushfire":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"lat","required":true},{"schema":{"type":"string"},"in":"query","name":"lng","required":true}],"responses":{"200":{"description":"Bushfire (BAL) overlay result with source attribution. `data` holds `{ bushfire, state }`.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["bushfire","state"],"properties":{"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["bushfire","state"],"properties":{"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["bushfire","state"],"properties":{"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiRiskBushfire","tags":["Risk"],"summary":"Bushfire (BAL) overlay at a point","description":"Returns the bushfire / BMO / BAL overlay covering the given coordinate. Block shape: `{ present: true, coverage: \"live\", classification, ... }` when covered, or `{ present: false, coverage: \"live\" | \"not_covered\" }` otherwise (see `/api/risk` for `coverage` semantics). Scope: `risk.read`."}},"/api/risk/contamination":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"lat","required":true},{"schema":{"type":"string"},"in":"query","name":"lng","required":true}],"responses":{"200":{"description":"Contamination overlay result with source attribution. `data` holds `{ contamination, state }`.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["contamination","state"],"properties":{"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["contamination","state"],"properties":{"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["contamination","state"],"properties":{"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiRiskContamination","tags":["Risk"],"summary":"Contamination / environmental-audit overlay at a point","description":"Returns the contamination / EAO / environmental-audit overlay covering the given coordinate. Block shape: `{ present: true, coverage: \"live\", classification, ... }` when covered, or `{ present: false, coverage: \"live\" | \"not_covered\" }` otherwise (see `/api/risk` for `coverage` semantics — `not_covered` is common in ACT/NT, which do not publish an EAO equivalent). Scope: `risk.read`."}},"/api/risk/batch":{"post":{"parameters":[],"responses":{"200":{"description":"Batch risk result. `results[].data` is the same `{ flood, bushfire, contamination, state, hasHazard }` block as `GET /api/risk`, or `null` (with an `error`) for an out-of-range or failed point.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"results":{"type":"array","items":{"additionalProperties":true,"type":"object","required":["lat","lng","data"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"},"data":{"anyOf":[{"additionalProperties":true,"type":"object","required":["flood","bushfire","contamination","state","hasHazard"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]},"hasHazard":{"description":"True when at least one hazard returned `present: true`.","type":"boolean"}}},{"type":"null"}]},"error":{"type":"string"}}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"results":{"type":"array","items":{"additionalProperties":true,"type":"object","required":["lat","lng","data"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"},"data":{"anyOf":[{"additionalProperties":true,"type":"object","required":["flood","bushfire","contamination","state","hasHazard"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]},"hasHazard":{"description":"True when at least one hazard returned `present: true`.","type":"boolean"}}},{"type":"null"}]},"error":{"type":"string"}}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"results":{"type":"array","items":{"additionalProperties":true,"type":"object","required":["lat","lng","data"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"},"data":{"anyOf":[{"additionalProperties":true,"type":"object","required":["flood","bushfire","contamination","state","hasHazard"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]},"hasHazard":{"description":"True when at least one hazard returned `present: true`.","type":"boolean"}}},{"type":"null"}]},"error":{"type":"string"}}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postApiRiskBatch","tags":["Risk"],"summary":"Flood + bushfire (BAL) + contamination for many points","description":"Batch variant of `GET /api/risk` — POST `{ points: [{ lat, lng }, …] }` (max 50) and receive `{ success: true, results: [{ lat, lng, data }] }` where each `data` is the same `{ flood, bushfire, contamination, state, hasHazard }` block `GET /api/risk` returns, or `null` (with an `error` string) for an out-of-range or failed point. Lets a search-results page resolve a whole page of cards in one round trip instead of one request per card. Unlike the single-point endpoints, `/batch` does not fire `risk.hazard.found` webhooks. Scope: `risk.read`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["points"],"properties":{"points":{"maxItems":50,"type":"array","items":{"type":"object","required":["lat","lng"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"}}}}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["points"],"properties":{"points":{"maxItems":50,"type":"array","items":{"type":"object","required":["lat","lng"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"}}}}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["points"],"properties":{"points":{"maxItems":50,"type":"array","items":{"type":"object","required":["lat","lng"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"}}}}},"additionalProperties":false}}}}}},"/api/geocode/":{"get":{"parameters":[{"description":"Free-form Australian address to resolve.","schema":{"type":"string"},"in":"query","name":"address","required":true},{"description":"Optional state hint (e.g. VIC) when the address omits one.","schema":{"type":"string"},"in":"query","name":"state","required":false}],"responses":{"200":{"description":"Address geocoding result. `data` holds `{ lat, lng, pid, formatted, confidence, components, state }`; `attribution`/`license` credit G-NAF.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiGeocode","tags":["Geocoding"],"summary":"Resolve an address to an authoritative G-NAF coordinate + PID","description":"Address-first geocoding. Send a free-form Australian address; receive `{ pid, confidence, lat, lng, formatted, components, state }`. `confidence: \"exact\"` means the coordinate is an authoritative G-NAF surveyed point and `pid` is the G-NAF Persistent Identifier; `confidence: \"geocoder-fallback\"` means no exact G-NAF row matched, so the coordinate came from the Google/Mapbox geocoder and `pid` is `null`. **Store the `pid`, not the coordinate** — coordinates can shift between quarterly G-NAF releases, the PID is stable. Returns 404 when the address cannot be resolved to a unique location. Scope: `geocode.read`."}},"/api/soil/":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"lat","required":false},{"schema":{"type":"string"},"in":"query","name":"lng","required":false}],"responses":{"200":{"description":"Indicative soil / footing-risk result with source attribution. `data` holds the clay-by-depth samples, soil depth, confidence and the screening footing-risk band; `attribution`/`license` credit the CSIRO/TERN SLGA source.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiSoil","tags":["Soil"],"summary":"Indicative site soil & footing-risk band at a point","description":"Samples the CSIRO/TERN Soil and Landscape Grid of Australia (~90 m) for clay content (six standard depth intervals, with 5th/95th percentile confidence) and modelled soil depth, then derives an indicative footing-risk band (Low → Very High) loosely aligned to AS2870 site classes. `data.hasData` is `false` when SLGA has no usable signal at the point (off-grid, water). **This is an indicative screening estimate, NOT a certified AS2870 site classification or characteristic surface movement (ys) value — a site-specific geotechnical investigation is still required.** Scope: `soil.read`."}},"/api/roads/near":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"state","required":false},{"schema":{"type":"string"},"in":"query","name":"lat","required":false},{"schema":{"type":"string"},"in":"query","name":"lng","required":false},{"schema":{"type":"string"},"in":"query","name":"radius","required":false},{"schema":{"type":"string"},"in":"query","name":"limit","required":false}],"responses":{"200":{"description":"Roads / frontage result with source attribution. `data.roads[]` holds the matched road centrelines (authoritative name components + GeoJSON geometry + distance in metres); `attribution`/`license` credit the VicMap Transport (CC BY 4.0) source.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiRoadsNear","tags":["Roads"],"summary":"Nearest road centreline(s) to a point","description":"Returns the nearest road centreline segment(s) within `radius` metres (default 50, max 2000) of the given coordinate, nearest first, up to `limit` results (default 5, max 25). Each road carries authoritative name components (roadName/roadType/roadSuffix/eziRoadName), a GeoJSON LineString geometry, and the great-circle `distanceMeters` from the point. A clean miss (no road within radius, or no coverage for the state) returns `200 { success:false }`; a DB outage returns `500`. Scope: `roads.read`."}},"/api/roads/by-parcel":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"state","required":false},{"schema":{"type":"string"},"in":"query","name":"pfi","required":false},{"schema":{"type":"string"},"in":"query","name":"tolerance","required":false}],"responses":{"200":{"description":"Roads / frontage result with source attribution. `data.roads[]` holds the matched road centrelines (authoritative name components + GeoJSON geometry + distance in metres); `attribution`/`license` credit the VicMap Transport (CC BY 4.0) source.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiRoadsBy-parcel","tags":["Roads"],"summary":"Fronting road(s) for a parcel","description":"Resolves the cadastral parcel by `pfi` (against the PostGIS cadastre table) and returns the road centreline(s) within `tolerance` metres (default 30, max 100) of the lot boundary, nearest first, deduplicated by road name. `data.parcelFound` distinguishes \"parcel not in the cadastre\" from \"parcel found, no fronting road within tolerance\" — both are `200 { success:false }`. A DB outage returns `500`. Scope: `roads.read`."}},"/api/catalog/homes":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"page","required":false},{"schema":{"type":"string"},"in":"query","name":"limit","required":false}],"operationId":"getApiCatalogHomes","tags":["Catalog"],"summary":"List home designs","description":"Paginated list of home designs across all builders.","responses":{"200":{}}}},"/api/catalog/builders":{"get":{"operationId":"getApiCatalogBuilders","tags":["Catalog"],"summary":"List builders","description":"All builders in the catalogue.","responses":{"200":{}}}},"/api/catalog/builders/{slug}":{"get":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"slug","required":true}],"operationId":"getApiCatalogBuildersBySlug","tags":["Catalog"],"summary":"Get builder by slug","responses":{"200":{}}}},"/api/catalog/stats/platform":{"get":{"operationId":"getApiCatalogStatsPlatform","tags":["Catalog"],"summary":"Platform statistics","description":"Aggregate counts of homes, builders, and price ranges.","responses":{"200":{}}}},"/api/address/predict":{"get":{"operationId":"getApiAddressPredict","responses":{"200":{}}}},"/api/address-search":{"get":{"responses":{"200":{"description":"Address search results with optional source attribution (present when matches are served from the G-NAF address index). `data` rows share one shape across the local-properties and G-NAF tiers.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"additionalProperties":true,"description":"A single address suggestion. All fields are optional so this one row shape covers both the local-properties tier and the G-NAF tier.","type":"object","properties":{"id":{"description":"Stable identifier for the matched address. For G-NAF rows this is the G-NAF Persistent Identifier (PID, e.g. \"GAVIC423966159\") — store THIS, not the coordinate, as your join key for downstream cadastre / planning lookups (coordinates can shift a few metres between quarterly G-NAF releases). For local properties-table hits it is the internal property_pfi.","anyOf":[{"type":"string"},{"type":"number"},{"type":"null"}]},"full_address":{"description":"Human-readable full address for display, e.g. \"12 MACQUARIE STREET, SYDNEY NSW 2000\".","anyOf":[{"type":"string"},{"type":"null"}]},"locality":{"description":"Suburb / locality name.","anyOf":[{"type":"string"},{"type":"null"}]},"postcode":{"description":"Four-digit Australian postcode.","anyOf":[{"type":"string"},{"type":"number"},{"type":"null"}]},"state":{"description":"State / territory code: NSW, VIC, QLD, WA, SA, TAS, ACT or NT.","anyOf":[{"type":"string"},{"type":"null"}]},"land_size":{"description":"Land size in square metres when the row came from the local properties table; null for G-NAF rows (G-NAF carries no parcel area).","anyOf":[{"type":"number"},{"type":"null"}]},"property_type":{"description":"Property type when known (local properties table); null for G-NAF rows.","anyOf":[{"type":"string"},{"type":"null"}]},"source":{"description":"Provenance of the row: 'gnaf' for the national G-NAF address index (the authoritative nationwide source). Absent for local properties-table hits.","type":"string"}}}},"total":{"type":"number"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"additionalProperties":true,"description":"A single address suggestion. All fields are optional so this one row shape covers both the local-properties tier and the G-NAF tier.","type":"object","properties":{"id":{"description":"Stable identifier for the matched address. For G-NAF rows this is the G-NAF Persistent Identifier (PID, e.g. \"GAVIC423966159\") — store THIS, not the coordinate, as your join key for downstream cadastre / planning lookups (coordinates can shift a few metres between quarterly G-NAF releases). For local properties-table hits it is the internal property_pfi.","anyOf":[{"type":"string"},{"type":"number"},{"type":"null"}]},"full_address":{"description":"Human-readable full address for display, e.g. \"12 MACQUARIE STREET, SYDNEY NSW 2000\".","anyOf":[{"type":"string"},{"type":"null"}]},"locality":{"description":"Suburb / locality name.","anyOf":[{"type":"string"},{"type":"null"}]},"postcode":{"description":"Four-digit Australian postcode.","anyOf":[{"type":"string"},{"type":"number"},{"type":"null"}]},"state":{"description":"State / territory code: NSW, VIC, QLD, WA, SA, TAS, ACT or NT.","anyOf":[{"type":"string"},{"type":"null"}]},"land_size":{"description":"Land size in square metres when the row came from the local properties table; null for G-NAF rows (G-NAF carries no parcel area).","anyOf":[{"type":"number"},{"type":"null"}]},"property_type":{"description":"Property type when known (local properties table); null for G-NAF rows.","anyOf":[{"type":"string"},{"type":"null"}]},"source":{"description":"Provenance of the row: 'gnaf' for the national G-NAF address index (the authoritative nationwide source). Absent for local properties-table hits.","type":"string"}}}},"total":{"type":"number"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"additionalProperties":true,"description":"A single address suggestion. All fields are optional so this one row shape covers both the local-properties tier and the G-NAF tier.","type":"object","properties":{"id":{"description":"Stable identifier for the matched address. For G-NAF rows this is the G-NAF Persistent Identifier (PID, e.g. \"GAVIC423966159\") — store THIS, not the coordinate, as your join key for downstream cadastre / planning lookups (coordinates can shift a few metres between quarterly G-NAF releases). For local properties-table hits it is the internal property_pfi.","anyOf":[{"type":"string"},{"type":"number"},{"type":"null"}]},"full_address":{"description":"Human-readable full address for display, e.g. \"12 MACQUARIE STREET, SYDNEY NSW 2000\".","anyOf":[{"type":"string"},{"type":"null"}]},"locality":{"description":"Suburb / locality name.","anyOf":[{"type":"string"},{"type":"null"}]},"postcode":{"description":"Four-digit Australian postcode.","anyOf":[{"type":"string"},{"type":"number"},{"type":"null"}]},"state":{"description":"State / territory code: NSW, VIC, QLD, WA, SA, TAS, ACT or NT.","anyOf":[{"type":"string"},{"type":"null"}]},"land_size":{"description":"Land size in square metres when the row came from the local properties table; null for G-NAF rows (G-NAF carries no parcel area).","anyOf":[{"type":"number"},{"type":"null"}]},"property_type":{"description":"Property type when known (local properties table); null for G-NAF rows.","anyOf":[{"type":"string"},{"type":"null"}]},"source":{"description":"Provenance of the row: 'gnaf' for the national G-NAF address index (the authoritative nationwide source). Absent for local properties-table hits.","type":"string"}}}},"total":{"type":"number"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiAddress-search"}},"/api/geolocation":{"get":{"responses":{"200":{"anyOf":[{"type":"object","required":["success"],"properties":{"success":{"const":true,"type":"boolean"},"country":{"type":"string"},"countryCode":{"type":"string"},"state":{"type":"string"},"stateCode":{"type":"string"},"city":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"}}},{"type":"object","required":["success","error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"type":"string"},"message":{"type":"string"}}}],"content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["success"],"properties":{"success":{"const":true,"type":"boolean"},"country":{"type":"string"},"countryCode":{"type":"string"},"state":{"type":"string"},"stateCode":{"type":"string"},"city":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"}}},{"type":"object","required":["success","error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"type":"string"},"message":{"type":"string"}}}]}},"multipart/form-data":{"schema":{"anyOf":[{"type":"object","required":["success"],"properties":{"success":{"const":true,"type":"boolean"},"country":{"type":"string"},"countryCode":{"type":"string"},"state":{"type":"string"},"stateCode":{"type":"string"},"city":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"}}},{"type":"object","required":["success","error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"type":"string"},"message":{"type":"string"}}}]}},"text/plain":{"schema":{"anyOf":[{"type":"object","required":["success"],"properties":{"success":{"const":true,"type":"boolean"},"country":{"type":"string"},"countryCode":{"type":"string"},"state":{"type":"string"},"stateCode":{"type":"string"},"city":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"}}},{"type":"object","required":["success","error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"type":"string"},"message":{"type":"string"}}}]}}}}},"operationId":"getApiGeolocation","tags":["Geolocation"],"summary":"Detect user location","description":"Detect user location based on IP address. Uses IP-API to geolocate the client IP and returns country, state, city, and coordinates. Includes Australian state code mapping."}},"/api/climate-zone/":{"get":{"operationId":"getApiClimate-zone","responses":{"200":{}}}},"/api/climate-outlook/":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"lat","required":true},{"schema":{"type":"string"},"in":"query","name":"lng","required":true},{"schema":{"type":"string"},"in":"query","name":"scenario","required":false},{"schema":{"type":"string"},"in":"query","name":"epoch","required":false},{"schema":{"type":"string"},"in":"query","name":"fresh","required":false}],"responses":{"200":{"description":"Forward-looking climate projection for the coordinate’s NRM region. `data` holds the chosen scenario + epoch, baseline and the indicator set; `attribution`/`license` credit CSIRO/BoM Climate Change in Australia.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiClimate-outlook","tags":["Climate"],"summary":"Forward-looking climate projection at a point","description":"Returns region-level CSIRO/BoM \"Climate Change in Australia\" projections (CMIP5 NRM clusters) for the coordinate: projected change in average temperature, hot days, fire-weather severity (annual cumulative FFDI), annual rainfall, extreme-rainfall intensity and time in drought, for a chosen emissions scenario (`scenario` = RCP45|RCP85, default RCP85) and future epoch (`epoch` = 2050|2090, default 2050), relative to the 1986–2005 baseline. Values are ranges / qualitative direction (scenario projection at region level, NOT an address-specific forecast). Unavailable indicators are reported honestly. Pass `fresh=1` to bypass the 24h cache."}},"/api/planning/zones":{"get":{"parameters":[{"description":"Street address to resolve to a coordinate via the G-NAF-first resolver (alternative to lat/lng). Must include a leading house number, a recognised street type and a 4-digit postcode, e.g. \"19 Kerferd Rd, Albert Park VIC 3206\".","schema":{"type":"string"},"in":"query","name":"address","required":false},{"description":"Latitude coordinate (WGS84). Required unless `address` is supplied.","schema":{"type":"string"},"in":"query","name":"lat","required":false},{"description":"Longitude coordinate (WGS84). Required unless `address` is supplied.","schema":{"type":"string"},"in":"query","name":"lng","required":false},{"description":"Optional state hint (e.g. VIC) used to disambiguate the address lookup","schema":{"type":"string"},"in":"query","name":"state","required":false}],"responses":{"200":{"description":"Planning zone + overlay resolution for a coordinate or address, with optional source attribution. An authoritative miss returns 404 `ZONE_NOT_FOUND`/`OUT_OF_AUSTRALIA`; upstream failures surface as 5xx.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"error":{"type":"string"},"errorCode":{"type":"string"},"data":{"additionalProperties":true,"description":"Planning resolution: `zone` (singular, back-compat) + `zones[]` array with `zone_code`/`zone_name`/`code`/`name`/`category`/`lga`, plus `overlays[]` with `overlay_code`/`overlay_name`/`code`/`name`/`category`/`lga`, plus `lga`/`council`/`state`/`confidence`.","type":"object","properties":{"resolvedAddress":{"additionalProperties":true,"type":"object","properties":{"formatted":{"type":"string"},"lat":{"type":"number"},"lng":{"type":"number"},"source":{"type":"string"}}},"zone":{"additionalProperties":true,"description":"Resolved planning zone.","type":"object","properties":{"zone_code":{"anyOf":[{"type":"string"},{"type":"null"}]},"zone_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"zones":{"type":"array","items":{"additionalProperties":true,"description":"Resolved planning zone.","type":"object","properties":{"zone_code":{"anyOf":[{"type":"string"},{"type":"null"}]},"zone_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"overlays":{"type":"array","items":{"additionalProperties":true,"description":"Planning overlay affecting the location.","type":"object","properties":{"overlay_code":{"anyOf":[{"type":"string"},{"type":"null"}]},"overlay_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]},"council":{"anyOf":[{"type":"string"},{"type":"null"}]},"state":{"anyOf":[{"type":"string"},{"type":"null"}]},"confidence":{}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"error":{"type":"string"},"errorCode":{"type":"string"},"data":{"additionalProperties":true,"description":"Planning resolution: `zone` (singular, back-compat) + `zones[]` array with `zone_code`/`zone_name`/`code`/`name`/`category`/`lga`, plus `overlays[]` with `overlay_code`/`overlay_name`/`code`/`name`/`category`/`lga`, plus `lga`/`council`/`state`/`confidence`.","type":"object","properties":{"resolvedAddress":{"additionalProperties":true,"type":"object","properties":{"formatted":{"type":"string"},"lat":{"type":"number"},"lng":{"type":"number"},"source":{"type":"string"}}},"zone":{"additionalProperties":true,"description":"Resolved planning zone.","type":"object","properties":{"zone_code":{"anyOf":[{"type":"string"},{"type":"null"}]},"zone_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"zones":{"type":"array","items":{"additionalProperties":true,"description":"Resolved planning zone.","type":"object","properties":{"zone_code":{"anyOf":[{"type":"string"},{"type":"null"}]},"zone_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"overlays":{"type":"array","items":{"additionalProperties":true,"description":"Planning overlay affecting the location.","type":"object","properties":{"overlay_code":{"anyOf":[{"type":"string"},{"type":"null"}]},"overlay_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]},"council":{"anyOf":[{"type":"string"},{"type":"null"}]},"state":{"anyOf":[{"type":"string"},{"type":"null"}]},"confidence":{}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"error":{"type":"string"},"errorCode":{"type":"string"},"data":{"additionalProperties":true,"description":"Planning resolution: `zone` (singular, back-compat) + `zones[]` array with `zone_code`/`zone_name`/`code`/`name`/`category`/`lga`, plus `overlays[]` with `overlay_code`/`overlay_name`/`code`/`name`/`category`/`lga`, plus `lga`/`council`/`state`/`confidence`.","type":"object","properties":{"resolvedAddress":{"additionalProperties":true,"type":"object","properties":{"formatted":{"type":"string"},"lat":{"type":"number"},"lng":{"type":"number"},"source":{"type":"string"}}},"zone":{"additionalProperties":true,"description":"Resolved planning zone.","type":"object","properties":{"zone_code":{"anyOf":[{"type":"string"},{"type":"null"}]},"zone_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"zones":{"type":"array","items":{"additionalProperties":true,"description":"Resolved planning zone.","type":"object","properties":{"zone_code":{"anyOf":[{"type":"string"},{"type":"null"}]},"zone_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"overlays":{"type":"array","items":{"additionalProperties":true,"description":"Planning overlay affecting the location.","type":"object","properties":{"overlay_code":{"anyOf":[{"type":"string"},{"type":"null"}]},"overlay_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]},"council":{"anyOf":[{"type":"string"},{"type":"null"}]},"state":{"anyOf":[{"type":"string"},{"type":"null"}]},"confidence":{}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiPlanningZones","tags":["Planning"],"summary":"Resolve planning zone, overlays and LGA at a coordinate or address","description":"Resolves the planning zone for a location directly via the orchestrator's live state adapters (WFS / ArcGIS), independent of cadastre parcel resolution. The location can be supplied either as a `lat`/`lng` coordinate (WGS84) or as a street `address`, which is geocoded through the same G-NAF-first resolver `/api/cadastre/by-address` uses (an explicit lat/lng wins if both are given). When an `address` is resolved, the response `data` echoes a `resolvedAddress` `{ formatted, lat, lng, source }`. Returns `{ success, source, data }` where `data` carries the zone `{ code, name, category }`, an `overlays` array of `{ code, name, category }`, the `lga`/`council` name, the `state`, and a `confidence` rating. An unresolvable `address` returns 404 `ADDRESS_NOT_FOUND` (or 503 `ADDRESS_INDEX_UNAVAILABLE` if the address index is down). Out-of-Australia coordinates return 404 `OUT_OF_AUSTRALIA`; coordinates inside Australia with no resolvable zone return 404 `ZONE_NOT_FOUND`. Scope: `planning.read`."}},"/api/planning/scheme":{"get":{"parameters":[{"description":"Street address to resolve to a coordinate via the G-NAF-first resolver (alternative to lat/lng). Must include a leading house number, a recognised street type and a 4-digit postcode, e.g. \"19 Kerferd Rd, Albert Park VIC 3206\".","schema":{"type":"string"},"in":"query","name":"address","required":false},{"description":"Latitude coordinate (WGS84). Required unless `address` is supplied.","schema":{"type":"string"},"in":"query","name":"lat","required":false},{"description":"Longitude coordinate (WGS84). Required unless `address` is supplied.","schema":{"type":"string"},"in":"query","name":"lng","required":false},{"description":"Optional state hint (e.g. VIC) used to disambiguate the address lookup","schema":{"type":"string"},"in":"query","name":"state","required":false},{"description":"Optional lot area (m²) to evaluate parametric setback/FSR formulas","schema":{"type":"string"},"in":"query","name":"lotArea","required":false},{"description":"Optional lot frontage (m) for frontage-dependent provisions","schema":{"type":"string"},"in":"query","name":"frontage","required":false},{"description":"Optional proposed building height (m) for height-dependent setbacks","schema":{"type":"string"},"in":"query","name":"height","required":false},{"description":"Optional proposed number of storeys","schema":{"type":"string"},"in":"query","name":"storeys","required":false}],"responses":{"200":{"description":"Planning scheme resolution with deemed-to-comply provisions for a coordinate or address, with optional source attribution. A parametric rule needing lot dimensions returns 422 `LOT_CHARACTERISTICS_REQUIRED`; upstream failures surface as 5xx `SCHEME_RESOLUTION_FAILED`.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"error":{"type":"string"},"errorCode":{"type":"string"},"data":{"additionalProperties":true,"description":"Planning scheme + deemed-to-comply provisions: `scheme` (name/state/lga), `zone` (code/name/category), `provisions` (setbacks/height/siteCoverPercent/fsr + provenance regulationSourceId/source/regulationReference), optional `resolvedAddress` and `confidence`.","type":"object","properties":{"resolvedAddress":{"additionalProperties":true,"type":"object","properties":{"formatted":{"type":"string"},"lat":{"type":"number"},"lng":{"type":"number"},"source":{"type":"string"}}},"scheme":{"additionalProperties":true,"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"state":{"anyOf":[{"type":"string"},{"type":"null"}]},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"zone":{"additionalProperties":true,"type":"object","properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"provisions":{"additionalProperties":true,"type":"object","properties":{"setbacks":{"additionalProperties":true,"type":"object","properties":{"front":{"anyOf":[{"type":"number"},{"type":"null"}]},"sideLeft":{"anyOf":[{"type":"number"},{"type":"null"}]},"sideRight":{"anyOf":[{"type":"number"},{"type":"null"}]},"rear":{"anyOf":[{"type":"number"},{"type":"null"}]},"secondaryStreet":{"anyOf":[{"type":"number"},{"type":"null"}]}}},"height":{"additionalProperties":true,"type":"object","properties":{"maxBuildingHeightM":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxStoreys":{"anyOf":[{"type":"number"},{"type":"null"}]}}},"siteCoverPercent":{"anyOf":[{"type":"number"},{"type":"null"}]},"fsr":{"anyOf":[{"additionalProperties":true,"type":"object","properties":{"limit":{"anyOf":[{"type":"number"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"confidence":{},"isDefaulted":{"type":"boolean"},"maxFloorAreaM2":{"anyOf":[{"type":"number"},{"type":"null"}]}}},{"type":"null"}]},"regulationSourceId":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"null"}]},"source":{"anyOf":[{"type":"string"},{"type":"null"}]},"regulationReference":{},"isFromSchedule":{},"isDefaulted":{"type":"boolean"},"notes":{}}},"confidence":{}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"error":{"type":"string"},"errorCode":{"type":"string"},"data":{"additionalProperties":true,"description":"Planning scheme + deemed-to-comply provisions: `scheme` (name/state/lga), `zone` (code/name/category), `provisions` (setbacks/height/siteCoverPercent/fsr + provenance regulationSourceId/source/regulationReference), optional `resolvedAddress` and `confidence`.","type":"object","properties":{"resolvedAddress":{"additionalProperties":true,"type":"object","properties":{"formatted":{"type":"string"},"lat":{"type":"number"},"lng":{"type":"number"},"source":{"type":"string"}}},"scheme":{"additionalProperties":true,"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"state":{"anyOf":[{"type":"string"},{"type":"null"}]},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"zone":{"additionalProperties":true,"type":"object","properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"provisions":{"additionalProperties":true,"type":"object","properties":{"setbacks":{"additionalProperties":true,"type":"object","properties":{"front":{"anyOf":[{"type":"number"},{"type":"null"}]},"sideLeft":{"anyOf":[{"type":"number"},{"type":"null"}]},"sideRight":{"anyOf":[{"type":"number"},{"type":"null"}]},"rear":{"anyOf":[{"type":"number"},{"type":"null"}]},"secondaryStreet":{"anyOf":[{"type":"number"},{"type":"null"}]}}},"height":{"additionalProperties":true,"type":"object","properties":{"maxBuildingHeightM":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxStoreys":{"anyOf":[{"type":"number"},{"type":"null"}]}}},"siteCoverPercent":{"anyOf":[{"type":"number"},{"type":"null"}]},"fsr":{"anyOf":[{"additionalProperties":true,"type":"object","properties":{"limit":{"anyOf":[{"type":"number"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"confidence":{},"isDefaulted":{"type":"boolean"},"maxFloorAreaM2":{"anyOf":[{"type":"number"},{"type":"null"}]}}},{"type":"null"}]},"regulationSourceId":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"null"}]},"source":{"anyOf":[{"type":"string"},{"type":"null"}]},"regulationReference":{},"isFromSchedule":{},"isDefaulted":{"type":"boolean"},"notes":{}}},"confidence":{}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"error":{"type":"string"},"errorCode":{"type":"string"},"data":{"additionalProperties":true,"description":"Planning scheme + deemed-to-comply provisions: `scheme` (name/state/lga), `zone` (code/name/category), `provisions` (setbacks/height/siteCoverPercent/fsr + provenance regulationSourceId/source/regulationReference), optional `resolvedAddress` and `confidence`.","type":"object","properties":{"resolvedAddress":{"additionalProperties":true,"type":"object","properties":{"formatted":{"type":"string"},"lat":{"type":"number"},"lng":{"type":"number"},"source":{"type":"string"}}},"scheme":{"additionalProperties":true,"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"state":{"anyOf":[{"type":"string"},{"type":"null"}]},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"zone":{"additionalProperties":true,"type":"object","properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"provisions":{"additionalProperties":true,"type":"object","properties":{"setbacks":{"additionalProperties":true,"type":"object","properties":{"front":{"anyOf":[{"type":"number"},{"type":"null"}]},"sideLeft":{"anyOf":[{"type":"number"},{"type":"null"}]},"sideRight":{"anyOf":[{"type":"number"},{"type":"null"}]},"rear":{"anyOf":[{"type":"number"},{"type":"null"}]},"secondaryStreet":{"anyOf":[{"type":"number"},{"type":"null"}]}}},"height":{"additionalProperties":true,"type":"object","properties":{"maxBuildingHeightM":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxStoreys":{"anyOf":[{"type":"number"},{"type":"null"}]}}},"siteCoverPercent":{"anyOf":[{"type":"number"},{"type":"null"}]},"fsr":{"anyOf":[{"additionalProperties":true,"type":"object","properties":{"limit":{"anyOf":[{"type":"number"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"confidence":{},"isDefaulted":{"type":"boolean"},"maxFloorAreaM2":{"anyOf":[{"type":"number"},{"type":"null"}]}}},{"type":"null"}]},"regulationSourceId":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"null"}]},"source":{"anyOf":[{"type":"string"},{"type":"null"}]},"regulationReference":{},"isFromSchedule":{},"isDefaulted":{"type":"boolean"},"notes":{}}},"confidence":{}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiPlanningScheme","tags":["Planning"],"summary":"Resolve the planning scheme and deemed-to-comply provisions at a coordinate or address","description":"Resolves the planning scheme name and the deemed-to-comply provisions (setbacks, height, storeys, site cover and FSR) for a location directly via the orchestrator's live state adapters (WFS / ArcGIS) plus the national `planning_provisions` engine — independent of cadastre parcel resolution. The location can be supplied either as a `lat`/`lng` coordinate (WGS84) or as a street `address`, which is geocoded through the same G-NAF-first resolver `/api/cadastre/by-address` uses (an explicit lat/lng wins if both are given). When an `address` is resolved, the response `data` echoes a `resolvedAddress` `{ formatted, lat, lng, source }`. Returns `{ success, source, data }` where `data` carries the `scheme` `{ name, state, lga }`, the `zone` `{ code, name, category }`, and `provisions` `{ setbacks, height, siteCoverPercent, fsr, regulationSourceId, source, regulationReference, isFromSchedule, isDefaulted, notes }`. The `regulationSourceId` (FK into `regulation_sources`), `source` and `regulationReference` give the provision provenance. Optional `lotArea`, `frontage`, `height` and `storeys` query params evaluate parametric formulas to concrete numbers for the supplied lot. `isDefaulted: true` means no matching scheme rule was found and conservative defaults were applied. Some residential zones (e.g. NSW R4) use a parametric setback formula that cannot evaluate without lot dimensions; calling without `lotArea`/`frontage` returns 422 `LOT_CHARACTERISTICS_REQUIRED` (supply them to resolve the provisions). An unresolvable `address` returns 404 `ADDRESS_NOT_FOUND` (or 503 `ADDRESS_INDEX_UNAVAILABLE` if the address index is down). Out-of-Australia coordinates return 404 `OUT_OF_AUSTRALIA`; coordinates inside Australia with no resolvable zone return 404 `ZONE_NOT_FOUND`. Scope: `planning.read`."}},"/api/planning/reverse-geocode":{"get":{"operationId":"getApiPlanningReverse-geocode","responses":{"200":{}}}},"/api/planning/address-autocomplete":{"get":{"parameters":[{"description":"Search input for address autocomplete","schema":{"type":"string"},"in":"query","name":"input","required":true},{"description":"Session token for Google Places API","schema":{"type":"string"},"in":"query","name":"sessionToken","required":false},{"description":"Country code (default: AU)","schema":{"type":"string","default":"AU"},"in":"query","name":"countryCode","required":false},{"description":"Preferred state to prioritize results","schema":{"type":"string"},"in":"query","name":"preferredState","required":false}],"responses":{"200":{"description":"Planning-envelope result with optional source attribution. `attribution`/`license` credit the underlying cadastral / planning open data used to build the envelope.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiPlanningAddress-autocomplete","tags":["Planning Envelope"],"summary":"Get address autocomplete suggestions","description":"Returns address suggestions based on partial input. Supports preferredState parameter to prioritize addresses from user's selected state."}},"/api/planning/area-search":{"get":{"operationId":"getApiPlanningArea-search","tags":["Planning Envelope"],"summary":"Resolve a suburb/postcode to area centroids for map browsing","description":"When a precise address autocomplete returns no matches, resolves a bare suburb name or postcode to one or more representative centre points (lat/lng + suggested zoom) drawn on demand from G-NAF, so the client can focus the select-mode map on that area.","responses":{"200":{}}}},"/api/planning/address-validation":{"post":{"parameters":[],"responses":{"200":{"description":"Planning-envelope result with optional source attribution. `attribution`/`license` credit the underlying cadastral / planning open data used to build the envelope.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postApiPlanningAddress-validation","tags":["Planning Envelope"],"summary":"Validate and normalize an address","description":"Validates an address using Google Places API and returns normalized address components with coordinates.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["address"],"properties":{"address":{"description":"Address to validate and normalize","type":"string"},"placeId":{"description":"Google Places place ID for precise lookup","type":"string"}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["address"],"properties":{"address":{"description":"Address to validate and normalize","type":"string"},"placeId":{"description":"Google Places place ID for precise lookup","type":"string"}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["address"],"properties":{"address":{"description":"Address to validate and normalize","type":"string"},"placeId":{"description":"Google Places place ID for precise lookup","type":"string"}},"additionalProperties":false}}}}}},"/api/planning/search-by-lot-plan":{"get":{"parameters":[{"description":"Lot number","schema":{"type":"string"},"in":"query","name":"lot","required":true},{"description":"Plan number","schema":{"type":"string"},"in":"query","name":"plan","required":true},{"description":"Enable VC267 calculation","schema":{"type":"string"},"in":"query","name":"useVC267","required":false},{"description":"VC267 option: A or B","schema":{"type":"string"},"in":"query","name":"vc267Option","required":false},{"description":"Building height in meters","schema":{"type":"string"},"in":"query","name":"buildingHeight","required":false},{"description":"Ground floor height (default: 3.6m)","schema":{"type":"string"},"in":"query","name":"groundFloorHeight","required":false},{"description":"First floor height (default: 6.9m)","schema":{"type":"string"},"in":"query","name":"firstFloorHeight","required":false}],"responses":{"200":{"description":"Planning-envelope result with optional source attribution. `attribution`/`license` credit the underlying cadastral / planning open data used to build the envelope.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiPlanningSearch-by-lot-plan","tags":["Planning Envelope"],"summary":"Search property by lot and plan number","description":"Searches VicMap WFS for property by lot and plan number, then calculates the building envelope. If the zone's deemed-to-comply rule uses a parametric setback formula that needs lot characteristics (area/frontage) and they cannot be derived from the resolved parcel, the endpoint returns 422 `LOT_CHARACTERISTICS_REQUIRED` rather than a 500."}},"/api/planning/envelope":{"get":{"parameters":[{"description":"Latitude coordinate","schema":{"type":"string"},"in":"query","name":"lat","required":true},{"description":"Longitude coordinate","schema":{"type":"string"},"in":"query","name":"lng","required":true},{"description":"Optional address for disambiguation","schema":{"type":"string"},"in":"query","name":"address","required":false},{"description":"Enable VC267 calculation","schema":{"type":"string"},"in":"query","name":"useVC267","required":false},{"description":"VC267 option: A or B","schema":{"type":"string"},"in":"query","name":"vc267Option","required":false},{"description":"Building height in meters","schema":{"type":"string"},"in":"query","name":"buildingHeight","required":false},{"description":"Ground floor height (default: 3.6m)","schema":{"type":"string"},"in":"query","name":"groundFloorHeight","required":false},{"description":"First floor height (default: 6.9m)","schema":{"type":"string"},"in":"query","name":"firstFloorHeight","required":false},{"description":"Set to \"true\" to bypass cache and recalculate","schema":{"type":"string"},"in":"query","name":"bypassCache","required":false}],"responses":{"200":{"description":"Building-envelope calculation with optional source attribution. A parametric rule needing lot dimensions returns 422 `LOT_CHARACTERISTICS_REQUIRED`; missing property returns 404 `PROPERTY_NOT_FOUND`; upstream failures surface as 5xx.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"},"errorType":{"type":"string"},"action":{"type":"string"},"technicalDetails":{"type":"string"},"helpText":{"type":"string"},"validationErrors":{"type":"array","items":{"type":"string"}},"validationWarnings":{"type":"array","items":{"type":"string"}},"data":{"additionalProperties":true,"description":"Building-envelope result: `property`, `planning`, `setbacks`, `envelope` (areas + GeoJSON geometry), `siteCoverage`, plus optional `streetFrontage`/`orientation`/`terrain`/`warnings`/`documents`.","type":"object","properties":{"property":{"additionalProperties":true,"type":"object","properties":{"pfi":{"type":"string"},"address":{"type":"string"},"coordinates":{"additionalProperties":true,"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}}},"lot_number":{"type":"string"},"plan_number":{"type":"string"},"spi":{"type":"string"}}},"planning":{"additionalProperties":true,"type":"object","properties":{"zoneCode":{"type":"string"},"zoneName":{"type":"string"},"zoneStatus":{"type":"string"},"zoneType":{"type":"string"},"lga":{"type":"string"},"overlays":{"type":"array","items":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object","properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]}}}]}},"heightLimit":{"anyOf":[{"type":"number"},{"type":"null"}]},"dataAvailable":{"type":"boolean"},"state":{"type":"string"},"regulationReference":{"type":"string"}}},"setbacks":{"additionalProperties":true,"type":"object","properties":{"street":{"anyOf":[{"type":"number"},{"type":"null"}]},"sideLeft":{"anyOf":[{"type":"number"},{"type":"null"}]},"sideRight":{"anyOf":[{"type":"number"},{"type":"null"}]},"rear":{"anyOf":[{"type":"number"},{"type":"null"}]},"source":{"type":"string"},"state":{"type":"string"},"regulationReference":{"type":"string"},"maxBuildingHeight":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxStoreys":{"anyOf":[{"type":"number"},{"type":"null"}]}}},"envelope":{"additionalProperties":true,"type":"object","properties":{"lotArea":{"anyOf":[{"type":"number"},{"type":"null"}]},"buildableArea":{"anyOf":[{"type":"number"},{"type":"null"}]},"originalArea":{"anyOf":[{"type":"number"},{"type":"null"}]},"areaReduction":{"anyOf":[{"type":"number"},{"type":"null"}]},"isApproximate":{"type":"boolean"}}},"siteCoverage":{"additionalProperties":true,"type":"object","properties":{"maxArea":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxPercentage":{"anyOf":[{"type":"number"},{"type":"null"}]},"buildablePercentage":{"anyOf":[{"type":"number"},{"type":"null"}]},"source":{"type":"string"},"gardenAreaPercent":{"anyOf":[{"type":"number"},{"type":"null"}]},"gardenAreaSqm":{"anyOf":[{"type":"number"},{"type":"null"}]},"gardenAreaSource":{"type":"string"}}},"streetFrontage":{"additionalProperties":true,"type":"object","properties":{}},"orientation":{"additionalProperties":true,"type":"object","properties":{}},"terrain":{"additionalProperties":true,"type":"object","properties":{}},"warnings":{"type":"array","items":{"type":"string"}},"documents":{"additionalProperties":true,"type":"object","properties":{}}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"},"errorType":{"type":"string"},"action":{"type":"string"},"technicalDetails":{"type":"string"},"helpText":{"type":"string"},"validationErrors":{"type":"array","items":{"type":"string"}},"validationWarnings":{"type":"array","items":{"type":"string"}},"data":{"additionalProperties":true,"description":"Building-envelope result: `property`, `planning`, `setbacks`, `envelope` (areas + GeoJSON geometry), `siteCoverage`, plus optional `streetFrontage`/`orientation`/`terrain`/`warnings`/`documents`.","type":"object","properties":{"property":{"additionalProperties":true,"type":"object","properties":{"pfi":{"type":"string"},"address":{"type":"string"},"coordinates":{"additionalProperties":true,"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}}},"lot_number":{"type":"string"},"plan_number":{"type":"string"},"spi":{"type":"string"}}},"planning":{"additionalProperties":true,"type":"object","properties":{"zoneCode":{"type":"string"},"zoneName":{"type":"string"},"zoneStatus":{"type":"string"},"zoneType":{"type":"string"},"lga":{"type":"string"},"overlays":{"type":"array","items":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object","properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]}}}]}},"heightLimit":{"anyOf":[{"type":"number"},{"type":"null"}]},"dataAvailable":{"type":"boolean"},"state":{"type":"string"},"regulationReference":{"type":"string"}}},"setbacks":{"additionalProperties":true,"type":"object","properties":{"street":{"anyOf":[{"type":"number"},{"type":"null"}]},"sideLeft":{"anyOf":[{"type":"number"},{"type":"null"}]},"sideRight":{"anyOf":[{"type":"number"},{"type":"null"}]},"rear":{"anyOf":[{"type":"number"},{"type":"null"}]},"source":{"type":"string"},"state":{"type":"string"},"regulationReference":{"type":"string"},"maxBuildingHeight":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxStoreys":{"anyOf":[{"type":"number"},{"type":"null"}]}}},"envelope":{"additionalProperties":true,"type":"object","properties":{"lotArea":{"anyOf":[{"type":"number"},{"type":"null"}]},"buildableArea":{"anyOf":[{"type":"number"},{"type":"null"}]},"originalArea":{"anyOf":[{"type":"number"},{"type":"null"}]},"areaReduction":{"anyOf":[{"type":"number"},{"type":"null"}]},"isApproximate":{"type":"boolean"}}},"siteCoverage":{"additionalProperties":true,"type":"object","properties":{"maxArea":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxPercentage":{"anyOf":[{"type":"number"},{"type":"null"}]},"buildablePercentage":{"anyOf":[{"type":"number"},{"type":"null"}]},"source":{"type":"string"},"gardenAreaPercent":{"anyOf":[{"type":"number"},{"type":"null"}]},"gardenAreaSqm":{"anyOf":[{"type":"number"},{"type":"null"}]},"gardenAreaSource":{"type":"string"}}},"streetFrontage":{"additionalProperties":true,"type":"object","properties":{}},"orientation":{"additionalProperties":true,"type":"object","properties":{}},"terrain":{"additionalProperties":true,"type":"object","properties":{}},"warnings":{"type":"array","items":{"type":"string"}},"documents":{"additionalProperties":true,"type":"object","properties":{}}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"},"errorType":{"type":"string"},"action":{"type":"string"},"technicalDetails":{"type":"string"},"helpText":{"type":"string"},"validationErrors":{"type":"array","items":{"type":"string"}},"validationWarnings":{"type":"array","items":{"type":"string"}},"data":{"additionalProperties":true,"description":"Building-envelope result: `property`, `planning`, `setbacks`, `envelope` (areas + GeoJSON geometry), `siteCoverage`, plus optional `streetFrontage`/`orientation`/`terrain`/`warnings`/`documents`.","type":"object","properties":{"property":{"additionalProperties":true,"type":"object","properties":{"pfi":{"type":"string"},"address":{"type":"string"},"coordinates":{"additionalProperties":true,"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}}},"lot_number":{"type":"string"},"plan_number":{"type":"string"},"spi":{"type":"string"}}},"planning":{"additionalProperties":true,"type":"object","properties":{"zoneCode":{"type":"string"},"zoneName":{"type":"string"},"zoneStatus":{"type":"string"},"zoneType":{"type":"string"},"lga":{"type":"string"},"overlays":{"type":"array","items":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object","properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"lga":{"anyOf":[{"type":"string"},{"type":"null"}]}}}]}},"heightLimit":{"anyOf":[{"type":"number"},{"type":"null"}]},"dataAvailable":{"type":"boolean"},"state":{"type":"string"},"regulationReference":{"type":"string"}}},"setbacks":{"additionalProperties":true,"type":"object","properties":{"street":{"anyOf":[{"type":"number"},{"type":"null"}]},"sideLeft":{"anyOf":[{"type":"number"},{"type":"null"}]},"sideRight":{"anyOf":[{"type":"number"},{"type":"null"}]},"rear":{"anyOf":[{"type":"number"},{"type":"null"}]},"source":{"type":"string"},"state":{"type":"string"},"regulationReference":{"type":"string"},"maxBuildingHeight":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxStoreys":{"anyOf":[{"type":"number"},{"type":"null"}]}}},"envelope":{"additionalProperties":true,"type":"object","properties":{"lotArea":{"anyOf":[{"type":"number"},{"type":"null"}]},"buildableArea":{"anyOf":[{"type":"number"},{"type":"null"}]},"originalArea":{"anyOf":[{"type":"number"},{"type":"null"}]},"areaReduction":{"anyOf":[{"type":"number"},{"type":"null"}]},"isApproximate":{"type":"boolean"}}},"siteCoverage":{"additionalProperties":true,"type":"object","properties":{"maxArea":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxPercentage":{"anyOf":[{"type":"number"},{"type":"null"}]},"buildablePercentage":{"anyOf":[{"type":"number"},{"type":"null"}]},"source":{"type":"string"},"gardenAreaPercent":{"anyOf":[{"type":"number"},{"type":"null"}]},"gardenAreaSqm":{"anyOf":[{"type":"number"},{"type":"null"}]},"gardenAreaSource":{"type":"string"}}},"streetFrontage":{"additionalProperties":true,"type":"object","properties":{}},"orientation":{"additionalProperties":true,"type":"object","properties":{}},"terrain":{"additionalProperties":true,"type":"object","properties":{}},"warnings":{"type":"array","items":{"type":"string"}},"documents":{"additionalProperties":true,"type":"object","properties":{}}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiPlanningEnvelope","tags":["Planning Envelope"],"summary":"Get building envelope by coordinates","description":"Calculates building envelope for a property at the specified coordinates. Supports all 8 Australian states via multi-state cadastral integration. If the zone's deemed-to-comply rule uses a parametric setback formula that needs lot characteristics (area/frontage) and they cannot be derived from the resolved parcel, the endpoint returns 422 `LOT_CHARACTERISTICS_REQUIRED` rather than a 500."}},"/api/planning/envelope/geometry":{"get":{"parameters":[{"description":"Latitude coordinate","schema":{"type":"string"},"in":"query","name":"lat","required":true},{"description":"Longitude coordinate","schema":{"type":"string"},"in":"query","name":"lng","required":true},{"description":"Optional address for disambiguation","schema":{"type":"string"},"in":"query","name":"address","required":false}],"operationId":"getApiPlanningEnvelopeGeometry","tags":["Planning Envelope"],"summary":"Resolve parcel boundary geometry only (fast-path)","description":"Resolves ONLY the cadastral parcel boundary for a coordinate/address — no zone, setback, terrain, site-coverage or buildable-envelope calculation. Lets a client paint the selected lot outline immediately while the full `/envelope` calc runs. Returns 404 on any miss so callers fall back to `/envelope` unchanged.","responses":{"200":{}}}},"/api/planning/envelope/bounds":{"get":{"parameters":[{"description":"North bounding coordinate","schema":{"type":"string"},"in":"query","name":"north","required":true},{"description":"South bounding coordinate","schema":{"type":"string"},"in":"query","name":"south","required":true},{"description":"East bounding coordinate","schema":{"type":"string"},"in":"query","name":"east","required":true},{"description":"West bounding coordinate","schema":{"type":"string"},"in":"query","name":"west","required":true},{"description":"Max results (default: 50, max: 200)","schema":{"type":"string","default":"50"},"in":"query","name":"limit","required":false}],"responses":{"200":{"description":"Planning-envelope result with optional source attribution. `attribution`/`license` credit the underlying cadastral / planning open data used to build the envelope.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiPlanningEnvelopeBounds","tags":["Planning Envelope"],"summary":"Get cadastral boundaries within bounding box","description":"Fetches cadastral property boundaries within the specified bounding box. Returns GeoJSON FeatureCollection."}},"/api/planning/envelope/{pfi}":{"get":{"parameters":[{"description":"Property Feature Identifier","schema":{"type":"string"},"in":"path","name":"pfi","required":true},{"description":"Latitude for state detection","schema":{"type":"string"},"in":"query","name":"lat","required":false},{"description":"Longitude for state detection","schema":{"type":"string"},"in":"query","name":"lng","required":false},{"description":"State code (VIC, NSW, QLD, etc.) to pick the cadastral adapter","schema":{"type":"string"},"in":"query","name":"state","required":false},{"description":"Override address","schema":{"type":"string"},"in":"query","name":"address","required":false},{"description":"Enable VC267 calculation","schema":{"type":"string"},"in":"query","name":"useVC267","required":false},{"description":"VC267 option: A or B","schema":{"type":"string"},"in":"query","name":"vc267Option","required":false},{"description":"Building height in meters","schema":{"type":"string"},"in":"query","name":"buildingHeight","required":false},{"description":"Ground floor height (default: 3.6m)","schema":{"type":"string"},"in":"query","name":"groundFloorHeight","required":false},{"description":"First floor height (default: 6.9m)","schema":{"type":"string"},"in":"query","name":"firstFloorHeight","required":false}],"responses":{"200":{"description":"Planning-envelope result with optional source attribution. `attribution`/`license` credit the underlying cadastral / planning open data used to build the envelope.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiPlanningEnvelopeByPfi","tags":["Planning Envelope"],"summary":"Get building envelope by PFI","description":"Calculates building envelope for a property identified by its PFI. Supports synthetic PFIs from Google geocoding with coordinates for reverse lookup. If the zone's deemed-to-comply rule uses a parametric setback formula that needs lot characteristics (area/frontage) and they cannot be derived from the resolved parcel, the endpoint returns 422 `LOT_CHARACTERISTICS_REQUIRED` rather than a 500."}},"/api/planning/envelope/{pfi}/neighbors":{"get":{"parameters":[{"description":"Property Feature Identifier","schema":{"type":"string"},"in":"path","name":"pfi","required":true},{"description":"Latitude coordinate","schema":{"type":"string"},"in":"query","name":"lat","required":false},{"description":"Longitude coordinate","schema":{"type":"string"},"in":"query","name":"lng","required":false},{"description":"Override street front bearing","schema":{"type":"string"},"in":"query","name":"streetFrontBearing","required":false},{"description":"State code (VIC, NSW, QLD, etc.)","schema":{"type":"string"},"in":"query","name":"state","required":false}],"responses":{"200":{"description":"Planning-envelope result with optional source attribution. `attribution`/`license` credit the underlying cadastral / planning open data used to build the envelope.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiPlanningEnvelopeByPfiNeighbors","tags":["Planning Envelope"],"summary":"Discover adjacent properties for superlot consolidation","description":"Discovers left and right neighbor properties for superlot consolidation. Uses boundary classification and street front detection."}},"/api/planning/envelope/superlot":{"post":{"parameters":[],"responses":{"200":{"description":"Planning-envelope result with optional source attribution. `attribution`/`license` credit the underlying cadastral / planning open data used to build the envelope.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postApiPlanningEnvelopeSuperlot","tags":["Planning Envelope"],"summary":"Calculate VC267 envelope for consolidated superlot","description":"Calculates building envelope for a consolidated superlot (2-3 adjacent properties). Handles zone conflicts and merged boundary geometry. If the zone's deemed-to-comply rule uses a parametric setback formula that needs lot characteristics (area/frontage) and they cannot be derived from the merged parcel, the endpoint returns 422 `LOT_CHARACTERISTICS_REQUIRED` rather than a 500.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["mainPfi"],"properties":{"mainPfi":{"description":"Main property PFI","type":"string"},"leftPfi":{"description":"Left neighbor PFI","type":"string"},"rightPfi":{"description":"Right neighbor PFI","type":"string"},"vc267Option":{"description":"VC267 option: A or B","type":"string"},"buildingHeight":{"description":"Building height in meters","type":"number"},"groundFloorHeight":{"description":"Ground floor height","type":"number"},"firstFloorHeight":{"description":"First floor height","type":"number"},"state":{"description":"State code (VIC, NSW, QLD, etc.)","type":"string"}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["mainPfi"],"properties":{"mainPfi":{"description":"Main property PFI","type":"string"},"leftPfi":{"description":"Left neighbor PFI","type":"string"},"rightPfi":{"description":"Right neighbor PFI","type":"string"},"vc267Option":{"description":"VC267 option: A or B","type":"string"},"buildingHeight":{"description":"Building height in meters","type":"number"},"groundFloorHeight":{"description":"Ground floor height","type":"number"},"firstFloorHeight":{"description":"First floor height","type":"number"},"state":{"description":"State code (VIC, NSW, QLD, etc.)","type":"string"}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["mainPfi"],"properties":{"mainPfi":{"description":"Main property PFI","type":"string"},"leftPfi":{"description":"Left neighbor PFI","type":"string"},"rightPfi":{"description":"Right neighbor PFI","type":"string"},"vc267Option":{"description":"VC267 option: A or B","type":"string"},"buildingHeight":{"description":"Building height in meters","type":"number"},"groundFloorHeight":{"description":"Ground floor height","type":"number"},"firstFloorHeight":{"description":"First floor height","type":"number"},"state":{"description":"State code (VIC, NSW, QLD, etc.)","type":"string"}},"additionalProperties":false}}}}}},"/api/building-footprints/for-lot":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"lat","required":true},{"schema":{"type":"string"},"in":"query","name":"lng","required":true},{"schema":{"type":"string"},"in":"query","name":"radius","required":false},{"schema":{"type":"string"},"in":"query","name":"pfi","required":false}],"responses":{"200":{"description":"Footprints intersecting the subject parcel plus nearby-context stats, with source attribution for the Microsoft / VicMap building data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"subjectFootprints":{"type":"array","items":{"additionalProperties":true,"type":"object","required":["id","pfi","areaSqm"],"properties":{"id":{"type":"number"},"pfi":{"anyOf":[{"type":"string"},{"type":"null"}]},"areaSqm":{"type":"number"}}}},"subjectTotalAreaSqm":{"type":"number"},"nearbyCount":{"type":"number"},"nearbyAvgAreaSqm":{"anyOf":[{"type":"number"},{"type":"null"}]},"searchRadiusM":{"type":"number"},"available":{"type":"boolean"},"matchMode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"subjectFootprints":{"type":"array","items":{"additionalProperties":true,"type":"object","required":["id","pfi","areaSqm"],"properties":{"id":{"type":"number"},"pfi":{"anyOf":[{"type":"string"},{"type":"null"}]},"areaSqm":{"type":"number"}}}},"subjectTotalAreaSqm":{"type":"number"},"nearbyCount":{"type":"number"},"nearbyAvgAreaSqm":{"anyOf":[{"type":"number"},{"type":"null"}]},"searchRadiusM":{"type":"number"},"available":{"type":"boolean"},"matchMode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"subjectFootprints":{"type":"array","items":{"additionalProperties":true,"type":"object","required":["id","pfi","areaSqm"],"properties":{"id":{"type":"number"},"pfi":{"anyOf":[{"type":"string"},{"type":"null"}]},"areaSqm":{"type":"number"}}}},"subjectTotalAreaSqm":{"type":"number"},"nearbyCount":{"type":"number"},"nearbyAvgAreaSqm":{"anyOf":[{"type":"number"},{"type":"null"}]},"searchRadiusM":{"type":"number"},"available":{"type":"boolean"},"matchMode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getApiBuilding-footprintsFor-lot"}},"/api/property-sales/lot":{"get":{"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":100},"in":"query","name":"suburb","required":true},{"schema":{"type":"string","minLength":2,"maxLength":4},"in":"query","name":"state","required":false},{"schema":{"type":"string","maxLength":32},"in":"query","name":"pfi","required":false}],"operationId":"getApiProperty-salesLot","responses":{"200":{}}}},"/api/suitability/score/{homeId}":{"get":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"homeId","required":true}],"operationId":"getApiSuitabilityScoreByHomeId","tags":["Suitability"],"summary":"Get suitability score for a home","description":"Calculate and return a suitability score for a specific home based on its attributes (requires authentication)","responses":{"200":{}}}},"/api/suitability/bulk-scores":{"get":{"parameters":[{"description":"Comma-separated list of home record IDs","schema":{"type":"string"},"in":"query","name":"homeIds","required":true}],"operationId":"getApiSuitabilityBulk-scores","tags":["Suitability"],"summary":"Get bulk suitability scores","description":"Calculate and return suitability scores for multiple homes (requires authentication)","responses":{"200":{}}}},"/api/development-applications/nearby":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"lat","required":true},{"schema":{"type":"string"},"in":"query","name":"lng","required":true},{"schema":{"type":"string"},"in":"query","name":"radius","required":false},{"schema":{"type":"string"},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"query","name":"status","required":false},{"schema":{"type":"string"},"in":"query","name":"daysBack","required":false},{"schema":{"type":"string"},"in":"query","name":"fresh","required":false}],"operationId":"getApiDevelopment-applicationsNearby","tags":["Development Applications"],"summary":"Get development applications near a point","responses":{"200":{}}}},"/api/development-applications/stats":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"lat","required":true},{"schema":{"type":"string"},"in":"query","name":"lng","required":true},{"schema":{"type":"string"},"in":"query","name":"radius","required":false},{"schema":{"type":"string"},"in":"query","name":"fresh","required":false}],"operationId":"getApiDevelopment-applicationsStats","tags":["Development Applications"],"summary":"Get development application statistics near a point","responses":{"200":{}}}},"/api/development-applications/lga/{lgaCode}":{"get":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"lgaCode","required":true},{"schema":{"type":"string"},"in":"query","name":"status","required":false},{"schema":{"type":"string"},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"query","name":"daysBack","required":false}],"operationId":"getApiDevelopment-applicationsLgaByLgaCode","tags":["Development Applications"],"summary":"Get development applications by LGA","responses":{"200":{}}}},"/api/development-applications/{id}":{"get":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"operationId":"getApiDevelopment-applicationsById","tags":["Development Applications"],"summary":"Get a single development application by ID","responses":{"200":{}}}},"/api/development-applications/fetch":{"post":{"parameters":[],"operationId":"postApiDevelopment-applicationsFetch","tags":["Development Applications"],"summary":"Trigger DA fetch from external source (admin)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"state":{"type":"string"},"lgaCode":{"type":"string"},"daysBack":{"type":"number"},"maxResults":{"type":"number"}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","properties":{"state":{"type":"string"},"lgaCode":{"type":"string"},"daysBack":{"type":"number"},"maxResults":{"type":"number"}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","properties":{"state":{"type":"string"},"lgaCode":{"type":"string"},"daysBack":{"type":"number"},"maxResults":{"type":"number"}},"additionalProperties":false}}}},"responses":{"200":{}}}},"/api/planning-breakdown/":{"post":{"parameters":[],"operationId":"postApiPlanning-breakdown","tags":["Planning"],"summary":"Compute zone/overlay area breakdown across multiple sites","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["propertyIds"],"properties":{"propertyIds":{"type":"array","items":{"anyOf":[{"type":"number"},{"type":"string"}]}}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["propertyIds"],"properties":{"propertyIds":{"type":"array","items":{"anyOf":[{"type":"number"},{"type":"string"}]}}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["propertyIds"],"properties":{"propertyIds":{"type":"array","items":{"anyOf":[{"type":"number"},{"type":"string"}]}}},"additionalProperties":false}}}},"responses":{"200":{}}}},"/api/livability/":{"post":{"parameters":[],"operationId":"postApiLivability","tags":["Livability"],"summary":"Compute solar-orientation livability score for a home on a lot","description":"Given a home room layout and a lot orientation (`lotBearing` = bearing from street toward the rear yard, `drivewaySide`, `isMirrored`), returns per-room compass orientation + solar exposure, an overall 0–100 livability score with category breakdown and setback optimisation, and an orientation summary. Pure compute — no site data required. Scope: `livability.read`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["lotBearing","rooms"],"properties":{"lotBearing":{"type":"number"},"drivewaySide":{"anyOf":[{"const":"left","type":"string"},{"const":"right","type":"string"}]},"isMirrored":{"type":"boolean"},"rooms":{"type":"array","items":{"type":"object","required":["roomName"],"properties":{"roomName":{"type":"string"},"floor":{"type":"string"},"position":{"anyOf":[{"type":"string"},{"type":"null"}]},"wallDirection":{"anyOf":[{"type":"string"},{"type":"null"}]},"visionWindowDirection":{"anyOf":[{"type":"string"},{"type":"null"}]},"windowCount":{"anyOf":[{"type":"number"},{"type":"null"}]}}}}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["lotBearing","rooms"],"properties":{"lotBearing":{"type":"number"},"drivewaySide":{"anyOf":[{"const":"left","type":"string"},{"const":"right","type":"string"}]},"isMirrored":{"type":"boolean"},"rooms":{"type":"array","items":{"type":"object","required":["roomName"],"properties":{"roomName":{"type":"string"},"floor":{"type":"string"},"position":{"anyOf":[{"type":"string"},{"type":"null"}]},"wallDirection":{"anyOf":[{"type":"string"},{"type":"null"}]},"visionWindowDirection":{"anyOf":[{"type":"string"},{"type":"null"}]},"windowCount":{"anyOf":[{"type":"number"},{"type":"null"}]}}}}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["lotBearing","rooms"],"properties":{"lotBearing":{"type":"number"},"drivewaySide":{"anyOf":[{"const":"left","type":"string"},{"const":"right","type":"string"}]},"isMirrored":{"type":"boolean"},"rooms":{"type":"array","items":{"type":"object","required":["roomName"],"properties":{"roomName":{"type":"string"},"floor":{"type":"string"},"position":{"anyOf":[{"type":"string"},{"type":"null"}]},"wallDirection":{"anyOf":[{"type":"string"},{"type":"null"}]},"visionWindowDirection":{"anyOf":[{"type":"string"},{"type":"null"}]},"windowCount":{"anyOf":[{"type":"number"},{"type":"null"}]}}}}},"additionalProperties":false}}}},"responses":{"200":{}}}},"/api/elevation/":{"post":{"parameters":[],"operationId":"postApiElevation","tags":["Elevation"],"summary":"Raw elevation / terrain statistics for a site polygon","description":"Returns terrain statistics (min/max elevation, total fall, average slope, fall direction/aspect) for a GeoJSON Polygon/MultiPolygon, computed from the R2 contour mirror. Set `includeContours:true` to also receive the raw contour line features (each carrying a normalised `elevation_ahd` in metres AHD). Mirror coverage is VIC-only today; other states return `data.available:false`. Scope: `elevation.read`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["state","polygon"],"properties":{"state":{"type":"string"},"polygon":{},"includeContours":{"type":"boolean"}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["state","polygon"],"properties":{"state":{"type":"string"},"polygon":{},"includeContours":{"type":"boolean"}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["state","polygon"],"properties":{"state":{"type":"string"},"polygon":{},"includeContours":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{}}}},"/api/imagery/aerial/{z}/{x}/{y}":{"get":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"z","required":true},{"schema":{"type":"string"},"in":"path","name":"x","required":true},{"schema":{"type":"string"},"in":"path","name":"y","required":true}],"operationId":"getApiImageryAerialByZByXByY","tags":["Imagery"],"summary":"Open-data aerial/satellite imagery XYZ tile","description":"Proxies NSW SIX Maps open-data aerial imagery (CC BY 4.0) as standard slippy {z}/{x}/{y} tiles. SSRF-safe (fixed upstream host + validated integer coordinates). Served `Cache-Control: private` and never mirrored to R2, honouring the platform’s no-persistent-tile-cache rule. Mapbox/Google satellite and licensed MetroMap imagery are intentionally NOT exposed here. Attribution is returned in the `X-Imagery-Attribution`/`X-Imagery-License` headers. Scope: `imagery.read`.","responses":{"200":{}}}},"/api/prometheus/metrics":{"get":{"operationId":"getApiPrometheusMetrics","tags":["Metrics"],"summary":"Prometheus metrics endpoint","description":"Returns metrics in Prometheus exposition format for scraping. Set PROMETHEUS_METRICS_TOKEN env var to require authentication.","responses":{"200":{}}}},"/api/prometheus/health":{"get":{"operationId":"getApiPrometheusHealth","tags":["Metrics"],"summary":"Prometheus health check","responses":{"200":{}}}},"/api/observability/":{"get":{"operationId":"getApiObservability","tags":["Metrics"],"summary":"Get API metrics summary","description":"Returns comprehensive API performance metrics including request counts, latencies, and error rates","responses":{"200":{}}}},"/api/observability/reset":{"post":{"operationId":"postApiObservabilityReset","tags":["Metrics"],"summary":"Reset metrics","description":"Clears all collected metrics data","responses":{"200":{}}}},"/api/metrics/zone-mapping":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"state","required":false},{"schema":{"type":"string"},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"query","name":"includeTimeSeries","required":false}],"operationId":"getApiMetricsZone-mapping","tags":["Metrics"],"summary":"Get zone mapping metrics","description":"Get zone mapping statistics, unmapped zones, and recommendations for prioritization. Public endpoint.","responses":{"200":{}}}},"/api/metrics/zone-mapping/reset":{"post":{"operationId":"postApiMetricsZone-mappingReset","tags":["Metrics"],"summary":"Reset zone mapping metrics","description":"Reset all zone mapping metrics (admin only). Used for testing/debugging purposes.","responses":{"200":{}}}},"/api/system-status/public":{"get":{"operationId":"getApiSystem-statusPublic","tags":["Health"],"summary":"Public system status - sanitized health data","responses":{"200":{}}}},"/api/system-status/test-alert":{"post":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"key","required":true}],"operationId":"postApiSystem-statusTest-alert","tags":["Health"],"summary":"Test alert system (requires ALERT_TEST_KEY)","responses":{"200":{}}}},"/api/status/":{"get":{"operationId":"getApiStatus","summary":"API service status","description":"Live health of each scope group (cadastre, planning, …) plus active and recent incidents. Updated per request from the in-process Prometheus registry — fine as a status indicator, see docs/API_VERSIONING_POLICY.md §7 for the SLO contract.","tags":["status"],"responses":{"200":{}}}},"/api/status/groups":{"get":{"operationId":"getApiStatusGroups","summary":"Published status groups + SLO targets","description":"Static catalogue of the groups the status page reports on.","tags":["status"],"responses":{"200":{}}}},"/api/status/coverage":{"get":{"operationId":"getApiStatusCoverage","summary":"Per-state dataset coverage + freshness","description":"Authoritative, per-state-per-dataset coverage map for the tenant API. For each dataset family (cadastre, planning_zone, planning_overlay, spear, demographics, suburb_trends, suburb_rentals) reports whether the dataset is `live` for a state and its `lastRefresh` timestamp where known. Datasets with a live adapter fallback (cadastre/planning) carry `liveFallback: true`, meaning an absent R2 snapshot does NOT imply no coverage. No auth required. Always returns 200 — individual sources degrade to `live: false` rather than failing the whole payload.","tags":["status"],"responses":{"200":{}}}},"/api/status/html":{"get":{"operationId":"getApiStatusHtml","responses":{"200":{}}}},"/api/me/":{"get":{"operationId":"getApiMe","tags":["developers"],"summary":"Caller key + scopes","description":"Returns the API key that signed this request, its scopes, and quota config.","responses":{"200":{}}}},"/api/me/allowed-origins":{"patch":{"parameters":[],"operationId":"patchApiMeAllowed-origins","tags":["developers"],"summary":"Update the caller key embed allowed-origins","description":"Self-service edit of the optional HTTP-referrer allowlist enforced by the embeddable map (/embed/map). Send a list of origins (e.g. \"https://example.com\") or null to remove the restriction. Origins are normalised to scheme://host[:port]; invalid entries are rejected. Maximum 50 origins.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["allowedOrigins"],"properties":{"allowedOrigins":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["allowedOrigins"],"properties":{"allowedOrigins":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["allowedOrigins"],"properties":{"allowedOrigins":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]}},"additionalProperties":false}}}},"responses":{"200":{}}}},"/api/me/rate-limit":{"get":{"operationId":"getApiMeRate-limit","tags":["developers"],"summary":"Current rate-limit headroom","description":"Live counter for the in-progress 60-second bucket. Mirrors the same bucket-key scheme the guard uses to actually enforce the limit.","responses":{"200":{}}}},"/api/me/usage":{"get":{"parameters":[{"description":"YYYY-MM-DD","schema":{"type":"string"},"in":"query","name":"from","required":false},{"description":"YYYY-MM-DD","schema":{"type":"string"},"in":"query","name":"to","required":false}],"operationId":"getApiMeUsage","tags":["developers"],"summary":"Per-day, per-scope usage for the caller","description":"Defaults to the last 30 days; max window is 90 days. Includes the live Redis hot buffer for today.","responses":{"200":{}}}},"/api/developers/":{"get":{"operationId":"getApiDevelopers","tags":["developers"],"summary":"Developer portal landing page","description":"Single-page HTML. Paste your API key in the browser; nothing is ever sent off-origin. Operators route developers.insitive.com.au/ → this endpoint via Cloudflare.","responses":{"200":{}}}},"/api/internal/embed-origins":{"get":{"operationId":"getApiInternalEmbed-origins","tags":["internal"],"summary":"Service-auth read of a key embed allowed-origins (not metered)","description":"Internal-only: lets the App service read the authoritative allowed_origins for a customer key from the canonical API DB without consuming the customer key quota. Gated by the service key in x-insitive-service-auth; subject key forwarded as the Bearer token.","responses":{"200":{}}}},"/api/webhooks/":{"get":{"operationId":"getApiWebhooks","summary":"List webhook subscriptions for the caller.","description":"Returns every webhook endpoint registered by the caller key. Does NOT include the raw signing secret — only `secretPrefix`. Use `POST /webhooks/:id/rotate` to mint a fresh secret if the original is lost.","responses":{"200":{}}},"post":{"parameters":[],"operationId":"postApiWebhooks","summary":"Register a webhook subscription.","description":"Creates a webhook subscription. The response includes a one-time plaintext `secret` (HMAC-SHA-256 signing key) — store it; subsequent reads only return the `secretPrefix` display token. Delivery payloads carry `X-Insitive-Signature: sha256=<hex>` computed over the raw body.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url","events"],"properties":{"url":{"description":"HTTPS URL the dispatcher will POST signed payloads to.","type":"string"},"events":{"minItems":1,"maxItems":16,"type":"array","items":{"description":"One of: vision-analysis.completed, vision-analysis.failed","minLength":3,"maxLength":64,"type":"string"}},"description":{"maxLength":500,"type":"string"}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["url","events"],"properties":{"url":{"description":"HTTPS URL the dispatcher will POST signed payloads to.","type":"string"},"events":{"minItems":1,"maxItems":16,"type":"array","items":{"description":"One of: vision-analysis.completed, vision-analysis.failed","minLength":3,"maxLength":64,"type":"string"}},"description":{"maxLength":500,"type":"string"}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["url","events"],"properties":{"url":{"description":"HTTPS URL the dispatcher will POST signed payloads to.","type":"string"},"events":{"minItems":1,"maxItems":16,"type":"array","items":{"description":"One of: vision-analysis.completed, vision-analysis.failed","minLength":3,"maxLength":64,"type":"string"}},"description":{"maxLength":500,"type":"string"}},"additionalProperties":false}}}},"responses":{"200":{}}}},"/api/webhooks/{id}":{"get":{"operationId":"getApiWebhooksById","summary":"Read one webhook subscription.","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{}}},"patch":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"operationId":"patchApiWebhooksById","summary":"Update a webhook subscription (URL / events / description / active).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"events":{"minItems":1,"maxItems":16,"type":"array","items":{"description":"One of: vision-analysis.completed, vision-analysis.failed","minLength":3,"maxLength":64,"type":"string"}},"description":{"maxLength":500,"type":"string"},"active":{"type":"boolean"}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","properties":{"url":{"type":"string"},"events":{"minItems":1,"maxItems":16,"type":"array","items":{"description":"One of: vision-analysis.completed, vision-analysis.failed","minLength":3,"maxLength":64,"type":"string"}},"description":{"maxLength":500,"type":"string"},"active":{"type":"boolean"}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","properties":{"url":{"type":"string"},"events":{"minItems":1,"maxItems":16,"type":"array","items":{"description":"One of: vision-analysis.completed, vision-analysis.failed","minLength":3,"maxLength":64,"type":"string"}},"description":{"maxLength":500,"type":"string"},"active":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{}}},"delete":{"operationId":"deleteApiWebhooksById","summary":"Delete a webhook subscription.","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{}}}},"/api/webhooks/{id}/rotate":{"post":{"operationId":"postApiWebhooksByIdRotate","summary":"Mint a fresh signing secret for a webhook subscription.","description":"Replaces the endpoint signing secret. The new plaintext secret is returned exactly once; subsequent reads only show the new `secretPrefix`. The old secret stops working immediately.","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{}}}},"/api/demo/":{"get":{"operationId":"getApiDemo","tags":["Developers"],"summary":"Static sample response for unauthenticated callers","description":"Returns a hard-coded snapshot for 101 Collins Street, Melbourne. Each block (risk, demographics, locality) uses the SAME response envelope and field names as the live endpoint it represents, so prospects can prototype against the real response contract without an API key. Anonymous, edge-cached, no upstream calls. x-insitive-demo-version response header bumps when live shapes change.","responses":{"200":{}}}},"/api/pii/health":{"get":{"operationId":"getApiPiiHealth","responses":{"200":{}}}},"/api/pii/classes":{"get":{"operationId":"getApiPiiClasses","responses":{"200":{}}}},"/api/pii/scan":{"post":{"parameters":[],"operationId":"postApiPiiScan","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"maxLength":1000000,"type":"string"},"enabledTypes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["text"],"properties":{"text":{"maxLength":1000000,"type":"string"},"enabledTypes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["text"],"properties":{"text":{"maxLength":1000000,"type":"string"},"enabledTypes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}}},"responses":{"200":{}}}},"/api/pii/mask":{"post":{"parameters":[],"operationId":"postApiPiiMask","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"maxLength":1000000,"type":"string"},"enabledTypes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["text"],"properties":{"text":{"maxLength":1000000,"type":"string"},"enabledTypes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["text"],"properties":{"text":{"maxLength":1000000,"type":"string"},"enabledTypes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}}},"responses":{"200":{}}}},"/api/pii/anonymize":{"post":{"parameters":[],"operationId":"postApiPiiAnonymize","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"maxLength":1000000,"type":"string"},"appID":{"type":"string"},"docID":{"type":"string"},"enabledTypes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["text"],"properties":{"text":{"maxLength":1000000,"type":"string"},"appID":{"type":"string"},"docID":{"type":"string"},"enabledTypes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["text"],"properties":{"text":{"maxLength":1000000,"type":"string"},"appID":{"type":"string"},"docID":{"type":"string"},"enabledTypes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}}},"responses":{"200":{}}}},"/api/pii/hybrid-anonymize":{"post":{"parameters":[],"operationId":"postApiPiiHybrid-anonymize","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"maxLength":1000000,"type":"string"},"appID":{"type":"string"},"docID":{"type":"string"}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["text"],"properties":{"text":{"maxLength":1000000,"type":"string"},"appID":{"type":"string"},"docID":{"type":"string"}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["text"],"properties":{"text":{"maxLength":1000000,"type":"string"},"appID":{"type":"string"},"docID":{"type":"string"}},"additionalProperties":false}}}},"responses":{"200":{}}}},"/api/pii/deanonymize":{"post":{"parameters":[],"operationId":"postApiPiiDeanonymize","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"maxLength":1000000,"type":"string"},"appID":{"type":"string"},"docID":{"type":"string"}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["text"],"properties":{"text":{"maxLength":1000000,"type":"string"},"appID":{"type":"string"},"docID":{"type":"string"}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["text"],"properties":{"text":{"maxLength":1000000,"type":"string"},"appID":{"type":"string"},"docID":{"type":"string"}},"additionalProperties":false}}}},"responses":{"200":{}}}},"/api/pii/preferences/{appID}/{docID}":{"get":{"operationId":"getApiPiiPreferencesByAppIDByDocID","parameters":[{"schema":{"type":"string"},"in":"path","name":"appID","required":true},{"schema":{"type":"string"},"in":"path","name":"docID","required":true}],"responses":{"200":{}}},"put":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"appID","required":true},{"schema":{"type":"string"},"in":"path","name":"docID","required":true}],"operationId":"putApiPiiPreferencesByAppIDByDocID","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"enabledTypes":{"type":"array","items":{"type":"string"}},"disabledTypes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","properties":{"enabledTypes":{"type":"array","items":{"type":"string"}},"disabledTypes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","properties":{"enabledTypes":{"type":"array","items":{"type":"string"}},"disabledTypes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}}},"responses":{"200":{}}}},"/api/pii/scopes/{appID}/{docID}":{"delete":{"operationId":"deleteApiPiiScopesByAppIDByDocID","parameters":[{"schema":{"type":"string"},"in":"path","name":"appID","required":true},{"schema":{"type":"string"},"in":"path","name":"docID","required":true}],"responses":{"200":{}}}},"/v1/cadastre/parse-lot":{"get":{"operationId":"getV1CadastreParse-lot","responses":{"200":{}}}},"/v1/cadastre/lot-detail/{propertyId}":{"get":{"operationId":"getV1CadastreLot-detailByPropertyId","parameters":[{"schema":{"type":"string"},"in":"path","name":"propertyId","required":true}],"responses":{"200":{}}}},"/v1/cadastre/lookup":{"get":{"parameters":[{"description":"Latitude in WGS84 (required unless pfi is supplied)","schema":{"anyOf":[{"format":"numeric","default":0,"type":"string"},{"description":"Latitude in WGS84 (required unless pfi is supplied)","type":"number"}]},"in":"query","name":"lat","required":false},{"description":"Longitude in WGS84 (required unless pfi is supplied)","schema":{"anyOf":[{"format":"numeric","default":0,"type":"string"},{"description":"Longitude in WGS84 (required unless pfi is supplied)","type":"number"}]},"in":"query","name":"lng","required":false},{"description":"State code (VIC, NSW, QLD, …). Defaults to VIC.","schema":{"type":"string"},"in":"query","name":"state","required":false},{"description":"Parcel feature identifier; bypasses lat/lng lookup","schema":{"type":"string"},"in":"query","name":"pfi","required":false}],"responses":{"200":{"description":"Cadastral parcel result with source attribution. `data` holds the parcel geometry/properties (or the address+parcel envelope) with stable `parcel_*` identifiers; `attribution`/`license` credit the state cadastre (and G-NAF for address lookups).","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{"anyOf":[{"additionalProperties":true,"description":"Cadastral parcel payload: GeoJSON `geometry` + `properties` with stable `parcel_*` identifiers.","type":"object","properties":{"geometry":{"additionalProperties":true,"description":"GeoJSON parcel geometry (WGS84).","type":"object","properties":{"type":{"type":"string"},"coordinates":{}}},"properties":{"additionalProperties":true,"description":"Parcel attributes. `parcel_pfi`/`parcel_spi`/`parcel_lot_number`/`parcel_plan_number` are the stable cadastral identifiers; `ezi_address` is the G-NAF-matched address for by-address lookups. State adapters may add further raw upstream attributes.","type":"object","properties":{"parcel_pfi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_spi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_lot_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_plan_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"ezi_address":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"null"}]},"error":{"type":"string"},"hint":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{"anyOf":[{"additionalProperties":true,"description":"Cadastral parcel payload: GeoJSON `geometry` + `properties` with stable `parcel_*` identifiers.","type":"object","properties":{"geometry":{"additionalProperties":true,"description":"GeoJSON parcel geometry (WGS84).","type":"object","properties":{"type":{"type":"string"},"coordinates":{}}},"properties":{"additionalProperties":true,"description":"Parcel attributes. `parcel_pfi`/`parcel_spi`/`parcel_lot_number`/`parcel_plan_number` are the stable cadastral identifiers; `ezi_address` is the G-NAF-matched address for by-address lookups. State adapters may add further raw upstream attributes.","type":"object","properties":{"parcel_pfi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_spi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_lot_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_plan_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"ezi_address":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"null"}]},"error":{"type":"string"},"hint":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{"anyOf":[{"additionalProperties":true,"description":"Cadastral parcel payload: GeoJSON `geometry` + `properties` with stable `parcel_*` identifiers.","type":"object","properties":{"geometry":{"additionalProperties":true,"description":"GeoJSON parcel geometry (WGS84).","type":"object","properties":{"type":{"type":"string"},"coordinates":{}}},"properties":{"additionalProperties":true,"description":"Parcel attributes. `parcel_pfi`/`parcel_spi`/`parcel_lot_number`/`parcel_plan_number` are the stable cadastral identifiers; `ezi_address` is the G-NAF-matched address for by-address lookups. State adapters may add further raw upstream attributes.","type":"object","properties":{"parcel_pfi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_spi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_lot_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_plan_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"ezi_address":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"null"}]},"error":{"type":"string"},"hint":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getV1CadastreLookup","summary":"Resolve the cadastral parcel at a point (or by PFI).","description":"Mirror-first cadastre lookup with live fallback. Requires `cadastre.read` scope."}},"/v1/cadastre/by-address":{"get":{"parameters":[{"description":"Address string (free text). Matched structurally against the G-NAF mirror: a strict exact pass first (returns similarity 1), then a tolerant pass that accepts loose/abbreviated forms (no postcode, trailing \", Australia\", abbreviated street type, lowercase, spelled-out state, stray commas). Only parcel-grade geocodes are returned (coarse street/locality/interpolated centroids are dropped). Never substitutes a different street.","schema":{"type":"string"},"in":"query","name":"q","required":true},{"description":"Optional state code to restrict the G-NAF search (VIC, NSW, ...). Defaults to the resolved address state.","schema":{"type":"string"},"in":"query","name":"state","required":false},{"description":"Optional 4-digit postcode to disambiguate a postcode-less query and bound the search. Defaults to a postcode parsed from q.","schema":{"type":"string"},"in":"query","name":"postcode","required":false},{"description":"Optional \"lat,lng\" point (WGS84, within Australia) to disambiguate an otherwise-ambiguous address that has no postcode or suburb; the nearest matching parcel wins.","schema":{"type":"string"},"in":"query","name":"near","required":false},{"description":"Optional per-request statement-timeout budget (milliseconds) for each G-NAF resolution stage. Lower it to fail fast and retry rather than wait out a cold lookup; raise it to outwait a genuinely slow cold lookup on a large, rarely-queried postcode instead of receiving a 503. Clamped server-side to a safe range (default 250–12000 ms); garbage or non-positive values are ignored and the server default budget applies.","schema":{"type":"string"},"in":"query","name":"timeout_ms","required":false}],"responses":{"200":{"description":"Cadastral parcel result with source attribution. `data` holds the parcel geometry/properties (or the address+parcel envelope) with stable `parcel_*` identifiers; `attribution`/`license` credit the state cadastre (and G-NAF for address lookups).","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{"anyOf":[{"additionalProperties":true,"description":"Cadastral parcel payload: GeoJSON `geometry` + `properties` with stable `parcel_*` identifiers.","type":"object","properties":{"geometry":{"additionalProperties":true,"description":"GeoJSON parcel geometry (WGS84).","type":"object","properties":{"type":{"type":"string"},"coordinates":{}}},"properties":{"additionalProperties":true,"description":"Parcel attributes. `parcel_pfi`/`parcel_spi`/`parcel_lot_number`/`parcel_plan_number` are the stable cadastral identifiers; `ezi_address` is the G-NAF-matched address for by-address lookups. State adapters may add further raw upstream attributes.","type":"object","properties":{"parcel_pfi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_spi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_lot_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_plan_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"ezi_address":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"null"}]},"error":{"type":"string"},"hint":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{"anyOf":[{"additionalProperties":true,"description":"Cadastral parcel payload: GeoJSON `geometry` + `properties` with stable `parcel_*` identifiers.","type":"object","properties":{"geometry":{"additionalProperties":true,"description":"GeoJSON parcel geometry (WGS84).","type":"object","properties":{"type":{"type":"string"},"coordinates":{}}},"properties":{"additionalProperties":true,"description":"Parcel attributes. `parcel_pfi`/`parcel_spi`/`parcel_lot_number`/`parcel_plan_number` are the stable cadastral identifiers; `ezi_address` is the G-NAF-matched address for by-address lookups. State adapters may add further raw upstream attributes.","type":"object","properties":{"parcel_pfi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_spi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_lot_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_plan_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"ezi_address":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"null"}]},"error":{"type":"string"},"hint":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"data":{"anyOf":[{"additionalProperties":true,"description":"Cadastral parcel payload: GeoJSON `geometry` + `properties` with stable `parcel_*` identifiers.","type":"object","properties":{"geometry":{"additionalProperties":true,"description":"GeoJSON parcel geometry (WGS84).","type":"object","properties":{"type":{"type":"string"},"coordinates":{}}},"properties":{"additionalProperties":true,"description":"Parcel attributes. `parcel_pfi`/`parcel_spi`/`parcel_lot_number`/`parcel_plan_number` are the stable cadastral identifiers; `ezi_address` is the G-NAF-matched address for by-address lookups. State adapters may add further raw upstream attributes.","type":"object","properties":{"parcel_pfi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_spi":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_lot_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"parcel_plan_number":{"anyOf":[{"type":"string"},{"type":"null"}]},"ezi_address":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"null"}]},"error":{"type":"string"},"hint":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getV1CadastreBy-address","summary":"Resolve the cadastral parcel by address string (G-NAF → mirror).","description":"Address-first cadastre lookup. Two-tier G-NAF resolution: (1) a STRICT exact match (same leading house number, street-name tokens in order, recognised street-type alias, exact postcode) returning `similarity: 1` and additively surfacing the G-NAF `confidence` + `geocodeType` (the geocode grade) when the matched row carries them — an additive SUPERSET of the original envelope (fields appear only when non-null), never a breaking removal for existing B2B integrators; (2) a TOLERANT fallback for loose/abbreviated input (missing postcode, trailing \", Australia\", abbreviated/expanded street type, lowercase, spelled-out state, extra commas/whitespace) that still anti-substitutes — it never resolves a different street — and reports the real `similarity`, the G-NAF `confidence`, and the `geocodeType` (G-NAF geocode grade). Only parcel-grade geocodes are accepted on the tolerant path: coarse street-locality (`STL`), locality-centroid (`LOC`) and gap/interpolated (`GG`) points are dropped, so a tolerant hit always points at a real parcel/building/frontage, never a vague centroid. Optional `state` / `postcode` / `near=lat,lng` narrow and disambiguate postcode-less queries; results rank by `confidence` then `similarity` (and proximity to `near`), and a 404 is returned only when nothing clears the match floor. The resolved property centroid is then matched point-in-polygon against the cadastre (PostGIS → R2 mirror → live). Far higher hit-rate than `/api/cadastre/lookup?lat&lng` for address-driven flows because G-NAF centroids sit inside the parcel polygon by construction. An optional `timeout_ms` lets the caller tune the per-stage G-NAF statement-timeout budget (clamped server-side, default 250–12000 ms): lower it to fail fast and retry rather than wait out a cold lookup, or raise it to outwait a genuinely slow cold lookup on a large, rarely-queried postcode instead of receiving a 503. Requires `cadastre.read` scope."}},"/v1/cadastre/bbox":{"get":{"parameters":[{"description":"west,south,east,north — max span 0.1° per axis","schema":{"type":"string"},"in":"query","name":"bbox","required":true},{"description":"State code (VIC, NSW, QLD, …). Defaults to VIC.","schema":{"type":"string"},"in":"query","name":"state","required":false}],"responses":{"200":{"description":"Cadastral parcels intersecting a bounding box as a GeoJSON `FeatureCollection` (capped at 1000 features) with source attribution. Served from the R2 mirror when available, otherwise the API runs the live state cadastre server-side and returns those parcels — callers never need to race the WFS proxy themselves.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"description":"Always 'FeatureCollection' on a hit or empty miss.","type":"string"},"features":{"type":"array","items":{"additionalProperties":true,"description":"GeoJSON parcel feature (WGS84, unclipped).","type":"object","properties":{"type":{"type":"string"},"geometry":{},"properties":{}}}},"source":{"type":"string"},"hint":{"type":"string"},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"type":{"description":"Always 'FeatureCollection' on a hit or empty miss.","type":"string"},"features":{"type":"array","items":{"additionalProperties":true,"description":"GeoJSON parcel feature (WGS84, unclipped).","type":"object","properties":{"type":{"type":"string"},"geometry":{},"properties":{}}}},"source":{"type":"string"},"hint":{"type":"string"},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"type":{"description":"Always 'FeatureCollection' on a hit or empty miss.","type":"string"},"features":{"type":"array","items":{"additionalProperties":true,"description":"GeoJSON parcel feature (WGS84, unclipped).","type":"object","properties":{"type":{"type":"string"},"geometry":{},"properties":{}}}},"source":{"type":"string"},"hint":{"type":"string"},"success":{"type":"boolean"},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getV1CadastreBbox","summary":"Return cadastral parcels intersecting a bounding box.","description":"Returns parcels intersecting a bounding box, capped at 1000 features. Served from the R2 mirror when warm; on a mirror miss the API resolves the window against the live state cadastre server-side and returns those parcels (you never race /api/wfs-proxy yourself). Every returned parcel genuinely intersects the requested bbox (exact geometry test — parcels whose bounding box merely overlaps the window but whose geometry lies entirely outside it are excluded), so the result is safe to use directly for tiling. Parcels that partially overlap the window are returned WHOLE (unclipped) — standard for parcel tiling — so a returned geometry may extend beyond the requested bbox. A clean live window with no parcels is a 200 empty collection; a genuine upstream outage is a 5xx. Requires `cadastre.read` scope."}},"/v1/planning-zones/health":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},"timestamp":{"type":"string"},"responseTime":{"type":"number"},"coverage":{"type":"object","required":["statesSupported","statesCount","totalStates","coveragePercentage"],"properties":{"statesSupported":{"type":"array","items":{"type":"string"}},"statesCount":{"type":"number"},"totalStates":{"type":"number"},"coveragePercentage":{"type":"number"}}},"adapters":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["status","serviceType","provider","message"],"properties":{"status":{"anyOf":[{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},{"const":"unsupported","type":"string"}]},"serviceType":{"type":"string"},"provider":{"type":"string"},"successRate":{"nullable":true,"anyOf":[{"type":"number"},{"type":"null"}]},"errorCount":{"type":"number"},"message":{"type":"string"}}}}},"configuration":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"}}},"summary":{"type":"object","required":["healthyAdapters","degradedAdapters","unhealthyAdapters","unsupportedStates"],"properties":{"healthyAdapters":{"type":"number"},"degradedAdapters":{"type":"number"},"unhealthyAdapters":{"type":"number"},"unsupportedStates":{"type":"number"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["status","timestamp","responseTime","coverage","adapters","configuration","summary"]}},"multipart/form-data":{"schema":{"type":"object","properties":{"status":{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},"timestamp":{"type":"string"},"responseTime":{"type":"number"},"coverage":{"type":"object","required":["statesSupported","statesCount","totalStates","coveragePercentage"],"properties":{"statesSupported":{"type":"array","items":{"type":"string"}},"statesCount":{"type":"number"},"totalStates":{"type":"number"},"coveragePercentage":{"type":"number"}}},"adapters":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["status","serviceType","provider","message"],"properties":{"status":{"anyOf":[{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},{"const":"unsupported","type":"string"}]},"serviceType":{"type":"string"},"provider":{"type":"string"},"successRate":{"nullable":true,"anyOf":[{"type":"number"},{"type":"null"}]},"errorCount":{"type":"number"},"message":{"type":"string"}}}}},"configuration":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"}}},"summary":{"type":"object","required":["healthyAdapters","degradedAdapters","unhealthyAdapters","unsupportedStates"],"properties":{"healthyAdapters":{"type":"number"},"degradedAdapters":{"type":"number"},"unhealthyAdapters":{"type":"number"},"unsupportedStates":{"type":"number"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["status","timestamp","responseTime","coverage","adapters","configuration","summary"]}},"text/plain":{"schema":{"type":"object","properties":{"status":{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},"timestamp":{"type":"string"},"responseTime":{"type":"number"},"coverage":{"type":"object","required":["statesSupported","statesCount","totalStates","coveragePercentage"],"properties":{"statesSupported":{"type":"array","items":{"type":"string"}},"statesCount":{"type":"number"},"totalStates":{"type":"number"},"coveragePercentage":{"type":"number"}}},"adapters":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["status","serviceType","provider","message"],"properties":{"status":{"anyOf":[{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},{"const":"unsupported","type":"string"}]},"serviceType":{"type":"string"},"provider":{"type":"string"},"successRate":{"nullable":true,"anyOf":[{"type":"number"},{"type":"null"}]},"errorCount":{"type":"number"},"message":{"type":"string"}}}}},"configuration":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"}}},"summary":{"type":"object","required":["healthyAdapters","degradedAdapters","unhealthyAdapters","unsupportedStates"],"properties":{"healthyAdapters":{"type":"number"},"degradedAdapters":{"type":"number"},"unhealthyAdapters":{"type":"number"},"unsupportedStates":{"type":"number"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["status","timestamp","responseTime","coverage","adapters","configuration","summary"]}}}},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"unhealthy","type":"string"},"timestamp":{"type":"string"},"error":{"type":"string"},"message":{"type":"string"}},"required":["status","timestamp","error","message"]}},"multipart/form-data":{"schema":{"type":"object","properties":{"status":{"const":"unhealthy","type":"string"},"timestamp":{"type":"string"},"error":{"type":"string"},"message":{"type":"string"}},"required":["status","timestamp","error","message"]}},"text/plain":{"schema":{"type":"object","properties":{"status":{"const":"unhealthy","type":"string"},"timestamp":{"type":"string"},"error":{"type":"string"},"message":{"type":"string"}},"required":["status","timestamp","error","message"]}}}},"503":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},"timestamp":{"type":"string"},"responseTime":{"type":"number"},"coverage":{"type":"object","required":["statesSupported","statesCount","totalStates","coveragePercentage"],"properties":{"statesSupported":{"type":"array","items":{"type":"string"}},"statesCount":{"type":"number"},"totalStates":{"type":"number"},"coveragePercentage":{"type":"number"}}},"adapters":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["status","serviceType","provider","message"],"properties":{"status":{"anyOf":[{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},{"const":"unsupported","type":"string"}]},"serviceType":{"type":"string"},"provider":{"type":"string"},"successRate":{"nullable":true,"anyOf":[{"type":"number"},{"type":"null"}]},"errorCount":{"type":"number"},"message":{"type":"string"}}}}},"configuration":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"}}},"summary":{"type":"object","required":["healthyAdapters","degradedAdapters","unhealthyAdapters","unsupportedStates"],"properties":{"healthyAdapters":{"type":"number"},"degradedAdapters":{"type":"number"},"unhealthyAdapters":{"type":"number"},"unsupportedStates":{"type":"number"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["status","timestamp","responseTime","coverage","adapters","configuration","summary"]}},"multipart/form-data":{"schema":{"type":"object","properties":{"status":{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},"timestamp":{"type":"string"},"responseTime":{"type":"number"},"coverage":{"type":"object","required":["statesSupported","statesCount","totalStates","coveragePercentage"],"properties":{"statesSupported":{"type":"array","items":{"type":"string"}},"statesCount":{"type":"number"},"totalStates":{"type":"number"},"coveragePercentage":{"type":"number"}}},"adapters":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["status","serviceType","provider","message"],"properties":{"status":{"anyOf":[{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},{"const":"unsupported","type":"string"}]},"serviceType":{"type":"string"},"provider":{"type":"string"},"successRate":{"nullable":true,"anyOf":[{"type":"number"},{"type":"null"}]},"errorCount":{"type":"number"},"message":{"type":"string"}}}}},"configuration":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"}}},"summary":{"type":"object","required":["healthyAdapters","degradedAdapters","unhealthyAdapters","unsupportedStates"],"properties":{"healthyAdapters":{"type":"number"},"degradedAdapters":{"type":"number"},"unhealthyAdapters":{"type":"number"},"unsupportedStates":{"type":"number"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["status","timestamp","responseTime","coverage","adapters","configuration","summary"]}},"text/plain":{"schema":{"type":"object","properties":{"status":{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},"timestamp":{"type":"string"},"responseTime":{"type":"number"},"coverage":{"type":"object","required":["statesSupported","statesCount","totalStates","coveragePercentage"],"properties":{"statesSupported":{"type":"array","items":{"type":"string"}},"statesCount":{"type":"number"},"totalStates":{"type":"number"},"coveragePercentage":{"type":"number"}}},"adapters":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["status","serviceType","provider","message"],"properties":{"status":{"anyOf":[{"anyOf":[{"const":"healthy","type":"string"},{"const":"degraded","type":"string"},{"const":"unhealthy","type":"string"}]},{"const":"unsupported","type":"string"}]},"serviceType":{"type":"string"},"provider":{"type":"string"},"successRate":{"nullable":true,"anyOf":[{"type":"number"},{"type":"null"}]},"errorCount":{"type":"number"},"message":{"type":"string"}}}}},"configuration":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"}}},"summary":{"type":"object","required":["healthyAdapters","degradedAdapters","unhealthyAdapters","unsupportedStates"],"properties":{"healthyAdapters":{"type":"number"},"degradedAdapters":{"type":"number"},"unhealthyAdapters":{"type":"number"},"unsupportedStates":{"type":"number"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["status","timestamp","responseTime","coverage","adapters","configuration","summary"]}}}}},"operationId":"getV1Planning-zonesHealth","tags":["Planning Zones"],"summary":"System health check with adapter statuses","description":"Performs a comprehensive health check of all planning zone adapters across Australian states. Returns overall system status, individual adapter health metrics, success rates, coverage statistics, and configuration details."}},"/v1/planning-zones/metrics":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"responseTime":{"type":"number"},"adapters":{"type":"object","patternProperties":{"^(.*)$":{}}},"system":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout","performanceTracking"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"},"performanceTracking":{"type":"boolean"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"responseTime":{"type":"number"},"adapters":{"type":"object","patternProperties":{"^(.*)$":{}}},"system":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout","performanceTracking"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"},"performanceTracking":{"type":"boolean"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"responseTime":{"type":"number"},"adapters":{"type":"object","patternProperties":{"^(.*)$":{}}},"system":{"type":"object","required":["cacheEnabled","cacheTTL","requestTimeout","performanceTracking"],"properties":{"cacheEnabled":{"type":"boolean"},"cacheTTL":{"type":"number"},"requestTimeout":{"type":"number"},"performanceTracking":{"type":"boolean"}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"timestamp":{"type":"string"},"message":{"type":"string"}},"required":["error","timestamp","message"]}},"multipart/form-data":{"schema":{"type":"object","properties":{"error":{"type":"string"},"timestamp":{"type":"string"},"message":{"type":"string"}},"required":["error","timestamp","message"]}},"text/plain":{"schema":{"type":"object","properties":{"error":{"type":"string"},"timestamp":{"type":"string"},"message":{"type":"string"}},"required":["error","timestamp","message"]}}}}},"operationId":"getV1Planning-zonesMetrics","tags":["Planning Zones"],"summary":"Detailed performance metrics and statistics","description":"Returns detailed performance metrics for the planning zone orchestrator including request counts, success rates, error counts, and response times for each state adapter. Also includes system configuration details."}},"/v1/planning-zones/coverage":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"coverage":{"type":"object","required":["supported","unsupported","totalStates","supportedCount","coveragePercentage"],"properties":{"supported":{"type":"array","items":{"type":"string"}},"unsupported":{"type":"array","items":{"type":"string"}},"totalStates":{"type":"number"},"supportedCount":{"type":"number"},"coveragePercentage":{"type":"number"}}},"details":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["supported","protocol","provider"],"properties":{"supported":{"type":"boolean"},"protocol":{"type":"string"},"provider":{"type":"string"}}}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["timestamp","coverage","details"]}},"multipart/form-data":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"coverage":{"type":"object","required":["supported","unsupported","totalStates","supportedCount","coveragePercentage"],"properties":{"supported":{"type":"array","items":{"type":"string"}},"unsupported":{"type":"array","items":{"type":"string"}},"totalStates":{"type":"number"},"supportedCount":{"type":"number"},"coveragePercentage":{"type":"number"}}},"details":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["supported","protocol","provider"],"properties":{"supported":{"type":"boolean"},"protocol":{"type":"string"},"provider":{"type":"string"}}}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["timestamp","coverage","details"]}},"text/plain":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"coverage":{"type":"object","required":["supported","unsupported","totalStates","supportedCount","coveragePercentage"],"properties":{"supported":{"type":"array","items":{"type":"string"}},"unsupported":{"type":"array","items":{"type":"string"}},"totalStates":{"type":"number"},"supportedCount":{"type":"number"},"coveragePercentage":{"type":"number"}}},"details":{"type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["supported","protocol","provider"],"properties":{"supported":{"type":"boolean"},"protocol":{"type":"string"},"provider":{"type":"string"}}}}},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}},"required":["timestamp","coverage","details"]}}}},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"error":{"type":"string"}},"required":["timestamp","error"]}},"multipart/form-data":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"error":{"type":"string"}},"required":["timestamp","error"]}},"text/plain":{"schema":{"type":"object","properties":{"timestamp":{"type":"string"},"error":{"type":"string"}},"required":["timestamp","error"]}}}}},"operationId":"getV1Planning-zonesCoverage","tags":["Planning Zones"],"summary":"State coverage information and adapter availability","description":"Provides information about planning zone adapter coverage across all Australian states and territories. Lists supported and unsupported states, coverage percentage, and protocol details for each adapter (WFS, ArcGIS REST API)."}},"/v1/locality/proximity":{"get":{"parameters":[{"description":"Street address to resolve to a coordinate via the G-NAF-first resolver (alternative to lat/lng). Must include a leading house number, a recognised street type and a 4-digit postcode, e.g. \"19 Kerferd Rd, Albert Park VIC 3206\".","schema":{"type":"string"},"in":"query","name":"address","required":false},{"description":"Latitude coordinate (WGS84). Required unless `address` is supplied.","schema":{"type":"string"},"in":"query","name":"lat","required":false},{"description":"Longitude coordinate (WGS84). Required unless `address` is supplied.","schema":{"type":"string"},"in":"query","name":"lng","required":false},{"description":"Optional state hint (e.g. VIC) used to disambiguate the address lookup","schema":{"type":"string"},"in":"query","name":"state","required":false}],"responses":{"200":{"description":"Nearest-amenity proximity result with source attribution. `data` holds the nearest school/childcare/supermarket/transport block(s); `attribution`/`license` credit the underlying open data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getV1LocalityProximity","tags":["Locality"],"summary":"Resolve nearest amenities at a coordinate or address","description":"Resolves the nearest school, kindergarten/childcare, supermarket and transport stops for a location. The location can be supplied either as a `lat`/`lng` coordinate (WGS84) or as a street `address`, which is geocoded through the same G-NAF-first resolver `/api/cadastre/by-address` uses (an explicit lat/lng wins if both are given). When an `address` is resolved, the response `data` echoes a `resolvedAddress` `{ formatted, lat, lng, source }`. An unresolvable `address` returns 404 `ADDRESS_NOT_FOUND` (or 503 `ADDRESS_INDEX_UNAVAILABLE` if the address index is down; 400 `ADDRESS_TOO_SHORT` for a sub-3-character query). Scope: `locality.read`."}},"/v1/risk/":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"lat","required":true},{"schema":{"type":"string"},"in":"query","name":"lng","required":true}],"responses":{"200":{"description":"Combined risk overlay result with source attribution. `data` holds the `{ flood, bushfire, contamination, state, hasHazard }` block; `attribution`/`license` credit the underlying planning data.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["flood","bushfire","contamination","state","hasHazard"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]},"hasHazard":{"description":"True when at least one hazard returned `present: true`.","type":"boolean"}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["flood","bushfire","contamination","state","hasHazard"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]},"hasHazard":{"description":"True when at least one hazard returned `present: true`.","type":"boolean"}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["flood","bushfire","contamination","state","hasHazard"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]},"hasHazard":{"description":"True when at least one hazard returned `present: true`.","type":"boolean"}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getV1Risk","tags":["Risk"],"summary":"Flood + bushfire (BAL) + contamination at a point","description":"Returns `{ flood, bushfire, contamination }` for the given coordinate, wrapping the planning-overlay adapters. Each hazard block is either `{ present: true, coverage: \"live\", classification, sourceLayer, state, attributes }` when a layer covers the point, or `{ present: false, coverage: \"live\" | \"not_covered\" }` otherwise — `coverage: \"live\"` means the state publishes a layer for this hazard and the point is clear, `coverage: \"not_covered\"` means the state does not yet publish a layer for this hazard (so `present: false` is \"unknown\", not \"no risk\"). Scope: `risk.read`.\n\nPer-state coverage matrix (which hazards are live in which jurisdiction) —\nderived from the same per-state registry the planning-overlay adapters\nuse, so onboarding a new LGA layer auto-updates this table. Each hazard\nblock in the response also carries a `coverage` field (`\"live\"` vs.\n`\"not_covered\"`) so callers can disambiguate \"checked, clear\" from\n\"state does not publish that layer yet\" without reading this table.\n\n| State | Flood | Bushfire (BAL) | Contamination |\n|---|---|---|---|\n| VIC | ✓ | ✓ | ✓ |\n| NSW | ✓ | ✓ | ✓ |\n| SA | — | — | — |\n| WA | ✓ | ✓ | ✓ |\n| TAS | ✓ | ✓ | ✓ |\n| NT | ✓ | ✓ | — |\n| ACT | ✓ | ✓ | — |\n| QLD | ✓ | ✓ | ✓ |"}},"/v1/risk/flood":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"lat","required":true},{"schema":{"type":"string"},"in":"query","name":"lng","required":true}],"responses":{"200":{"description":"Flood overlay result with source attribution. `data` holds `{ flood, state }`.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["flood","state"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["flood","state"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["flood","state"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getV1RiskFlood","tags":["Risk"],"summary":"Flood overlay at a point","description":"Returns the flood overlay covering the given coordinate. Block shape: `{ present: true, coverage: \"live\", classification, ... }` when covered, or `{ present: false, coverage: \"live\" | \"not_covered\" }` otherwise (see `/api/risk` for `coverage` semantics). Scope: `risk.read`."}},"/v1/risk/bushfire":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"lat","required":true},{"schema":{"type":"string"},"in":"query","name":"lng","required":true}],"responses":{"200":{"description":"Bushfire (BAL) overlay result with source attribution. `data` holds `{ bushfire, state }`.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["bushfire","state"],"properties":{"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["bushfire","state"],"properties":{"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["bushfire","state"],"properties":{"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getV1RiskBushfire","tags":["Risk"],"summary":"Bushfire (BAL) overlay at a point","description":"Returns the bushfire / BMO / BAL overlay covering the given coordinate. Block shape: `{ present: true, coverage: \"live\", classification, ... }` when covered, or `{ present: false, coverage: \"live\" | \"not_covered\" }` otherwise (see `/api/risk` for `coverage` semantics). Scope: `risk.read`."}},"/v1/risk/contamination":{"get":{"parameters":[{"schema":{"type":"string"},"in":"query","name":"lat","required":true},{"schema":{"type":"string"},"in":"query","name":"lng","required":true}],"responses":{"200":{"description":"Contamination overlay result with source attribution. `data` holds `{ contamination, state }`.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["contamination","state"],"properties":{"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["contamination","state"],"properties":{"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"additionalProperties":true,"type":"object","required":["contamination","state"],"properties":{"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getV1RiskContamination","tags":["Risk"],"summary":"Contamination / environmental-audit overlay at a point","description":"Returns the contamination / EAO / environmental-audit overlay covering the given coordinate. Block shape: `{ present: true, coverage: \"live\", classification, ... }` when covered, or `{ present: false, coverage: \"live\" | \"not_covered\" }` otherwise (see `/api/risk` for `coverage` semantics — `not_covered` is common in ACT/NT, which do not publish an EAO equivalent). Scope: `risk.read`."}},"/v1/risk/batch":{"post":{"parameters":[],"responses":{"200":{"description":"Batch risk result. `results[].data` is the same `{ flood, bushfire, contamination, state, hasHazard }` block as `GET /api/risk`, or `null` (with an `error`) for an out-of-range or failed point.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"results":{"type":"array","items":{"additionalProperties":true,"type":"object","required":["lat","lng","data"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"},"data":{"anyOf":[{"additionalProperties":true,"type":"object","required":["flood","bushfire","contamination","state","hasHazard"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]},"hasHazard":{"description":"True when at least one hazard returned `present: true`.","type":"boolean"}}},{"type":"null"}]},"error":{"type":"string"}}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"results":{"type":"array","items":{"additionalProperties":true,"type":"object","required":["lat","lng","data"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"},"data":{"anyOf":[{"additionalProperties":true,"type":"object","required":["flood","bushfire","contamination","state","hasHazard"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]},"hasHazard":{"description":"True when at least one hazard returned `present: true`.","type":"boolean"}}},{"type":"null"}]},"error":{"type":"string"}}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"results":{"type":"array","items":{"additionalProperties":true,"type":"object","required":["lat","lng","data"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"},"data":{"anyOf":[{"additionalProperties":true,"type":"object","required":["flood","bushfire","contamination","state","hasHazard"],"properties":{"flood":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"bushfire":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"contamination":{"description":"A flood / bushfire / contamination hazard block at a point.","anyOf":[{"additionalProperties":true,"type":"object","required":["present","coverage","classification","sourceLayer","state","attributes"],"properties":{"present":{"const":true,"type":"boolean"},"coverage":{"const":"live","type":"string"},"classification":{"description":"Normalised overlay code (e.g. `LSIO1`, `BMO`, `EAO`).","type":"string"},"sourceLayer":{"description":"Human-readable layer/overlay name from the upstream source.","type":"string"},"state":{"description":"State the hazard was resolved in.","type":"string"},"attributes":{"description":"Raw normalised overlay attributes (provider id, lga, metadata, …).","type":"object","patternProperties":{"^(.*)$":{}}}}},{"additionalProperties":true,"type":"object","required":["present","coverage"],"properties":{"present":{"const":false,"type":"boolean"},"coverage":{"description":"`live` = the state publishes a layer for this hazard and the point is clear; `not_covered` = the state does not publish a layer, so `present: false` is \"unknown\", not \"no risk\".","anyOf":[{"const":"live","type":"string"},{"const":"not_covered","type":"string"}]}}}]},"state":{"description":"State the orchestrator routed the lookup to (`null` when outside AU).","anyOf":[{"type":"string"},{"type":"null"}]},"hasHazard":{"description":"True when at least one hazard returned `present: true`.","type":"boolean"}}},{"type":"null"}]},"error":{"type":"string"}}}},"error":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postV1RiskBatch","tags":["Risk"],"summary":"Flood + bushfire (BAL) + contamination for many points","description":"Batch variant of `GET /api/risk` — POST `{ points: [{ lat, lng }, …] }` (max 50) and receive `{ success: true, results: [{ lat, lng, data }] }` where each `data` is the same `{ flood, bushfire, contamination, state, hasHazard }` block `GET /api/risk` returns, or `null` (with an `error` string) for an out-of-range or failed point. Lets a search-results page resolve a whole page of cards in one round trip instead of one request per card. Unlike the single-point endpoints, `/batch` does not fire `risk.hazard.found` webhooks. Scope: `risk.read`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["points"],"properties":{"points":{"maxItems":50,"type":"array","items":{"type":"object","required":["lat","lng"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"}}}}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["points"],"properties":{"points":{"maxItems":50,"type":"array","items":{"type":"object","required":["lat","lng"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"}}}}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["points"],"properties":{"points":{"maxItems":50,"type":"array","items":{"type":"object","required":["lat","lng"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"}}}}},"additionalProperties":false}}}}}},"/v1/siting/envelope":{"post":{"parameters":[],"responses":{"200":{"description":"Siting result. `data` holds the building envelope (`/envelope`) or the geometric fit outcome (`/fit`). Envelope/footprint geometry is WGS84 GeoJSON.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postV1SitingEnvelope","tags":["Siting"],"summary":"Compute a lot building envelope","description":"Computes the buildable building-envelope polygon for a lot from its boundary and deemed-to-comply setbacks (with optional VIC VC267 support). Returns the envelope polygon, per-boundary setback lines, buildable/original area and lot orientation. All geometry is WGS84 GeoJSON. Scope: `siting.read`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["boundaryPolygon","setbacks"],"properties":{"boundaryPolygon":{"description":"Lot boundary as a GeoJSON Polygon / Feature<Polygon> (WGS84) OR a WKT POLYGON string (optionally `SRID=...;` prefixed; assumed EPSG:4326 if absent)."},"setbacks":{"description":"Deemed-to-comply setback distances (metres) applied to the lot boundary.","type":"object","required":["street","sideLeft","sideRight","rear"],"properties":{"street":{"description":"Street (front) setback in metres.","type":"number"},"sideLeft":{"description":"Left side setback in metres.","type":"number"},"sideRight":{"description":"Right side setback in metres.","type":"number"},"rear":{"description":"Rear setback in metres.","type":"number"}}},"pfi":{"description":"Optional cadastral identifier used only for labelling/caching.","type":"string"},"streetFrontBearing":{"description":"Optional bearing (degrees) of the street frontage edge.","type":"number"},"useVC267":{"description":"Apply VIC VC267 deemed-to-comply setbacks.","type":"boolean"},"vc267Option":{"description":"VC267 option (A or B).","anyOf":[{"const":"A","type":"string"},{"const":"B","type":"string"}]},"buildingHeight":{"description":"Proposed building height in metres.","type":"number"}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["boundaryPolygon","setbacks"],"properties":{"boundaryPolygon":{"description":"Lot boundary as a GeoJSON Polygon / Feature<Polygon> (WGS84) OR a WKT POLYGON string (optionally `SRID=...;` prefixed; assumed EPSG:4326 if absent)."},"setbacks":{"description":"Deemed-to-comply setback distances (metres) applied to the lot boundary.","type":"object","required":["street","sideLeft","sideRight","rear"],"properties":{"street":{"description":"Street (front) setback in metres.","type":"number"},"sideLeft":{"description":"Left side setback in metres.","type":"number"},"sideRight":{"description":"Right side setback in metres.","type":"number"},"rear":{"description":"Rear setback in metres.","type":"number"}}},"pfi":{"description":"Optional cadastral identifier used only for labelling/caching.","type":"string"},"streetFrontBearing":{"description":"Optional bearing (degrees) of the street frontage edge.","type":"number"},"useVC267":{"description":"Apply VIC VC267 deemed-to-comply setbacks.","type":"boolean"},"vc267Option":{"description":"VC267 option (A or B).","anyOf":[{"const":"A","type":"string"},{"const":"B","type":"string"}]},"buildingHeight":{"description":"Proposed building height in metres.","type":"number"}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["boundaryPolygon","setbacks"],"properties":{"boundaryPolygon":{"description":"Lot boundary as a GeoJSON Polygon / Feature<Polygon> (WGS84) OR a WKT POLYGON string (optionally `SRID=...;` prefixed; assumed EPSG:4326 if absent)."},"setbacks":{"description":"Deemed-to-comply setback distances (metres) applied to the lot boundary.","type":"object","required":["street","sideLeft","sideRight","rear"],"properties":{"street":{"description":"Street (front) setback in metres.","type":"number"},"sideLeft":{"description":"Left side setback in metres.","type":"number"},"sideRight":{"description":"Right side setback in metres.","type":"number"},"rear":{"description":"Rear setback in metres.","type":"number"}}},"pfi":{"description":"Optional cadastral identifier used only for labelling/caching.","type":"string"},"streetFrontBearing":{"description":"Optional bearing (degrees) of the street frontage edge.","type":"number"},"useVC267":{"description":"Apply VIC VC267 deemed-to-comply setbacks.","type":"boolean"},"vc267Option":{"description":"VC267 option (A or B).","anyOf":[{"const":"A","type":"string"},{"const":"B","type":"string"}]},"buildingHeight":{"description":"Proposed building height in metres.","type":"number"}},"additionalProperties":false}}}}}},"/v1/siting/fit":{"post":{"parameters":[],"responses":{"200":{"description":"Siting result. `data` holds the building envelope (`/envelope`) or the geometric fit outcome (`/fit`). Envelope/footprint geometry is WGS84 GeoJSON.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postV1SitingFit","tags":["Siting"],"summary":"Test a home footprint fit on a lot","description":"Tests whether a proposed home footprint fits on a lot at a given position/orientation. Returns the fit status, boundary clashes (area of footprint outside the lot) and envelope breaches (area outside the buildable envelope). The envelope is either supplied directly or derived from `lotPolygon` + `setbacks`. The footprint may be a GeoJSON Polygon or a rectangle spec. The DEM-dependent `cutFillM3` and `slopeAdjustedSetbacks` are returned as `null` (see `pending`); set `computeEarthworks` to queue them via the async siting-compute path. All geometry is WGS84 GeoJSON. Scope: `siting.fit`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["lotPolygon","footprint"],"properties":{"lotPolygon":{"description":"Lot boundary as a GeoJSON Polygon / Feature<Polygon> (WGS84)."},"envelopePolygon":{"description":"Optional pre-computed building envelope (GeoJSON Polygon, WGS84). If omitted, `setbacks` must be supplied so the envelope can be derived from `lotPolygon`."},"setbacks":{"description":"Deemed-to-comply setback distances (metres) applied to the lot boundary.","type":"object","required":["street","sideLeft","sideRight","rear"],"properties":{"street":{"description":"Street (front) setback in metres.","type":"number"},"sideLeft":{"description":"Left side setback in metres.","type":"number"},"sideRight":{"description":"Right side setback in metres.","type":"number"},"rear":{"description":"Rear setback in metres.","type":"number"}}},"footprint":{"description":"Proposed house footprint — either a GeoJSON Polygon (WGS84) or a rectangle spec `{ widthM, depthM, position: { lat, lng }, rotationDeg? }`."},"computeEarthworks":{"description":"Queue the DEM-dependent cut/fill + slope-adjusted-setback compute (returned later via the async siting-compute path).","type":"boolean"},"levelMode":{"description":"Pad / finished-floor level-selection strategy for the queued earthworks compute: `balanced` (cut≈fill, default), `rising-from-road` (lift the FFL a freeboard above the road/frontage grade), or `access-clamp` (rising-from-road capped to keep the driveway grade within limits).","anyOf":[{"const":"balanced","type":"string"},{"const":"rising-from-road","type":"string"},{"const":"access-clamp","type":"string"}]},"freeboardM":{"description":"Floor freeboard above the road/frontage grade (m). Default 0.45.","type":"number"},"maxAccessGrade":{"description":"`access-clamp`: max driveway grade as a rise:run ratio. Default 0.25 (1:4).","type":"number"},"accessRunM":{"description":"`access-clamp`: horizontal driveway run from the road to the FFL (m). Default 8.","type":"number"},"includeEarthworksGeometry":{"description":"Ask the earthworks compute to also emit drawable WGS84 overlay geometry (grid points, cut/fill extent polygons, daylight/setback lines) so a caller can render the result on a map without re-deriving it.","type":"boolean"}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["lotPolygon","footprint"],"properties":{"lotPolygon":{"description":"Lot boundary as a GeoJSON Polygon / Feature<Polygon> (WGS84)."},"envelopePolygon":{"description":"Optional pre-computed building envelope (GeoJSON Polygon, WGS84). If omitted, `setbacks` must be supplied so the envelope can be derived from `lotPolygon`."},"setbacks":{"description":"Deemed-to-comply setback distances (metres) applied to the lot boundary.","type":"object","required":["street","sideLeft","sideRight","rear"],"properties":{"street":{"description":"Street (front) setback in metres.","type":"number"},"sideLeft":{"description":"Left side setback in metres.","type":"number"},"sideRight":{"description":"Right side setback in metres.","type":"number"},"rear":{"description":"Rear setback in metres.","type":"number"}}},"footprint":{"description":"Proposed house footprint — either a GeoJSON Polygon (WGS84) or a rectangle spec `{ widthM, depthM, position: { lat, lng }, rotationDeg? }`."},"computeEarthworks":{"description":"Queue the DEM-dependent cut/fill + slope-adjusted-setback compute (returned later via the async siting-compute path).","type":"boolean"},"levelMode":{"description":"Pad / finished-floor level-selection strategy for the queued earthworks compute: `balanced` (cut≈fill, default), `rising-from-road` (lift the FFL a freeboard above the road/frontage grade), or `access-clamp` (rising-from-road capped to keep the driveway grade within limits).","anyOf":[{"const":"balanced","type":"string"},{"const":"rising-from-road","type":"string"},{"const":"access-clamp","type":"string"}]},"freeboardM":{"description":"Floor freeboard above the road/frontage grade (m). Default 0.45.","type":"number"},"maxAccessGrade":{"description":"`access-clamp`: max driveway grade as a rise:run ratio. Default 0.25 (1:4).","type":"number"},"accessRunM":{"description":"`access-clamp`: horizontal driveway run from the road to the FFL (m). Default 8.","type":"number"},"includeEarthworksGeometry":{"description":"Ask the earthworks compute to also emit drawable WGS84 overlay geometry (grid points, cut/fill extent polygons, daylight/setback lines) so a caller can render the result on a map without re-deriving it.","type":"boolean"}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["lotPolygon","footprint"],"properties":{"lotPolygon":{"description":"Lot boundary as a GeoJSON Polygon / Feature<Polygon> (WGS84)."},"envelopePolygon":{"description":"Optional pre-computed building envelope (GeoJSON Polygon, WGS84). If omitted, `setbacks` must be supplied so the envelope can be derived from `lotPolygon`."},"setbacks":{"description":"Deemed-to-comply setback distances (metres) applied to the lot boundary.","type":"object","required":["street","sideLeft","sideRight","rear"],"properties":{"street":{"description":"Street (front) setback in metres.","type":"number"},"sideLeft":{"description":"Left side setback in metres.","type":"number"},"sideRight":{"description":"Right side setback in metres.","type":"number"},"rear":{"description":"Rear setback in metres.","type":"number"}}},"footprint":{"description":"Proposed house footprint — either a GeoJSON Polygon (WGS84) or a rectangle spec `{ widthM, depthM, position: { lat, lng }, rotationDeg? }`."},"computeEarthworks":{"description":"Queue the DEM-dependent cut/fill + slope-adjusted-setback compute (returned later via the async siting-compute path).","type":"boolean"},"levelMode":{"description":"Pad / finished-floor level-selection strategy for the queued earthworks compute: `balanced` (cut≈fill, default), `rising-from-road` (lift the FFL a freeboard above the road/frontage grade), or `access-clamp` (rising-from-road capped to keep the driveway grade within limits).","anyOf":[{"const":"balanced","type":"string"},{"const":"rising-from-road","type":"string"},{"const":"access-clamp","type":"string"}]},"freeboardM":{"description":"Floor freeboard above the road/frontage grade (m). Default 0.45.","type":"number"},"maxAccessGrade":{"description":"`access-clamp`: max driveway grade as a rise:run ratio. Default 0.25 (1:4).","type":"number"},"accessRunM":{"description":"`access-clamp`: horizontal driveway run from the road to the FFL (m). Default 8.","type":"number"},"includeEarthworksGeometry":{"description":"Ask the earthworks compute to also emit drawable WGS84 overlay geometry (grid points, cut/fill extent polygons, daylight/setback lines) so a caller can render the result on a map without re-deriving it.","type":"boolean"}},"additionalProperties":false}}}}}},"/v1/siting/earthworks":{"post":{"parameters":[],"responses":{"200":{"description":"Siting result. `data` holds the building envelope (`/envelope`) or the geometric fit outcome (`/fit`). Envelope/footprint geometry is WGS84 GeoJSON.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"postV1SitingEarthworks","tags":["Siting"],"summary":"Queue a DEM-derived earthworks (cut/fill) compute","description":"Queues the DEM-dependent earthworks compute for a proposed home footprint sited on a lot — cut/fill volumes to bench a level pad plus a terrain-derived slope-adjusted-setback uplift. The pad / finished-floor level follows the requested `level` strategy (`balanced` default, `rising-from-road`, or `access-clamp`). Returns an `earthworksJobId`; poll `GET /v1/siting/jobs/:jobId` for the result. When `completed`, `data.result` carries `cutFillM3`, `cutM3`, `fillM3`, `netM3`, `padLevelMAhd` and `slopeAdjustedSetbacks` (plus drawable `geometry` when `includeGeometry` was set); for states without a DEM mirror (VIC-only today) the result is `{ available:false, reason }`. All geometry is WGS84 GeoJSON. Scope: `siting.earthworks`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["lotPolygon","footprint"],"properties":{"lotPolygon":{"description":"Lot boundary as a GeoJSON Polygon / Feature<Polygon> (WGS84)."},"footprint":{"description":"Proposed house footprint — either a GeoJSON Polygon (WGS84) or a rectangle spec `{ widthM, depthM, position: { lat, lng }, rotationDeg? }`."},"state":{"description":"Optional Australian state code (e.g. \"VIC\") selecting the contour/DEM mirror. Derived from the footprint centroid when omitted.","type":"string"},"level":{"description":"Optional finished-floor level-selection strategy + parameters.","type":"object","properties":{"mode":{"description":"Finished-floor / pad level-selection strategy. `balanced` (default) pads at mean ground level so cut ≈ fill; `rising-from-road` lifts the FFL a freeboard above the frontage grade; `access-clamp` caps that lift so the driveway grade never exceeds `maxAccessGrade`.","anyOf":[{"const":"balanced","type":"string"},{"const":"rising-from-road","type":"string"},{"const":"access-clamp","type":"string"}]},"freeboardM":{"description":"Floor freeboard above the road/frontage grade (m). Default 0.45.","type":"number"},"maxAccessGrade":{"description":"`access-clamp`: max driveway grade as a rise:run ratio. Default 0.25 (1:4).","type":"number"},"accessRunM":{"description":"`access-clamp`: horizontal driveway run from the road connection to the FFL (m). Default 8.","type":"number"}}},"includeGeometry":{"description":"Include drawable WGS84 overlay geometry (sampled grid, cut/fill extents) in the result.","type":"boolean"}},"additionalProperties":false}},"multipart/form-data":{"schema":{"type":"object","required":["lotPolygon","footprint"],"properties":{"lotPolygon":{"description":"Lot boundary as a GeoJSON Polygon / Feature<Polygon> (WGS84)."},"footprint":{"description":"Proposed house footprint — either a GeoJSON Polygon (WGS84) or a rectangle spec `{ widthM, depthM, position: { lat, lng }, rotationDeg? }`."},"state":{"description":"Optional Australian state code (e.g. \"VIC\") selecting the contour/DEM mirror. Derived from the footprint centroid when omitted.","type":"string"},"level":{"description":"Optional finished-floor level-selection strategy + parameters.","type":"object","properties":{"mode":{"description":"Finished-floor / pad level-selection strategy. `balanced` (default) pads at mean ground level so cut ≈ fill; `rising-from-road` lifts the FFL a freeboard above the frontage grade; `access-clamp` caps that lift so the driveway grade never exceeds `maxAccessGrade`.","anyOf":[{"const":"balanced","type":"string"},{"const":"rising-from-road","type":"string"},{"const":"access-clamp","type":"string"}]},"freeboardM":{"description":"Floor freeboard above the road/frontage grade (m). Default 0.45.","type":"number"},"maxAccessGrade":{"description":"`access-clamp`: max driveway grade as a rise:run ratio. Default 0.25 (1:4).","type":"number"},"accessRunM":{"description":"`access-clamp`: horizontal driveway run from the road connection to the FFL (m). Default 8.","type":"number"}}},"includeGeometry":{"description":"Include drawable WGS84 overlay geometry (sampled grid, cut/fill extents) in the result.","type":"boolean"}},"additionalProperties":false}},"text/plain":{"schema":{"type":"object","required":["lotPolygon","footprint"],"properties":{"lotPolygon":{"description":"Lot boundary as a GeoJSON Polygon / Feature<Polygon> (WGS84)."},"footprint":{"description":"Proposed house footprint — either a GeoJSON Polygon (WGS84) or a rectangle spec `{ widthM, depthM, position: { lat, lng }, rotationDeg? }`."},"state":{"description":"Optional Australian state code (e.g. \"VIC\") selecting the contour/DEM mirror. Derived from the footprint centroid when omitted.","type":"string"},"level":{"description":"Optional finished-floor level-selection strategy + parameters.","type":"object","properties":{"mode":{"description":"Finished-floor / pad level-selection strategy. `balanced` (default) pads at mean ground level so cut ≈ fill; `rising-from-road` lifts the FFL a freeboard above the frontage grade; `access-clamp` caps that lift so the driveway grade never exceeds `maxAccessGrade`.","anyOf":[{"const":"balanced","type":"string"},{"const":"rising-from-road","type":"string"},{"const":"access-clamp","type":"string"}]},"freeboardM":{"description":"Floor freeboard above the road/frontage grade (m). Default 0.45.","type":"number"},"maxAccessGrade":{"description":"`access-clamp`: max driveway grade as a rise:run ratio. Default 0.25 (1:4).","type":"number"},"accessRunM":{"description":"`access-clamp`: horizontal driveway run from the road connection to the FFL (m). Default 8.","type":"number"}}},"includeGeometry":{"description":"Include drawable WGS84 overlay geometry (sampled grid, cut/fill extents) in the result.","type":"boolean"}},"additionalProperties":false}}}}}},"/v1/siting/jobs/{jobId}":{"get":{"parameters":[{"description":"The earthworks job id returned by `POST /siting/fit`.","schema":{"type":"string"},"in":"path","name":"jobId","required":true}],"responses":{"200":{"description":"Siting result. `data` holds the building envelope (`/envelope`) or the geometric fit outcome (`/fit`). Envelope/footprint geometry is WGS84 GeoJSON.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}},"text/plain":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"error":{"type":"string"},"errorCode":{"type":"string"},"attribution":{"description":"Human-readable source credit line. If you display or redistribute the returned data you MUST reproduce this string to satisfy the upstream open-data licence. Present only on responses that carry third-party data (the credit varies by Australian state for cadastre and planning data).","type":"string"},"license":{"description":"Name of the licence the returned data is distributed under, e.g. \"Creative Commons Attribution 4.0 International (CC BY 4.0)\" or \"Open Data Commons Open Database License (ODbL)\". Present only on responses that carry third-party data.","type":"string"}}}}}}},"operationId":"getV1SitingJobsByJobId","tags":["Siting"],"summary":"Retrieve an async siting-compute (earthworks) job result","description":"Polls a DEM-dependent earthworks job queued by `POST /siting/fit` (`computeEarthworks:true`). `data.state` is the BullMQ job state (`waiting`/`active`/`completed`/`failed`). When `completed`, `data.result` carries the cut/fill volumes (`cutFillM3`, `cutM3`, `fillM3`, `netM3`, `padLevelMAhd`) and the terrain-derived `slopeAdjustedSetbacks`; for states without a DEM mirror (VIC-only today) the result is `{ available:false, reason }`. A caller may only read jobs their own key enqueued. Scope: `siting.fit`."}},"/public/showcase":{"get":{"operationId":"getPublicShowcase","responses":{"200":{}}}},"/api/r2-objects/{key}":{"get":{"tags":["Image & Object Access"],"summary":"Fetch raw object bytes","description":"Stream raw bytes for a whitelisted object storage key — floor plans, façades, canonical home images, and gis-mirror snapshot artefacts. Only keys under the permitted prefixes are served: `buildhq-v2/images/`, `buildhq-v2/homes/`, `gis-mirror/`. The response carries `ETag` + `Cache-Control` and supports `If-None-Match` (304) revalidation. URL-encode slashes in the key as `%2F` if your HTTP client requires it. Scope: `image-access.read`.","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"key","in":"path","required":true,"description":"Full object storage key under a permitted prefix. Example: `buildhq-v2/homes/recABC123/facades/facade_0.jpg`.","schema":{"type":"string"},"example":"buildhq-v2/homes/recABC123/facades/facade_0.jpg"}],"responses":{"200":{"description":"Raw object bytes with the resolved content type.","headers":{"ETag":{"description":"Entity tag for conditional `If-None-Match` requests.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directive (private on the dedicated API host).","schema":{"type":"string"}}},"content":{"image/*":{"schema":{"type":"string","format":"binary"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"304":{"description":"Not modified — `If-None-Match` matched the current ETag."},"400":{"description":"Malformed object key."},"401":{"description":"API key required."},"403":{"description":"Missing `image-access.read` scope, or key outside the permitted prefixes."},"404":{"description":"Object not found."}}}},"/v1/basemap/{assetPath}":{"get":{"tags":["Basemap"],"summary":"Stream a basemap asset (Range-capable)","description":"Stream any asset from the self-hosted Australia basemap tree — the PMTiles archive, glyph .pbf files, sprite sheets, the per-version manifest, or the live `current.json` pointer. Honours HTTP `Range` (returns `206 Partial Content` with `Content-Range`), `If-None-Match` (304) and advertises `Accept-Ranges: bytes`. Only the immutable `basemaps/` tree is reachable, so this cannot be used as a generic object CDN. Scope: `basemap.read`.","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"assetPath","in":"path","required":true,"description":"Asset path under the published basemap tree. Example: `1700000000/australia.pmtiles`.","schema":{"type":"string"},"example":"1700000000/australia.pmtiles"},{"name":"Range","in":"header","required":false,"description":"Optional single byte range, e.g. `bytes=0-65535`.","schema":{"type":"string"},"example":"bytes=0-65535"}],"responses":{"200":{"description":"Full asset bytes.","headers":{"ETag":{"description":"Entity tag for conditional requests.","schema":{"type":"string"}},"Accept-Ranges":{"description":"Always `bytes`.","schema":{"type":"string"}},"Cache-Control":{"description":"Immutable for versioned assets; short for `current.json`.","schema":{"type":"string"}}},"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"206":{"description":"Partial content — the requested byte range."},"304":{"description":"Not modified — `If-None-Match` matched the current ETag."},"400":{"description":"Malformed asset path."},"401":{"description":"API key required."},"403":{"description":"Missing `basemap.read` scope."},"404":{"description":"Asset not found."},"416":{"description":"Requested range not satisfiable."},"503":{"description":"No basemap version has been published yet."}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"http","scheme":"bearer","bearerFormat":"ins_live_xxx","description":"Insitive-issued API key. Prefix `ins_live_` for production traffic, `ins_test_` for sandbox."}},"schemas":{}},"security":[{"ApiKeyAuth":[]}]}