Aristocles Pty Ltd Geospatial API

Provides a lookup for all Australian postcodes, mapping them to suburbs, states, and precise latitude/longitude coordinates. This is foundational data for any app with address forms, shipping calculators, or location-based services. Source: Based on data from Matthew Proctor and contributors. Licence: CC BY 4.0. Base path: /v1/data/australian-postcodes-geolocation. Requires an API key (X-API-Key).

Operations 3

GET /v1/data/australian-postcodes-geolocation List Australian Postcodes & Geolocation records #
GET /v1/data/australian-postcodes-geolocation/search Search Australian Postcodes & Geolocation by locality #
GET /v1/data/australian-postcodes-geolocation/{key} Get one Australian Postcodes & Geolocation record by postcode #

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/aristocles-com-au:aristocles-com-au-geospatial-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

aristocles-com-au-geospatial-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Aristocles Data Geospatial API
  description: 'Four Australian data APIs on one key — subscriptions, trade pricing, PBS drugs, and rental prices.


    ---


    ## Quick start


    **1. Get your API key** — register in one request:

    ```

    POST /v1/auth/register

    {"email": "you@example.com", "name": "Your Name"}

    ```

    Copy the `api_key` from the response.


    **2. Authenticate** — add your key to every request as a header:

    ```

    X-API-Key: ar_live_xxxxxxxxxxxx

    ```


    **3. Run the discovery endpoint** — returns all available slugs, example calls, and your account limits:

    ```

    GET /v1/discovery

    ```


    **4. Make your first call:**

    ```

    GET /v1/prices/netflix?country=AU

    GET /v1/trades/electrician/prices?state=NSW&country=AU

    GET /v1/pbs/metformin

    GET /v1/rental/VIC/Richmond

    ```


    ---


    ## Four data domains


    | Domain | Base path | What it covers |

    |---|---|---|

    | **Subscription Pricing** | `/v1/prices`, `/v1/services` | 50+ SaaS & streaming services: Netflix, Spotify, Adobe, etc. |

    | **Contractor Trades** | `/v1/trades` | Plumbers, electricians, painters across AU, US, UK, CA, NZ |

    | **PBS Drug Pricing** | `/v1/pbs` | 14,000+ medications on Australia''s Pharmaceutical Benefits Scheme |

    | **Rental Market** | `/v1/rental` | Median weekly rent by suburb and postcode across Australia |

    | **RBA Economic Data** | `/v1/rba` | Cash rate, AUD FX rates, CPI inflation, mortgage rates, credit aggregates |


    ---


    ## MCP Server


    All four data domains are also available as MCP tools at:

    ```

    https://api.aristocles.com.au/mcp/

    ```

    Connect any MCP-compatible AI agent (Claude, GPT, Gemini) to get structured data without writing API calls.'
  version: 2.1.0
tags:
- name: Geospatial
  description: 'Provides a lookup for all Australian postcodes, mapping them to suburbs, states, and precise latitude/longitude coordinates. This is foundational data for any app with address forms, shipping calculators, or location-based services. Source: Based on data from Matthew Proctor and contributors. Licence: CC BY 4.0. Base path: /v1/data/australian-postcodes-geolocation. Requires an API key (X-API-Key).'
paths:
  /v1/data/australian-postcodes-geolocation:
    get:
      tags:
      - Geospatial
      summary: List Australian Postcodes & Geolocation records
      description: 'List Australian Postcodes & Geolocation records with optional filters and pagination.


        **Source:** Based on data from Matthew Proctor and contributors (CC BY 4.0).


        **Fields returned:**

        - `postcode` (int) — The 4-digit Australian postcode.

        - `locality` (str) — The official suburb or locality name.

        - `state` (str) — The state or territory abbreviation (e.g., NSW, VIC).

        - `latitude` (float) — The GPS latitude coordinate of the locality''s centre.

        - `longitude` (float) — The GPS longitude coordinate of the locality''s centre.


        **Example:** `GET /v1/data/australian-postcodes-geolocation?limit=10&state=example`'
      operationId: list_endpoint_v1_data_australian_postcodes_geolocation_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Max records to return (1-100).
          default: 25
          title: Limit
        description: Max records to return (1-100).
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Records to skip, for pagination.
          default: 0
          title: Offset
        description: Records to skip, for pagination.
      - name: state
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The state or territory abbreviation (e.g., NSW, VIC).
          examples:
          - example
          title: State
        description: The state or territory abbreviation (e.g., NSW, VIC).
      - name: X-API-Key
        in: header
        required: true
        schema:
          type: string
          title: X-Api-Key
      responses:
        '200':
          description: A page of Australian Postcodes & Geolocation records with pagination metadata.
          content:
            application/json:
              schema: {}
              example:
                data:
                  items:
                  - postcode: 42
                    locality: example
                    state: example
                    latitude: 4.2
                    longitude: 4.2
                  total: 1
                  limit: 25
                  offset: 0
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/data/australian-postcodes-geolocation/search:
    get:
      tags:
      - Geospatial
      summary: Search Australian Postcodes & Geolocation by locality
      description: 'Search Australian Postcodes & Geolocation records by `locality` (partial, case-insensitive).


        **Example:** `GET /v1/data/australian-postcodes-geolocation/search?q=exa`'
      operationId: search_endpoint_v1_data_australian_postcodes_geolocation_search_get
      parameters:
      - name: q
        in: query
        required: true
        schema:
          type: string
          minLength: 2
          maxLength: 100
          description: Case-insensitive partial match on locality.
          examples:
          - exa
          title: Q
        description: Case-insensitive partial match on locality.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Max records to return (1-100).
          default: 25
          title: Limit
        description: Max records to return (1-100).
      - name: X-API-Key
        in: header
        required: true
        schema:
          type: string
          title: X-Api-Key
      responses:
        '200':
          description: Matching Australian Postcodes & Geolocation records.
          content:
            application/json:
              schema: {}
              example:
                data:
                  items:
                  - postcode: 42
                    locality: example
                    state: example
                    latitude: 4.2
                    longitude: 4.2
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/data/australian-postcodes-geolocation/{key}:
    get:
      tags:
      - Geospatial
      summary: Get one Australian Postcodes & Geolocation record by postcode
      description: 'Fetch a single Australian Postcodes & Geolocation record by its `postcode`.


        **Example:** `GET /v1/data/australian-postcodes-geolocation/42`'
      operationId: get_endpoint_v1_data_australian_postcodes_geolocation__key__get
      parameters:
      - name: key
        in: path
        required: true
        schema:
          type: string
          description: The postcode value to look up (case-insensitive).
          examples:
          - '42'
          title: Key
        description: The postcode value to look up (case-insensitive).
      - name: X-API-Key
        in: header
        required: true
        schema:
          type: string
          title: X-Api-Key
      responses:
        '200':
          description: A single Australian Postcodes & Geolocation record.
          content:
            application/json:
              schema: {}
              example:
                data:
                  postcode: 42
                  locality: example
                  state: example
                  latitude: 4.2
                  longitude: 4.2
        '404':
          content:
            application/json:
              example:
                error:
                  code: NOT_FOUND
                  message: No Australian Postcodes & Geolocation record for '...'.
          description: Not Found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    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
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError