Street-level price forecasts
/v1/suburbs/{suburb_name}/street-forecasts60¢ per call2/4/8-year price forecasts for every street in the suburb, anchored to the real sold median.
Unpaged by default. Large suburbs are large — Point Cook has 943 streets
(~1.4 MB) — so pass limit/offset when you don't need the lot. total
reports how many exist. Flat price per call regardless of page size.
Exact suburb identifier required. Exact ABS Suburb and Locality (SAL) name, e.g. Burwood (NSW) — many suburbs carry a state suffix. If starting from free text or an unverified bare name, first call GET /v1/geocode/suburb?q=<text>, then use the exact data[].area_name it returns. Suburb data endpoints do not guess a state or typo-correct names.
Price: 60¢ per call.
Authorization
Request
The only values you send. Fields under Responses below are what comes back — you never pass those.
Path parameters
suburb_namestringrequiredExact ABS Suburb and Locality (SAL) name, e.g. `Burwood (NSW)` — many suburbs carry a state suffix. If starting from free text or an unverified bare name, first call `GET /v1/geocode/suburb?q=<text>`, then use the exact `data[].area_name` it returns. Suburb data endpoints do not guess a state or typo-correct names.
Query parameters
limitinteger1–∞optionalStreets to return (default: all).
offsetinteger0–∞optionalStreet offset — page with `limit`.
Responses
Successful Response
area_namestringalways returnedSuburb these streets belong to, as the canonical ABS SAL name — the resolved form of whatever suburb was requested, so echo this back rather than the caller's input.
area_levelstringalways returnedGeographic level of `area_name`. Always 'suburb' here; present so responses across the area endpoints share one shape.
metricstringalways returnedIdentifies which dataset this payload is, for callers routing several area responses through common code. Always 'street_price_forecasts'.
totalintegeralways returnedHow many forecastable streets the suburb has in all — counted before `limit`/`offset` are applied, so it is the figure to page against and will exceed `len(streets)` on a paged request. Streets with no sold median are already excluded, so this is usually fewer than the suburb's true street count.
streetsarray of StreetForecastRowalways returnedOne entry per forecastable street. Order is the stored order — stable between calls (so `offset` paging is safe) but not sorted by price, growth or name; sort client-side if you need a ranking.
/v1/suburbs/{suburb_name}/street-forecastscurl --request GET \
--url 'https://api.microburbs.com.au/v1/suburbs/Belmont%20North/street-forecasts' \
--header 'Authorization: Bearer test'{
"data": {
"area_level": "suburb",
"area_name": "Belmont North",
"metric": "street_price_forecasts",
"streets": [
{
"annual_2y": 8,
"annual_4y": 6.3,
"annual_8y": 5,
"current_price": 1159000,
"history": [
{
"price": 1038603.34,
"suburb_med": 866399,
"year": 2024
},
{
"price": 1083975.34,
"suburb_med": 948908,
"year": 2025
},
{
"price": 1159000,
"suburb_med": 1040068,
"year": 2026
}
],
"houses_on_street": 146,
"median_house_rent_week": 791.2,
"n_sales": 289,
"rental_turnover": "Every 5.9 years (quite tightly held)",
"renters_pct": "18%",
"sale_turnover": "Every 12.0 years (average turnover)",
"street": "Wommara Ave",
"target_2y": 1352652.97,
"target_4y": 1480849.45,
"target_8y": 1718217.61,
"units_on_street": 4
}
]
}
}