Totals and trends
GET/v1/stats/outages answers "how many" questions in one call, without paging through the archive.
curl -H "Authorization: Bearer $AOT_API_KEY" \
"https://api.aussieoutagetracker.com.au/v1/stats/outages?group_by=network&type=unplanned"GET /v1/stats/outages?group_by=network&type=unplanned{
"data": [
{
"key": "ausgrid",
"outages": 25,
"customers_affected": 1205,
"median_duration_minutes": 209
},
{
"key": "ausnet",
"outages": 14,
"customers_affected": 4260,
"median_duration_minutes": 211
}
],
"window": {
"from": "2026-09-20T02:28:31.420Z",
"to": "2026-10-20T02:28:31.420Z"
},
"meta": {
"data_as_of": "2026-10-20T02:28:26.234Z"
}
}A real response, captured from the API. Arrays are shortened to two items.
Each row is one group:
key— a network id, a state, a cause category, a date (YYYY-MM-DD) or a month (YYYY-MM), depending ongroup_by.outages— how many outages in the group started in the window.customers_affected— the sum ofcustomers_affectedacross the group's outages that carry a count.nullwhen none does.median_duration_minutes— the median duration of the group's restored outages.
window echoes the window used.
Choosing the split
group_by | Rows are | For |
|---|---|---|
network | each network id | which network had the most faults this month |
state | each state or territory | national comparisons |
cause | each cause category | what causes outages, and how long each kind lasts |
day | each date | a daily series for a chart |
month | each month | a longer trend |
day and month are cut in each outage's own state's local time, so a Perth outage at 11pm on the
31st counts for that day in Perth, not the next day in Sydney.
Filters and window
from and to set the window; it defaults to the 30 days before to, and to defaults to now. A
window may be up to 400 days. state, network, type and cause narrow it the same way they do on
GET/v1/outages.
# Unplanned outages by cause in Queensland, this year to date
curl -H "Authorization: Bearer $AOT_API_KEY" \
"https://api.aussieoutagetracker.com.au/v1/stats/outages?group_by=cause&state=qld&type=unplanned&from=2026-01-01T00:00:00Z"That window starts before recording did. Nothing earlier than each network's start date exists, so there is simply nothing there to count.
Reading totals honestly
- Cancelled work is not counted. It did not happen.
- Compare like with like. Networks differ in what they publish: some publish no customer counts at
all, some list planned work weeks ahead and some only once it starts. A network with no counts adds
outages to a total but no customers. GET
/v1/networksgives each network'spublishesshares; read them before ranking networks against each other. - The archive has a start date per network. A trend that crosses a network's start date shows a step that is the archive beginning, not outages rising. Start dates are on Networks and coverage.
- Durations are of restored outages.
median_duration_minutesignores outages still open and cancelled work. Outages explains how a restoration time is known.