POST/shorts.v1alpha1.HousingService/GetSuburbProfile

GetSuburbProfile

Full per-suburb profile: identity, demographics, headline price, comparison baselines.

Parameters

Connect-Protocol-VersionheaderRequired
number [1]

Define the version of the Connect protocol

Connect-Timeout-Msheader
number

Define the timeout, in ms

Request Body

application/json
object
salCodestring

required (proto string)

Responses

200Success
application/json
object
bannerobject

editorial banner header (archetype, blurb, landmarks) (proto shorts.v1alpha1.SuburbBanner)

archetypestring

classified/refined archetype id (proto string)

bgKeystring

library asset key (defaults to archetype) (proto string)

bgUrlstring

bespoke background override (optional) (proto string)

blurbstring

editorial one-liner (also page copy) (proto string)

baselinesobject

(proto shorts.v1alpha1.ComparisonBaselines)

nationalMedianPricenumber <double>

(proto double)

nationalMedianWeeklyHhdIncomenumber <double>

(proto double)

stateMedianPricenumber <double>

(proto double)

stateMedianWeeklyHhdIncomenumber <double>

(proto double)

councilobject

council this suburb sits in ('' if unmatched) (proto shorts.v1alpha1.LgaInfo)

areaSqkmnumber <double>

(proto double)

assetRenewalRationumber <double>

asset renewal + upgrade vs depreciation, % (proto double)

avgRatesnumber <double>

Per-council financials (VIC LGPRF, CC-BY; 0/'' for states not yet sourced). average rate per property assessment, AUD (proto double)

fedFagAudnumber <double>

federal Financial Assistance Grant (latest yr), AUD; 0 if unmatched (proto double)

fedFagYearstring

e.g. '2025-26' (proto string)

finSourcestring

financials provenance ('vic_lgprf'), '' if none (proto string)

finYearstring

financials reporting year, e.g. '2024-25' (proto string)

lgaCodestring

(proto string)

lgaNamestring

(proto string)

opSurplusRationumber <double>

adjusted underlying (operating) result, % (negative = deficit) (proto double)

populationinteger <int32>

summed from member-suburb Census populations (proto int32)

stateCodestring

(proto string)

crimeobject

null when the suburb has no gated crime data (proto shorts.v1alpha1.SuburbCrime)

sourcestring

'bocsar' (proto string)

sourceJurisdictionstring

'NSW' (proto string)

sourceLicencestring

'CC-BY-4.0' (proto string)

demographicsobject

(proto shorts.v1alpha1.SuburbDemographics)

censusYearinteger <int32>

(proto int32)

dwellingCountinteger <int32>

(proto int32)

labourForceParticipationRatenumber <double>

0..100 of persons aged 15+ (G43) (proto double)

medianAgenumber <double>

(proto double)

medianMonthlyMortgagenumber <double>

(proto double)

medianWeeklyHhdIncomenumber <double>

(proto double)

medianWeeklyPerIncomenumber <double>

(proto double)

medianWeeklyRentnumber <double>

(proto double)

pctBachelorOrHighernumber <double>

0..100 (G46) (proto double)

pctBornOverseasnumber <double>

Cultural demographics (ABS Census 2021: G01 birthplace/language, G13, G14). 0..100 (proto double)

pctCoupleWithChildrennumber <double>

0..100 families (G25) (proto double)

pctEnglishOnlynumber <double>

0..100 (speaks English only at home) (proto double)

pctFlatApartmentnumber <double>

0..100 occupied private dwellings (G32/G36) (proto double)

pctHighPersonalIncomenumber <double>

0..100, $2,000+ weekly (G17) (proto double)

pctLonePersonHouseholdnumber <double>

0..100 households (G25) (proto double)

pctLowPersonalIncomenumber <double>

Curated ABS Census 2021 GCP rates. Zero means absent in this proto3 API; the database retains NULL for missing/suppressed/quality-gated values. 0..100, $1-$499 weekly (G17) (proto double)

pctNoReligionnumber <double>

0..100 ("No religion") (proto double)

pctOwnedMortgagenumber <double>

(proto double)

pctOwnedOutrightnumber <double>

(proto double)

pctRentednumber <double>

(proto double)

pctSeparateHousenumber <double>

0..100 occupied private dwellings (G32/G36) (proto double)

pctTopLanguagenumber <double>

0..100 share speaking top_language (proto double)

pctTopReligionnumber <double>

0..100 share of the dominant religion (proto double)

populationinteger <int32>

(proto int32)

topLanguagestring

top language other than English at home (proto string)

topReligionstring

dominant religious affiliation (proto string)

unemploymentRatenumber <double>

0..100 of labour force (G43) (proto double)

elevationobject

Profile-only measured terrain block; absent when the DEM sample is missing or below the collector's published cell-count quality floor. (proto shorts.v1alpha1.SuburbElevation)

elevationMaxMnumbernull <double>

(proto double)

elevationMedianMnumbernull <double>

(proto double)

elevationMinMnumbernull <double>

