POST/shorts.v1alpha1.HousingService/GetPropertyHistory

GetPropertyHistory

Full price timeline for a single physical address, across all its listings.

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
addressKeystring

(proto string)

Responses

200Success
application/json
object

Full price timeline for a single physical address (stable address_key), across all its listings and relists. Derived from ToS-restricted listing rows — deep-links OUT to the live portal page rather than reproducing the listing; flag-gated the same way as ListSuburbDropListings.

addressKeystring

(proto string)

currentobject

most-recent active listing (or most-recent if none active) (proto shorts.v1alpha1.PropertyListingSnapshot)

agencyNamestring

marketing agency ('' when not captured) (proto string)

bathroomsinteger <int32>

(proto int32)

bedroomsinteger <int32>

(proto int32)

carSpacesinteger <int32>

(proto int32)

firstSeenAtstring

RFC3339 (proto string)

isActiveboolean

(proto bool)

landSizeSqmnumber <double>

(proto double)

lastSeenAtstring

RFC3339 (proto string)

listingIdstring

portal advert id (proto string)

listingStatusstring

for_sale|under_offer|sold|withdrawn|unknown (proto string)

listingUrlstring

deep link to the live portal listing (proto string)

pricenumber <double>

canonical numeric ask (0 if unknown) (proto double)

priceDisplaystring

raw string as shown on the portal (proto string)

priceKindstring

fixed|range_low|range_high|offers_over|auction|poa|unknown (proto string)

propertyTypestring

(proto string)

sourcestring

'rea' | 'domain' (proto string)

currentPricenumber <double>

(proto double)

displayAddressstring

(proto string)

distinctDwellingsinteger <int32>

Distinct KNOWN bedroom counts seen under this address_key (NULL/0 excluded). >1 means the portal likely listed multiple differently-sized units of one building WITHOUT a unit number, so this timeline may blend more than one physical dwelling. Counting bedrooms (not raw bed/bath/type tuples) keeps cross-portal label noise from falsely flagging a single dwelling. A search- results crawl cannot recover the missing unit number, so the view warns instead of silently merging. See docs/feature/housing/architecture.md. (proto int32)

eventsarray

full timeline across ALL its listings, ordered observed_at asc (proto shorts.v1alpha1.PropertyPriceEvent)

Array Items:
firstPricenumber <double>

(proto double)

numListingsinteger <int32>

distinct source+listing_id at this address (proto int32)

postcodestring

(proto string)

stateCodestring

(proto string)

suburbstring

(proto string)

valuationobject

AVM valuation for this address (property.com.au). Unset when none exists, fetch_status != 'ok', or HOUSING_VALUATIONS_ENABLED is off. (proto shorts.v1alpha1.PropertyValuation)

bathroomsinteger <int32>

(proto int32)

bedroomsinteger <int32>

0 = unknown (proto int32)

buildingSizeSqmnumber <double>

floor area; 0 = unknown (proto double)

carSpacesinteger <int32>

(proto int32)

estimateConfidencestring

source confidence string ('' when not exposed); free-form (proto string)

estimateHighnumber <double>

AVM range high, AUD (0 = not provided) (proto double)

estimateLownumber <double>

AVM range low, AUD (0 = not provided) (proto double)

estimateMidnumber <double>

AVM point estimate, AUD (0 = not provided) (proto double)

fetchedAtstring

RFC3339 — AVMs are point-in-time; UI must show this (proto string)

landSizeSqmnumber <double>

0 = unknown (proto double)

profileUrlstring

deep link OUT to the source profile page (proto string)

propertyTypestring

'' = unknown (proto string)

rentEstimateMidnumber <double>

weekly rent estimate, AUD (0 when not exposed) (proto double)

sourcestring

'property.com.au' (proto string)

valuationGranularitystring

'exact' — the profile is the exact dwelling this address names 'building' — a unit whose own profile isn't indexed; this is the whole BUILDING's AVM used as a fallback. Consumers MUST label it "building estimate" and MUST NOT present it as unit-precise. (proto string)

yearBuiltinteger <int32>

0 = unknown (proto int32)

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/GetPropertyHistory" \
  -H "Content-Type: application/json" \
  -d '{
  "addressKey": "string"
}'