Search current listings across a whole state (Pro+ tier)
/v1/properties/listings3 creditsCosts 3 credits. Same data as `/v1/suburbs/{state}/{suburb}/listings`, but you give a state instead of one suburb. No address or property_id needed - just state plus whatever filters you care about. Good for "3+ bedroom houses under $900k anywhere in Melbourne" instead of walking suburbs one at a time. `suburb` and `postcode` narrow the search (comma-separated, up to 25 each, ANDed together if you pass both); leave both off and it searches the whole state. Pro+ only - lower plans get 403 before we even look at the other parameters, and the credits are refunded. `geo` is always in the response here, unlike the per-suburb endpoint, since the whole thing already requires Pro+. A state with no suburb/postcode filter can have thousands of rows, so use `cursor` to walk it rather than `offset`. Every row carries a `signals` block: `price_changes` (each asking-price change, oldest first, with `direction`), a `price_change_summary` (number of changes and cuts, first and latest asking price, overall change), and `relisted_at` when the property was withdrawn and advertised again. Filter with `signal=price_drop` or `signal=relisted`.
Parameters
| Name | In | Required | Description |
|---|---|---|---|
| state | query | yes | Two-letter state code (VIC, NSW, QLD, WA, SA, TAS, ACT, NT) |
| suburb | query | no | Comma-separated suburb names, up to 25. Omit to search the whole state. |
| postcode | query | no | Comma-separated 3-4 digit postcodes, up to 25. |
| 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) |
| max_price | query | no | Maximum asking price (AUD) |
| min_land_size | query | no | Minimum land size in square metres |
| max_land_size | query | no | Maximum land size in square metres |
| min_days_on_market | query | no | Minimum days since added_at. Capped at 365. |
| max_days_on_market | query | no | Maximum days since added_at. Use e.g. 7 or 14 for recently-listed only. Capped at 365. |
| modified_since | query | no | ISO 8601 timestamp. Only return listings whose record changed at or after it. |
| 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`. |
| offset | query | no | Legacy offset pagination (max 1000). Use `cursor` for a state-wide sweep. |
| signal | query | no | price_drop (latest asking-price change was a cut) or relisted (withdrawn and advertised again). |
| signal_days | query | no | Window for `signal`, in days (default 30 for price_drop, 90 for relisted; max 365). |
Example request
curl "https://api.propradar.com.au/v1/properties/listings?state=VIC&suburb=Richmond,South%20Yarra&min_beds=3&max_price=900000" \
-H "X-API-Key: pr_live_..."Example response
{ "state": "VIC",
"listings": [{ "property_id": "8644b8fd",
"address": "2/28 Danin Street, Richmond, VIC, 3121",
"suburb": "RICHMOND", "postcode": 3121,
"bedrooms": 3, "bathrooms": 2, "parking": 1,
"property_type": "Townhouse",
"asking_price_low": 825000, "asking_price_high": 875000,
"land_size": 210, "sale_type": "Auction",
"added_at": "2026-05-26T16:36:43.000Z",
"geo": { "lat": -37.8197, "lng": 145.0007 } }],
"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
- Current active listings in a suburb GET /v1/suburbs/{state}/{suburb}/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