Microburbs Suburb - Profile API

ABS geo profile — admin chain + mesh-block inventory.

Operations 2

GET /v1/suburbs/{suburb_name}/profile ABS geo profile #
GET /v1/suburbs/list List suburbs #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/microburbs-suburb-profile-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

microburbs-suburb-profile-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Microburbs Property Data Suburb - Profile API
  summary: Suburb and property data for every Australian locality.
  description: '**One REST API for demographics, market indicators, risk scores, AVM and

    ranking — backed by 25+ years of Australian transactions and census data.**


    ```bash

    curl ''https://api.microburbs.com.au/v1/properties/GANSW704074813/profile'' \

    -H ''Authorization: Bearer test''

    ```


    ## Why Microburbs


    - **Data depth** — Demographics, lifestyle, risk, market, AVM and growth forecasts — all keyed to the same national suburb and property graph.'
  version: 1.0.0
servers:
- url: https://api.microburbs.com.au
  description: Production
security:
- BearerAuth: []
tags:
- name: Suburb - Profile
  description: ABS geo profile — admin chain + mesh-block inventory.
paths:
  /v1/suburbs/{suburb_name}/profile:
    get:
      tags:
      - Suburb - Profile
      summary: ABS geo profile
      description: 'The suburb''s upward ABS admin chain — LGA, SA2/3/4, GCCSA,

        state, postcode. Use ``/v1/suburbs/list`` to discover canonical

        SAL names (and filter by state / LGA / SA4 / postcode).


        **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=`, then use the exact `data[].area_name` it returns. Suburb data endpoints do not guess a state or typo-correct names.


        **Price: 3¢ per call.**'
      operationId: get_suburb_profile_v1_suburbs__suburb_name__profile_get
      parameters:
      - name: suburb_name
        in: path
        required: true
        schema:
          type: string
          title: Suburb Name
          example: Belmont North
        description: 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.
        example: Belmont North
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponse_SuburbProfile_'
              example:
                data:
                  gccsa: Rest of NSW
                  lga: Lake Macquarie
                  postcode: '2280'
                  sa2: Belmont - Bennetts Green
                  sa3: Lake Macquarie - East
                  sa4: Newcastle and Lake Macquarie
                  state: New South Wales
                  suburb: Belmont North
          headers:
            X-Cost-Cents:
              description: Exact cents billed for this call.
              required: true
              schema:
                type: integer
                minimum: 0
            X-Spent-Cents:
              description: Cumulative cents Autumn reports used for this prepaid wallet.
              required: true
              schema:
                type: integer
                minimum: 0
            X-Remaining-Cents:
              description: Spendable prepaid credit left after this call.
              required: true
              schema:
                type: integer
                minimum: 0
            X-Period-End:
              description: Start of the next UTC calendar month. Prepaid credit does not expire at this timestamp.
              required: true
              schema:
                type: string
                format: date-time
            X-Balance-Cents:
              description: Compatibility alias of X-Remaining-Cents.
              required: true
              schema:
                type: integer
                minimum: 0
            X-Rate-Card-Version:
              description: Version of the endpoint rate card used for this call.
              required: true
              schema:
                type: integer
                minimum: 1
            X-Request-Id:
              description: Request identifier to quote in support requests.
              required: true
              schema:
                type: string
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
              example:
                detail:
                - type: missing
                  loc:
                  - query
                  - address
                  msg: Field required
                  input: null
      x-price-cents: 3
  /v1/suburbs/list:
    get:
      tags:
      - Suburb - Profile
      summary: List suburbs
      description: 'List Australian suburbs (SALs). Always returns `{suburb, state}`

        per row so SAL-name collisions across states are unambiguous.


        With no filter you get the first 1000 suburbs alphabetically

        (browser-renderable preview). Pass any of the filters to narrow:

        state / lga / sa4 / sa3 / postcode / q (name search). Filters

        combine (AND). Flat cost regardless of how many rows come back.


        **Name search (`q`) is typo-tolerant.** It tries an exact match, then

        substring, then a fuzzy near-miss, and returns `match`

        (`exact` / `contains` / `fuzzy`) and `score` on every row so you can

        see which happened.


        **Always tell the user which suburb you resolved to, and its state,

        before quoting numbers for it.** A fuzzy match is a suggestion, not a

        confirmation — `rokeby` is one letter from Kokeby in Western Australia

        and Rokeby exists in both Tasmania and Victoria. If more than one

        candidate is plausible, ask rather than pick.


        When `q` is combined with `state`, the state is a **preference, not a

        filter**: in-state candidates rank first, but a suburb of that name in

        another state is still returned rather than hidden, so a near-miss

        becomes "Seaview is in Victoria, not Tasmania" instead of "no data".

        Every other filter stays a strict AND.


        **Price: 3¢ per call.**'
      operationId: get_suburb_list_v1_suburbs_list_get
      parameters:
      - name: state
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by state / territory (e.g. NSW, VIC, 'New South Wales').
          title: State
          example: NSW
        description: Filter by state / territory (e.g. NSW, VIC, 'New South Wales').
        example: NSW
      - name: lga
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by Local Government Area name.
          title: Lga
          example: Lake Macquarie
        description: Filter by Local Government Area name.
        example: Lake Macquarie
      - name: sa4
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by SA4 name.
          title: Sa4
          example: Newcastle and Lake Macquarie
        description: Filter by SA4 name.
        example: Newcastle and Lake Macquarie
      - name: sa3
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by SA3 name.
          title: Sa3
          example: Lake Macquarie - East
        description: Filter by SA3 name.
        example: Lake Macquarie - East
      - name: postcode
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by 4-digit postcode (POA).
          title: Postcode
          example: '2280'
        description: Filter by 4-digit postcode (POA).
        example: '2280'
      - name: q
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Suburb-name search. Matches exactly, then by substring, then by fuzzy near-miss so a typo still resolves ('devenport' -> Devonport). Each row comes back with `match` and `score` saying how it was found.
          title: Q
          example: belmont
        description: Suburb-name search. Matches exactly, then by substring, then by fuzzy near-miss so a typo still resolves ('devenport' -> Devonport). Each row comes back with `match` and `score` saying how it was found.
        example: belmont
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponse_list_SuburbListItem__'
              example:
                data:
                - state: New South Wales
                  suburb: Belmont North
          headers:
            X-Cost-Cents:
              description: Exact cents billed for this call.
              required: true
              schema:
                type: integer
                minimum: 0
            X-Spent-Cents:
              description: Cumulative cents Autumn reports used for this prepaid wallet.
              required: true
              schema:
                type: integer
                minimum: 0
            X-Remaining-Cents:
              description: Spendable prepaid credit left after this call.
              required: true
              schema:
                type: integer
                minimum: 0
            X-Period-End:
              description: Start of the next UTC calendar month. Prepaid credit does not expire at this timestamp.
              required: true
              schema:
                type: string
                format: date-time
            X-Balance-Cents:
              description: Compatibility alias of X-Remaining-Cents.
              required: true
              schema:
                type: integer
                minimum: 0
            X-Rate-Card-Version:
              description: Version of the endpoint rate card used for this call.
              required: true
              schema:
                type: integer
                minimum: 1
            X-Request-Id:
              description: Request identifier to quote in support requests.
              required: true
              schema:
                type: string
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
              example:
                detail:
                - type: missing
                  loc:
                  - query
                  - address
                  msg: Field required
                  input: null
      x-price-cents: 3
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ApiResponse_SuburbProfile_:
      properties:
        data:
          anyOf:
          - $ref: '#/components/schemas/SuburbProfile'
          - type: 'null'
          description: The endpoint's payload, or `null` when Microburbs has no value.
        available:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Available
          description: '`false` on no-data responses. Omitted on success — branch on `data !== null` if you want a single discriminator.'
        reason:
          anyOf:
          - type: string
          - type: 'null'
          title: Reason
          description: Machine-readable slug naming the no-data condition (e.g. `no_avm_for_GANSW704074813`). Stable per endpoint. Omitted on success.
        message:
          anyOf:
          - type: string
          - type: 'null'
          title: Message
          description: Human-readable explanation. Omitted on success.
      type: object
      title: ApiResponse[SuburbProfile]
    ApiResponse_list_SuburbListItem__:
      properties:
        data:
          anyOf:
          - items:
              $ref: '#/components/schemas/SuburbListItem'
            type: array
          - type: 'null'
          title: Data
          description: The endpoint's payload, or `null` when Microburbs has no value.
        available:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Available
          description: '`false` on no-data responses. Omitted on success — branch on `data !== null` if you want a single discriminator.'
        reason:
          anyOf:
          - type: string
          - type: 'null'
          title: Reason
          description: Machine-readable slug naming the no-data condition (e.g. `no_avm_for_GANSW704074813`). Stable per endpoint. Omitted on success.
        message:
          anyOf:
          - type: string
          - type: 'null'
          title: Message
          description: Human-readable explanation. Omitted on success.
      type: object
      title: ApiResponse[list[SuburbListItem]]
    SuburbProfile:
      properties:
        suburb:
          type: string
          title: Suburb
          description: Suburb (SAL — ABS Suburb and Locality).
        lga:
          anyOf:
          - type: string
          - type: 'null'
          title: Lga
          description: Local Government Area.
        sa2:
          anyOf:
          - type: string
          - type: 'null'
          title: Sa2
          description: SA2 name.
        sa3:
          anyOf:
          - type: string
          - type: 'null'
          title: Sa3
          description: SA3 name.
        sa4:
          anyOf:
          - type: string
          - type: 'null'
          title: Sa4
          description: SA4 name.
        gccsa:
          anyOf:
          - type: string
          - type: 'null'
          title: Gccsa
          description: Greater Capital City Statistical Area.
        state:
          anyOf:
          - type: string
          - type: 'null'
          title: State
          description: State / Territory.
        postcode:
          anyOf:
          - type: string
          - type: 'null'
          title: Postcode
          description: Postcode (POA).
      type: object
      required:
      - suburb
      title: SuburbProfile
      description: ABS geo profile — the upward admin chain for a suburb.
      example:
        gccsa: Rest of NSW
        lga: Lake Macquarie
        postcode: '2280'
        sa2: Belmont - Bennetts Green
        sa3: Lake Macquarie - East
        sa4: Newcastle and Lake Macquarie
        state: New South Wales
        suburb: Belmont North
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    SuburbListItem:
      properties:
        suburb:
          type: string
          title: Suburb
          description: Suburb (SAL) name.
        state:
          type: string
          title: State
          description: State / Territory.
        match:
          anyOf:
          - type: string
          - type: 'null'
          title: Match
          description: 'How this row matched the `q` you sent — `exact`, `contains`, or `fuzzy` (a near-miss recovered from a likely typo). Only present when `q` was supplied. **Anything other than `exact` is a suggestion, not a confirmation: tell the user which suburb and state you used before you quote numbers for it.** A `fuzzy` row in a different state from the one the user named is very often the wrong place.'
        score:
          anyOf:
          - type: number
          - type: 'null'
          title: Score
          description: Match confidence 0-1 (1.0 = exact). Only present when `q` was supplied. Use it to decide between asking the user and proceeding — not as a licence to pick silently.
      type: object
      required:
      - suburb
      - state
      title: SuburbListItem
      description: 'One row in the suburb directory — minimum to disambiguate SAL

        names that collide across states (e.g. ''Springfield'' in NSW + QLD).'
      example:
        state: New South Wales
        suburb: Belmont North
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: API key as Bearer token. Use `test` for the public sandbox (works only for GNAFs GANSW704074813, GAACT714845944, GAVIC419929404, GAQLD162849753, GAWA_146662014, GASA_422266490, GATAS702292990, GANT_703835649 and SALs 'Belmont North', 'Bondi', 'St Kilda (Vic.)', 'Fortitude Valley', 'Subiaco', 'Unley', 'Sandy Bay', 'Kambah', 'Nightcliff', always 0¢). Mint your own at /developers/keys for full access.
x-tagGroups:
- name: Suburb
  tags:
  - Suburb - Hero
  - Suburb - Profile
  - Suburb - Market
  - Suburb - Forecast
  - Suburb - Listings
  - Suburb - Sales
  - Suburb - Street Forecasts
  - Suburb - Demographics
  - Suburb - Ethnicity
  - Suburb - Development
  - Suburb - Schools
  - Suburb - Risks
  - Suburb - Crime
  - Suburb - Lifestyle
  - Suburb - Similar
  - Suburb - Shapes
- name: Finders
  tags:
  - Suburb - Finder
- name: Property
  tags:
  - Property - Profile
  - Property - Basics
  - Property - Valuation
  - Property - History
  - Property - Title
  - Property - Comparables
  - Property - Development
  - Property - Schools
  - Property - Amenities
  - Property - Risks
  - Property - Surroundings
  - Property - Context
- name: Area Statistics
  tags:
  - Area Statistics
- name: Mesh Block
  tags:
  - Mesh Block - Profile
- name: LGA
  tags:
  - LGA - Profile
- name: SA4
  tags:
  - SA4 - Profile
- name: Geocode
  tags:
  - Geocode
- name: Account
  tags:
  - Account