Skip to main contentSkip to main content

Many suburbs in one call: statistics and recent sales

POST/v1/suburbs/batch1 credit per suburb, 3 with sold

Up to 5 (Free), 10 (Hobby), 20 (Starter, Builder), 50 (Pro), 100 (Growth, Scale) or 200 (Enterprise) suburbs per call, each with what `GET /v1/suburbs/{state}/{suburb}` returns (`stats`) and optionally what `.../sold` returns (`sold`). One call uses one rate-limit token however many suburbs it carries, so a sweep that was two calls per suburb becomes one call per batch. Priced per suburb, exactly as if you called each part singly: 1 credit for `stats`, plus 2 for `sold`, so 3 credits per suburb with both. A suburb not in the dataset comes back with `status: 404` in its slot and is not charged, and the `sold` part of a suburb outside our sold-records coverage (`has_sold_records: false`) is not charged either. If your remaining allowance cannot cover the batch, the whole call returns 429 `quota_exceeded` and nothing is charged. Each result has its own `status`; the same plan gates apply to every field as on the single-suburb endpoints.

Parameters

NameInRequiredDescription
suburbsqueryyesBody field: array of `{ state, suburb, postcode? }`. Duplicates are fetched and charged once.
includequerynoBody field: `["stats"]` (default), `["sold"]` or both.
soldquerynoBody field: `{ months, limit }` for the sold part, as on `.../sold`.

Example request

curl -X POST "https://api.propradar.com.au/v1/suburbs/batch" \
  -H "X-API-Key: pr_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "suburbs": [
    {
      "state": "NSW",
      "suburb": "Castle Hill"
    },
    {
      "state": "VIC",
      "suburb": "Richmond"
    }
  ],
  "include": [
    "stats",
    "sold"
  ],
  "sold": {
    "months": 12,
    "limit": 5
  }
}'

Example response

{ "query": { "include": ["stats", "sold"], "suburbs": 2, "sold": { "months": 12, "limit": 5 } },
  "billing": { "credits_per_suburb": 3, "credits_charged": 6, "credits_refunded": 0 },
  "results": [{ "state": "NSW", "suburb": "Castle Hill", "postcode": null, "status": 200,
                "stats": { "suburb": "CASTLE HILL", "...": "as GET /v1/suburbs/{state}/{suburb}" },
                "sold": { "sold": ["..."], "pagination": { "...": "..." } } }] }

Get an API key

Every endpoint takes an X-API-Key header. The free tier needs no credit card.

Other endpoints