DataQuoll Addresses API

Every Australian address from G-NAF, matched exactly, with what is known about its point. One address per call, never a list.

Operations 1

POST /api/v1/address Look up an Australian address and what is known about it #

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/dataquoll-io:dataquoll-io-addresses-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

dataquoll-io-addresses-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DataQuoll Addresses API
  description: 'DataQuoll turns fragmented Australian public data into answers about locations, events and assets.


    Today''s datasets: real-time emergency incidents and warnings (bushfires, floods, storms, earthquakes, rescues, and more) in one GeoJSON schema with CAP-aligned severity, urgency, and certainty fields that carry only what each agency states; disaster declarations reported by LGA as declared-area status; live river gauges with BoM flood classes; and a historical archive. DataQuoll was formerly EmergencyAPI. Standards-validated CAP output is available as an Atom feed via ?format=cap-atom and as per-incident documents via /api/v1/incidents/{id}?format=cap-au, both validated against the OASIS CAP 1.2 schema and the CAP-AU Profile v3.0. Includes real-time incidents, proximity search, and historical audit trail snapshots.


    **Disclaimer:** DataQuoll provides aggregated emergency incident data for informational

    purposes only. This data is sourced from

    official government feeds, community-decoded SA pager feeds and an agency feed whose licence is not published (NT PFES).

    It may be delayed, incomplete, or inaccurate. Do not use this API as a substitute for

    official emergency warnings.'
  version: 1.113.0
  contact:
    name: DataQuoll Support
    url: https://dataquoll.io
  license:
    name: Proprietary
servers:
- url: https://dataquoll.io
  description: Primary host
- url: https://emergencyapi.com
  description: Legacy host, identical responses until the announced sunset
security:
- BearerAuth: []
tags:
- name: Addresses
  description: Every Australian address from G-NAF, matched exactly, with what is known about its point. One address per call, never a list.
