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-mobile-sites-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: 3.2.0
info:
title: DataQuoll Mobile sites 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: Mobile sites
description: Mobile network site records from the ACCC Mobile Infrastructure Report data release, a yearly snapshot. A location reference, not coverage.
paths:
/api/v1/mobile-sites:
get:
operationId: listMobileSites
summary: Mobile network site locations
description: 'Where the mobile networks'' radio sites are: Telstra, Optus, TPG and the Optus-TPG shared network (MOCN), from the ACCC Mobile Infrastructure Report data release under CC BY 2.5 AU. A yearly snapshot as at 31 January, not a live feed.
Each record is one operator at one site. A tower shared by three networks appears three times, and Optus-TPG MOCN records repeat Optus actively shared sites, so a record count is not a tower count. rfnsaId is not unique even within one operator; id is the record key.
Two lanes, and at least one is required. Either a radius search (lat, lng and radius together, nearest first) or a filter (at least one of state, lga or operator). Both page with limit and offset; hasMore says whether another page exists. To find incidents near a site, pass its coordinates to /api/v1/incidents/nearby.'
tags:
- Mobile sites
parameters:
- name: lat
in: query
description: Latitude of the search centre. Required with lng and radius.
schema:
type: number
minimum: -90
maximum: 90
- name: lng
in: query
description: Longitude of the search centre. Required with lat and radius.
schema:
type: number
minimum: -180
maximum: 180
- name: radius
in: query
description: Search radius in kilometres. Required with lat and lng.
schema:
type: number
exclusiveMinimum: 0
maximum: 500
- name: operator
in: query
description: Network operator. mocn is accepted for optus-tpg-mocn.
schema:
type: string
enum:
- telstra
- optus
- tpg
- optus-tpg-mocn
- mocn
- name: state
in: query
description: 'Lowercase state code, from the local government area the site falls in. Sites in the ABS Other Territories (Christmas Island, Jervis Bay Territory) carry no state and are returned only by radius or lga; a few on water or offshore, outside every LGA, only by radius.
'
schema:
type: string
enum:
- nsw
- vic
- qld
- sa
- wa
- tas
- nt
- act
- name: lga
in: query
description: Five-digit ABS local government area code (2022 edition), e.g. 17200 for Sydney.
schema:
type: string
pattern: ^[0-9]{5}$
- name: limit
in: query
schema:
type: integer
minimum: 1
maximum: 500
default: 100
- name: offset
in: query
description: Records to skip, for paging. The order is fixed, so pages never repeat or skip a record.
schema:
type: integer
minimum: 0
default: 0
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: Matching site records
headers:
Payment-Receipt:
$ref: '#/components/headers/PaymentReceipt'
content:
application/json:
schema:
type: object
properties:
count:
type: integer
hasMore:
type: boolean
offset:
type: integer
asAt:
type: string
format: date
description: The date the ACCC snapshot describes (31 January of the release year).
disclaimer:
type: string
description: States that a listed site is a location reference, not proof of service or coverage.
sites:
type: array
items:
type: object
properties:
id:
type: string
description: Stable within one annual release only.
rfnsaId:
type: string
description: The Radio Frequency National Site Archive ID, as published. Shared by operators on one site.
operator:
type: string
enum:
- telstra
- optus
- tpg
- optus-tpg-mocn
coordinates:
type: object
properties:
lat:
type: number
lng:
type: number
technologies:
type: array
items:
type: string
description: The technology and band columns the ACCC marks for this record, e.g. LTE700, NR3500.
generations:
type: array
items:
type: string
enum:
- 2G
- 3G
- 4G
- 5G
coFunded:
type:
- boolean
- 'null'
description: 'true when built under a government co-contribution program. null means not recorded as co-funded, which is not the same as not co-funded: programs only had to be identified from 18 May 2020 (Mobile Black Spot from 2015).
'
coContributionProgram:
type:
- string
- 'null'
fundingRound:
type:
- string
- 'null'
activeSharing:
type:
- boolean
- 'null'
description: Optus records only, as published.
activeSharingParty:
type:
- string
- 'null'
location:
type: object
properties:
state:
type:
- string
- 'null'
lgaCode:
type:
- string
- 'null'
lgaName:
type:
- string
- 'null'
distanceKm:
type: number
description: Radius search only.
asAt:
type: string
format: date
source:
type: object
properties:
publisher:
type: string
'400':
description: Neither lane supplied, an unknown operator or state, or a parameter 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