DataQuoll Meta API

API metadata and health

Operations 4

GET /api/v1/states Feed health by state #
GET /api/v1/status API health check #
GET /api/v1/attribution Data source attributions #
GET /api/v1/schema API schema and valid enum values #

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-meta-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-meta-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DataQuoll Meta 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: Meta
  description: API metadata and health
paths:
  /api/v1/states:
    get:
      operationId: listStates
      summary: Feed health by state
      description: Returns the status of each state feed, including last poll time, health, and incident count.
      tags:
      - Meta
      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: Feed status for all states
          headers:
            Payment-Receipt:
              $ref: '#/components/headers/PaymentReceipt'
          content:
            application/json:
              schema:
                type: object
                properties:
                  states:
                    type: array
                    items:
                      type: object
                      properties:
                        state:
                          type: string
                        agency:
                          type: string
                        status:
                          type: string
                          enum:
                          - healthy
                          - degraded
                          - down
                          - unknown
                        lastPolled:
                          type: string
                          format: date-time
                        lastSuccess:
                          type: string
                          format: date-time
                        incidentCount:
                          type: integer
                        errorCount:
                          type: integer
        '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'
  /api/v1/status:
    get:
      operationId: apiStatus
      summary: API health check
      description: Returns API health, version, uptime, and a summary of feed statuses.
      tags:
      - Meta
      responses:
        '200':
          description: API health status
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ok
                  version:
                    type: string
                    example: 1.16.0
                  uptime:
                    type: string
                    example: 86400s
                  timestamp:
                    type: string
                    format: date-time
                  counts:
                    type: object
                    description: Summary of feed statuses. 'stale' is derived from last_polled_at age (a feed not polled within 2 hours reads as stale, so a dead poller is visible to monitors).
                    properties:
                      total:
                        type: integer
                      healthy:
                        type: integer
                      degraded:
                        type: integer
                      down:
                        type: integer
                      stale:
                        type: integer
                        description: Feeds not polled within 2 hours, derived from last_polled_at age regardless of stored status.
                      unknown:
                        type: integer
                  feeds:
                    type: array
                    items:
                      type: object
                      properties:
                        feedId:
                          type: string
                          description: 'The feed''s registry id, and the unique key for this entry. `state` and `agency` are NOT unique: two New South Wales RFS feeds and two Tasmanian TasALERT feeds each share a state/agency pair, so use `feedId` when you need to identify one exactly.'
                          example: nsw-rfs-cap
                        state:
                          type: string
                        agency:
                          type: string
                        status:
                          type: string
                          enum:
                          - healthy
                          - degraded
                          - down
                          - stale
                          - unknown
  /api/v1/attribution:
    get:
      operationId: getAttribution
      summary: Data source attributions
      description: Returns attribution information for all data sources, including licence details. Required for CC BY compliance.
      tags:
      - Meta
      responses:
        '200':
          description: Attribution data for all sources
          content:
            application/json:
              schema:
                type: object
                properties:
                  description:
                    type: string
                  disclaimer:
                    type: string
                  count:
                    type: integer
                    description: Number of sources returned
                  sources:
                    type: array
                    items:
                      type: object
                      properties:
                        state:
                          type: string
                        agency:
                          type: string
                        name:
                          type: string
                        licence:
                          type: string
                          description: The published licence. For the feeds we poll, only a recognised licence (CC BY, CC0, public domain) or an explicit 'Used with permission' statement is shown; anything else (internal working notes, unconfirmed sources) is reported as 'Licence under review — see https://dataquoll.io/compliance'. Other sources state the licence their publisher gives, such as the Open G-NAF EULA, the Open Database License (OpenStreetMap) or Commonwealth copyright.
                        licenceUrl:
                          type: string
                          format: uri
                          description: The URL of the licence's own text, where we hold one (today, the Creative Commons page for CC licences). Absent where we hold none.
                          example: https://creativecommons.org/licenses/by/4.0/
                        url:
                          type: string
                        official:
                          type: boolean
                          description: true for a licensed statutory feed, false for every other source, such as the community-decoded pager feeds, agency feeds whose licence is not published (NT PFES), union and industry calendars, and OpenStreetMap.
                        attribution:
                          type: string
                          description: Agency-specified attribution text, present only when the source requires it.
  /api/v1/schema:
    get:
      operationId: getSchema
      summary: API schema and valid enum values
      description: Returns all valid enum values for event types, categories, states, warning levels, and other filterable fields. Use this to discover what values are accepted by filter parameters. No authentication required.
      tags:
      - Meta
      responses:
        '200':
          description: All valid enum values and category mappings
          content:
            application/json:
              schema:
                type: object
                properties:
                  eventTypes:
                    type: array
                    items:
                      type: string
                  eventCategories:
                    type: array
                    items:
                      type: string
                  categoryMapping:
                    type: object
                    description: Maps each category to its constituent event types
                  states:
                    type: array
                    items:
                      type: string
                  warningLevels:
                    type: array
                    items:
                      type: string
                  statuses:
                    type: array
                    items:
                      type: string
                  severities:
                    type: array
                    items:
                      type: string
                  urgencies:
                    type: array
                    items:
                      type: string
                  certainties:
                    type: array
                    items:
                      type: string
                  formats:
                    type: array
                    items:
                      type: string
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