paths:
  /api/v1/address:
    post:
      operationId: lookupAddress
      summary: Look up an Australian address and what is known about it
      description: 'One Australian address in, one call: the address matched EXACTLY against G-NAF (every Australian address, Geoscape Australia under the Open G-NAF EULA), and what DataQuoll knows about its point: the local government area, declared-area status (with the declarations scope), active incidents within radiusKm, the nearest river gauge, the nearest emergency facilities and the mobile network sites around it.


        Matching is exact, never fuzzy: a misspelt street or suburb returns status no_match with the part that failed (reason and part), never a guess and never a list of addresses. Units (3/12, Unit 3, U3), levels, lots (Lot 101 Port Wakefield Rd), ranges (87-89) and suffixes (12A) are read exactly. Give the state or the postcode.


        precision says how far G-NAF''s point can be trusted: address (on the property), street, locality or interpolated. The LGA and declared-area status are given only for an address-level point, because a street or suburb point can sit in another LGA. The address is sent in the body and is never logged, stored or echoed; responses are not cached. Hazard history for the point is a separate call to /api/v1/hazard-history/point with the returned coordinates.'
      tags:
      - Addresses
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - address
              properties:
                address:
                  type: string
                  maxLength: 200
                  description: One line, e.g. "12 Smith St, Morphett Vale SA 5162". State or postcode required.
                radiusKm:
                  type: number
                  exclusiveMinimum: 0
                  maximum: 50
                  default: 10
                  description: Radius for the incidents lane, in km.
      security:
      - BearerAuth: []
      - PaymentAuth: []
      x-payment-info:
        offers:
        - amount: '80000'
          currency: '0x20C000000000000000000000b9537d11c60E8b50'
          description: One request
          intent: charge
          method: tempo
        price:
          mode: fixed
          currency: USD
          amount: '0.08'
        protocols:
        - mpp:
            method: tempo
            intent: charge
            currency: '0x20C000000000000000000000b9537d11c60E8b50'
        - x402:
            scheme: exact
            network: eip155:8453
            asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
            amount: '80000'
      responses:
        '200':
          description: A match with its answers, or status no_match with the part that failed
          headers:
            Payment-Receipt:
              $ref: '#/components/headers/PaymentReceipt'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                    - matched
                    - no_match
                  reason:
                    type: string
                    description: no_match only.
                    enum:
                    - not_understood
                    - needs_state
                    - no_locality
                    - ambiguous_locality
                    - no_street
                    - ambiguous_street
                    - no_number
                    - no_lot
                    - ambiguous_number
                    - needs_unit
                    - no_unit
                    - ambiguous_unit
                    - postcode_mismatch
                  part:
                    type: string
                    description: no_match only. The part of the address that failed, never its text.
                    enum:
                    - address
                    - postcode
                    - state
                    - unit
                    - level
                    - number
                    - street
                    - locality
                    - po_box
                  count:
                    type: integer
                    description: needs_unit and the ambiguous reasons. How many addresses share that part (never listed).
                  understood:
                    type: object
                    description: Which parts the parser found (true or false for building, unit, level, lot, number, state, postcode). Names only, never the text sent.
                    additionalProperties:
                      type: boolean
                  address:
                    type: object
                    properties:
                      gnafPid:
                        type: string
                      formatted:
                        type: string
                      components:
                        type: object
                        properties:
                          building:
                            type:
                            - string
                            - 'null'
                          level:
                            type:
                            - object
                            - 'null'
                          unit:
                            type:
                            - object
                            - 'null'
                          number:
                            type:
                            - string
                            - 'null'
                          lot:
                            type:
                            - string
                            - 'null'
                          street:
                            type: string
                          locality:
                            type: string
                          state:
                            type: string
                          postcode:
                            type:
                            - string
                            - 'null'
                      coordinates:
                        type: object
                        properties:
                          lat:
                            type: number
                          lng:
                            type: number
                      precision:
                        type: string
                        enum:
                        - address
                        - street
                        - interpolated
                        - locality
                        - unstated
                      geocodeType:
                        type:
                        - string
                        - 'null'
                        description: G-NAF's default geocode type, e.g. PC (property centroid), STL, LOC, GG.
                      confidence:
                        type:
                        - integer
                        - 'null'
                        description: 'G-NAF''s confidence: 2 is held by three or more contributors, -1 by none currently.'
                      lowConfidence:
                        type: boolean
                      alias:
                        type: boolean
                      addressType:
                        type:
                        - string
                        - 'null'
                        enum:
                        - rural
                        - urban
                        - null
                      meshBlocks:
                        type: object
                        description: ABS mesh block codes (2021 and 2026 editions).
                        properties:
                          '2021':
                            type:
                            - string
                            - 'null'
                          '2026':
                            type:
                            - string
                            - 'null'
                  location:
                    type: object
                    properties:
                      state:
                        type:
                        - string
                        - 'null'
                      lga:
                        type: object
                        description: code and name, or null with a reason when the point is not on the property.
                  declarations:
                    type: object
                    description: Declared-area status (the /api/v1/declarations/point answer) with included true, or included false and a reason. Status only, never eligibility. Any lane (location.lga, declarations, incidents, nearestGauge, facilities, mobileSites) that fails on its own answers { error } instead, and the rest of the answer stands.
                  incidents:
                    type: object
                    properties:
                      radiusKm:
                        type: number
                      count:
                        type: integer
                      nearest:
                        type: array
                        items:
                          type: object
                        description: Up to 10 incident features, nearest first.
                  nearestGauge:
                    type:
                    - object
                    - 'null'
                    description: The nearest river (water-level) gauge with its distance in metres.
                  facilities:
                    type: object
                    description: The nearest emergency facility of each class within 25 km.
                  mobileSites:
                    type: object
                    description: Mobile site records within 2 km, counted per operator, and the nearest 5.
                  disclaimer:
                    type: string
        '400':
          description: The body is not a JSON object with an address string, or radiusKm is out of range
        '401':
          description: Missing or invalid API key. While pay per request is on, a request with no Authorization header gets 402 instead.
        '402':
          description: 'Pay per request: no key was sent, so the answer is a price. The WWW-Authenticate header carries an MPP Payment challenge; pay it and send the request again with Authorization: Payment. Also sent, with a fresh price, when a payment fails its checks or its price has expired. Only while pay per request is on; otherwise a request without a key gets 401.'
          headers:
            WWW-Authenticate:
              $ref: '#/components/headers/PaymentChallenge'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Rate limit exceeded
components:
  headers:
    PaymentChallenge:
      description: 'The MPP payment challenge, scheme Payment: the price, the token, where to pay, the realm (dataquoll.io) and when the price expires, 5 minutes after it is issued. Pay it with an MPP client and send the request again with Authorization: Payment.'
      schema:
        type: string
    PaymentReceipt:
      description: 'Sent only on the response to a paid request (Authorization: Payment): the receipt for the payment, naming its transaction. Never sent when a key was used.'
      schema:
        type: string
  schemas:
    ProblemDetails:
      type: object
      description: RFC 9457 Problem Details
      properties:
        type:
          type: string
          example: https://emergencyapi.com/errors/rate-limit-exceeded
        title:
          type: string
          example: Rate Limit Exceeded
        status:
          type: integer
          example: 429
        detail:
          type: string
        instance:
          type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: 'API key in format: eak_live_... . Keys work from any origin by default. A key can optionally be restricted to specific browser origins in the dashboard; a request from a browser origin not on the allowlist is rejected with 403. Requests without an Origin header (server-side) are never blocked by this.'
    PaymentAuth:
      type: http
      scheme: payment
      description: 'Pay per request with MPP (the Machine Payments Protocol), for an agent with no API key. Send the request with no Authorization header and the 402 response carries the price in its WWW-Authenticate header. Pay it in USDC.e on Tempo with an MPP client, then send the request again with `Authorization: Payment <credential>`; the response carries a Payment-Receipt header. Offered only on the operations that list it, and only while pay per request is on. A request with a Bearer key is never charged. Prices, receipts and refunds: https://docs.dataquoll.io/machine-payments'
x-service-info:
  docs:
    homepage: https://dataquoll.io
    apiReference: https://docs.dataquoll.io
    llms: https://dataquoll.io/llms.txt