Current active listings in a suburb
/v1/suburbs/{state}/{suburb}/listings3 creditsCosts 3 credits. Paginated list of currently-on-market listings, newest first. Returns card-level fields only (id, address, beds/baths/parking, property type, asking price, sale type, added date); call `/v1/properties/{property_id}` for floor area, valuation, potential sell price, yield, and the full structured address. Use `pagination.next_cursor` for stable pagination; `offset` is supported but silently misses rows when new listings appear between page fetches. `land_size` and the `min_land_size`/`max_land_size` filters are Pro+ only, same as on `/v1/properties/listings`: below Pro the field is null and passing either filter is a 403. **Sizing a walk:** at most 10 rows come back per call, so a full walk costs roughly `listings in the suburb / 10` calls, not a fixed page count. A quiet suburb is one call; the largest in the dataset runs to about 485 listings, or 49. Follow `next_cursor` until it is null rather than assuming a number of pages. **Refreshing:** use `modified_since` instead of re-walking, and take listing endings from `withdrawn` events on /v1/properties/recently-modified. Note a relist keeps its ORIGINAL `added_at` when the off-market gap was under 90 days, so it reappears in its old sort position rather than at the top, so a newest-first incremental walk will not see it, but `modified_since` will.
Parameters
| Name | In | Required | Description |
|---|---|---|---|
| state | path | yes | Two-letter state code |
| suburb | path | yes | Suburb name (URL-encoded) |
| property_type | query | no | Exact match, case-insensitive (House, Apartment, Townhouse, Unit, Villa) |
| min_beds | query | no | Minimum bedrooms |
| max_beds | query | no | Maximum bedrooms |
| min_price | query | no | Minimum asking price (AUD). Hobby and above; 403 below it. |
| max_price | query | no | Maximum asking price (AUD). Hobby and above; 403 below it. |
| min_land_size | query | no | Minimum land size in square metres. Pro+ only (403 on lower plans). Excludes listings with no land_size on file rather than treating unknown as a match. |
| max_land_size | query | no | Maximum land size in square metres. Pro+ only (403 on lower plans). Excludes listings with no land_size on file rather than treating unknown as a match. |
| modified_since | query | no | ISO 8601 timestamp. Only return listings whose record changed at or after it. Turns a nightly re-walk into a delta: pass your last run's timestamp and quiet suburbs return a single short page. Cannot report listings that ENDED (those leave this endpoint entirely), so pair it with `withdrawn` events on /v1/properties/recently-modified. |
| limit | query | no | Page size (default 10, max 10). Use `cursor` for deeper walks. |
| cursor | query | no | Opaque cursor from a previous response's `pagination.next_cursor`. Recommended over `offset` for stable pagination. |
| offset | query | no | Legacy offset pagination (max 1000). Use `cursor` for deeper walks. |
Example request
curl "https://api.propradar.com.au/v1/suburbs/VIC/Pascoe%20Vale/listings?property_type=House" \
-H "X-API-Key: pr_live_..."Example response
{ "state": "VIC", "suburb": "Pascoe Vale",
"listings": [{ "property_id": "8644b8fd",
"address": "2/28 Danin Street, Pascoe Vale, VIC, 3044",
"bedrooms": 2, "bathrooms": 2, "parking": 1,
"property_type": "Apartment",
"asking_price_low": 725000, "asking_price_high": 750000,
"land_size": 154, "sale_type": "Auction",
"added_at": "2026-05-26T16:36:43.000Z" }],
"pagination": { "next_cursor": "eyJk...", "next_offset": 10, "limit": 10 } }Get an API key
Every endpoint takes an X-API-Key header. The free tier needs no credit card.
Other endpoints
- Many suburbs in one call: statistics and recent sales POST /v1/suburbs/batch
- List every suburb in the dataset (coverage index) GET /v1/suburbs
- Authenticated health probe GET /v1/health
- Account usage and credit allowance GET /v1/usage
- Resolve an address to a property_id GET /v1/properties/search
- Look up a single property GET /v1/properties/{property_id}
- Recent sold comparables (Hobby+; lat/lng mode Pro+) GET /v1/comparables
- Suburb statistics GET /v1/suburbs/{state}/{suburb}
- Trust-gated suburb rankings (Pro+ tier) GET /v1/suburbs/rankings
- Multi-criteria suburb screener (Pro+ tier) GET /v1/suburbs/screen
- Recent sold properties in a suburb GET /v1/suburbs/{state}/{suburb}/sold
- Search current listings across a whole state (Pro+ tier) GET /v1/properties/listings
- Property event history GET /v1/properties/{property_id}/history
- Most recent sold record (Hobby+ tier) GET /v1/properties/{property_id}/sold_summary
- Potential sell price confidence band GET /v1/properties/{property_id}/psp_with_confidence
- Similar active listings GET /v1/properties/{property_id}/similar
- Nearby active listings GET /v1/properties/{property_id}/nearby
- Batch property lookup (Starter+ tier) POST /v1/properties/bulk
- Value an off-market address: instant estimate or enhanced valuation (Hobby+ tier) POST /v1/valuations
- Poll an off-market valuation job GET /v1/valuations/{id}
- Valuation range for a locality, no address needed (Pro+ tier) POST /v1/valuations/estimate
- 12-month outlook for house/unit price and rent (Pro+ tier) GET /v1/suburbs/{state}/{suburb}/forecast
- Development applications near a point (Pro+ tier) GET /v1/developments/nearby
- Properties currently advertised for rent in a suburb (Hobby+ tier) GET /v1/suburbs/{state}/{suburb}/rentals
- Weekly rent estimate for a locality, no address needed (Pro+ tier) POST /v1/rent/estimate
- Recently-modified event feed (Starter+ tier) GET /v1/properties/recently-modified
- Investment score + cashflow (Pro+ tier) GET /v1/properties/{property_id}/investment_analysis
- Market cycle classification (Pro+ tier) GET /v1/suburbs/{state}/{suburb}/market_cycle
- Annual price/rent/yield time-series (Pro+ tier) GET /v1/suburbs/{state}/{suburb}/price_history
- Market-heat time-series (Pro+ tier) GET /v1/suburbs/{state}/{suburb}/heat_history
- List macro regions (Growth+ tier) GET /v1/regions
- Region macro indicators (Growth+ tier) GET /v1/regions/{slug}
- Suggest addresses as the user types GET /v1/addresses/suggest
- Turn free text into suburbs GET /v1/suburbs/resolve