(proto double)

landShareBelow1mnumbernull <double>

percent of valid sampled land area, 0..100 (proto double)

landShareBelow2mnumbernull <double>

percent of valid sampled land area, 0..100 (proto double)

landShareBelow5mnumbernull <double>

percent of valid sampled land area, 0..100 (proto double)

listingStatsobject

Crawl-derived listing aggregates; null when the suburb is outside the crawl catalog or the HOUSING_DROP_LISTINGS_ENABLED kill switch is off. (proto shorts.v1alpha1.SuburbListingStats)

avgAskingnumber <double>

mean asking price of priced for-sale listings, AUD; 0 if none (proto double)

avgSoldnumber <double>

mean sold price, AUD; 0 if none (proto double)

forSaleCountinteger <int32>

active for-sale listings captured (proto int32)

medianAskingnumber <double>

median asking price, AUD; 0 if none (proto double)

medianSoldnumber <double>

median sold price, AUD; 0 if none (proto double)

soldCountinteger <int32>

recent sold listings captured (proto int32)

similararray

most-similar suburbs nationally (knowledge graph) (proto shorts.v1alpha1.SimilarSuburb)

Array Items:
summaryobject

(proto shorts.v1alpha1.SuburbSummary)

connectivityQualityScorenumber <double>

0..100 (tech-tier proxy) (proto double)

crimeBreakInsRanknumber <double>

Crime percentile ranks (0..100, higher = more reported crime; latest 2-yr-pooled FY, CVS-adjusted). 0 = no data — pct_rank is strictly > 0 whenever a reliable observation exists. Small-population and statistically-unreliable suburbs are gated server-side (mv_suburb_crime_latest) and read as no-data. NSW (BOCSAR) only in Phase 1; uncovered states/TAS/NT stay 0. CC-BY sources. The rank is population-weighted WITHIN THE SUBURB'S OWN STATE, never across states: each police force counts offences under its own rules, so a cross-jurisdiction pool would compare incomparable counts. Read "82nd percentile" as "82nd of that state", and label it that way in any client. (proto double)

crimeMotorVehicleRanknumber <double>

Field 31 is reserved by convention for crime_property_damage_rank once a CVS anchor exists; do not use 31 for anything else. (proto double)

crimeViolentRanknumber <double>

(proto double)

dominantNbnTechstring

NBN connectivity (Local Insights); '' until ingested. Fixed Line | Fixed Wireless | Satellite (proto string)

federalDivisionstring

Federal electoral representation (AEC 2025 election), spatially joined. Commonwealth Electoral Division (proto string)

federalMemberstring

sitting House of Reps member (proto string)

federalPartystring

member's party (full name) (proto string)

federalPartyAbstring

party abbreviation (palette key) (proto string)

federalTppAlpnumber <double>

0..100 Labor two-party-preferred % (proto double)

latestMedianPricenumber <double>

0 if no price data (proto double)

latestPeriodstring <date-time>

(proto google.protobuf.Timestamp)

medianAgenumber <double>

(proto double)

medianWeeklyHhdIncomenumber <double>

(proto double)

pctBornOverseasnumber <double>

Cultural demographics for the map's "highlight" toggle (ABS Census 2021). 0..100 (proto double)

pctTopLanguagenumber <double>

0..100 share speaking top_language (proto double)

politicianPropertyCountinteger <int32>

Properties declared in the federal Registers of Members'/Senators' Interests that resolve to this suburb. A COUNT of declarations — the registers record what is held, never quantity or value. A scalar rather than a nested message on purpose: the map needs a value for every suburb in a state (~5,000 rows per request), and a message would drag the politicians descriptor into the hot /housing/[state] route bundle. (proto int32)

populationinteger <int32>

(proto int32)

postcodestring

(proto string)

regionCodestring

priced-region code (for the price series), '' if unpriced (proto string)

salCodestring

(proto string)

salNamestring

(proto string)

stateCodestring

(proto string)

stateDistrictstring

ABS State Electoral Division (proto string)

stateMemberstring

state lower-house member ('' for Hare-Clark TAS/ACT) (proto string)

statePartystring

state member's party (full name) (proto string)

statePartyAbstring

state party abbreviation (palette key) (proto string)

topLanguagestring

top language other than English at home, '' if none (proto string)

topReligionstring

dominant religious affiliation, '' if none (proto string)

yoyPctnumber <double>

(proto double)

defaultError
application/json
object

Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation

codestring [canceled, unknown, invalid_argument, deadline_exceeded, not_found, already_exists, permission_denied, resource_exhausted, failed_precondition, aborted, out_of_range, unimplemented, internal, unavailable, data_loss, unauthenticated]

The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].

detailsarray

A list of messages that carry the error details. There is no limit on the number of messages.

Array Items:
messagestring

A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.

curl -X POST "https://api.shorted.com.au/shorts.v1alpha1.HousingService/GetSuburbProfile" \
  -H "Content-Type: application/json" \
  -d '{
  "salCode": "string"
}'