Outages
An outage is one interruption to supply as one network published it: a fault, or a piece of planned work. Every network's outages come back as the same object.
GET /v1/outages/175137{
"data": {
"id": 175137,
"network": {
"id": "citipower-powercor",
"name": "CitiPower / Powercor",
"brand": "Powercor"
},
"utility": "electricity",
"state": "vic",
"type": "unplanned",
"status": "active",
"status_detail": "Outage Reported",
"cause": {
"category": "unspecified",
"description": "Under investigation"
},
"customers_affected": 1,
"customers_off_now": 1,
"starts_at": "2026-10-20T01:47:00.000Z",
"estimated_restoration_at": "2026-10-20T04:00:00.000Z",
"restored_at": null,
"restored_at_basis": null,
"duration_minutes": null,
"first_seen_at": "2026-10-20T01:49:45.192Z",
"last_seen_at": "2026-10-20T02:21:59.454Z",
"updated_at": "2026-10-20T01:49:45.192Z",
"location": {
"kind": "area",
"approximate": false,
"centroid": {
"lat": -35.055623,
"lng": 143.309348
},
"localities": [
{
"name": "Piangil",
"postcode": "3597",
"customers": 1
}
]
},
"source": {
"reference": "2401242-1"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
143.309348,
-35.056053
],
[
143.309395,
-35.056051
],
[
143.309443,
-35.056046
],
[
143.30949,
-35.056037
],
[
143.309348,
-35.056053
]
]
]
},
"suburbs": [
{
"id": 6822,
"name": "Piangil",
"postcode": "3597",
"state": "vic",
"url": "https://aussieoutagetracker.com.au/locations/vic/power/piangil-3597/"
}
]
},
"meta": {
"data_as_of": "2026-10-20T02:28:26.234Z"
}
}A real response, captured from the API. Arrays are shortened to two items.
Three rules hold for every field:
nullmeans the network did not publish it. Never0, never an empty string, never a guess. A network that publishes no customer counts hascustomers_affected: nullon every outage.- Instants are ISO 8601 in UTC, such as
2026-10-20T04:00:00.000Z. Convert to local time yourself; the outage'sstatetells you which zone it is in. - The network's own words are kept beside ours. Where we normalise — a status, a cause — the original text sits next to it, verbatim, so you can always see what the network said.
Identity
| Field | Means |
|---|---|
id | Aussie Outage Tracker's id. An integer, stable for the outage's whole life. Use it to fetch, store and de-duplicate. |
network.id | The network, such as ausnet. The value for network= filters and GET/v1/networks/{id}. |
network.name | Its name, such as AusNet Services. |
network.brand | A sub-brand where one feed covers two networks: Powercor or CitiPower within citipower-powercor. Otherwise null. |
utility | electricity. Water, gas and telecommunications are reserved for when they are published. |
state | The state or territory the outage is in, lower case. Taken from its location, so an Essential Energy outage over the Queensland border is qld, not nsw. |
Lifecycle
| Field | Means |
|---|---|
type | planned work or an unplanned fault. |
status | One of five: scheduled, active, restored, cancelled, unknown. See Statuses. |
status_detail | The network's own status words, verbatim — Outage Reported, SCHEDULED|In Progress. null where it publishes none. |
Cause
| Field | Means |
|---|---|
cause.category | One cause vocabulary across every network: weather, vegetation, animal and the rest. Planned work is always planned_work. null where the network published no cause text at all. See Causes. |
cause.description | The network's own words, verbatim. |
Customers
| Field | Means |
|---|---|
customers_affected | How many customers the outage affected over its life: the highest count the network reported, or the sum across its localities, whichever is larger. |
customers_off_now | How many are off supply at the latest observation, while active. null once the outage is closed. |
The two differ on purpose. A fault that took out 1,200 customers and has been partly restored has
customers_affected: 1200 and perhaps customers_off_now: 85. Sum customers_off_now for "off right
now"; use customers_affected for the size of an outage, and for totals over time.
Networks count customers — connection points, roughly premises — not people.
Times
| Field | Means |
|---|---|
starts_at | When the outage began, or is scheduled to, as the network reported it. null for networks that publish no start time. |
estimated_restoration_at | The network's latest estimate of restoration, or the scheduled finish of planned work. null when it gave none. It moves: history records each value. |
restored_at | When supply came back. Set only on a restored outage. |
restored_at_basis | How restored_at is known — see below. |
duration_minutes | starts_at to restored_at, where both are known. Otherwise null, and never negative. |
first_seen_at | When Aussie Outage Tracker first recorded the outage. |
last_seen_at | The latest poll in which the network still published it. |
updated_at | The last time this record changed. What changed_since compares against. |
restored_at_basis: reported or observed
reported— the network published the restoration time, andrestored_atis the network's.observed— the network did not. Many feeds simply drop an outage once it is fixed, and say nothing about when.restored_atis then when the outage left the network's feed, which is accurate to the few minutes between polls and can be later than the real restoration if a network is slow to take it down.
null until the outage is restored. A cancelled outage was never restored, so it has neither.
When a network publishes no start
Where starts_at is null, the from, to and active_at filters use first_seen_at instead — when
we first saw it, which is within minutes of it appearing in the network's feed. duration_minutes stays
null rather than being computed from a time the network did not give.
Location
| Field | Means |
|---|---|
location.kind | area — the network published a footprint. point — a single location only. null — no location at all. |
location.approximate | true for a point. A point is approximate: it marks roughly where the outage is, never its edge. |
location.centroid | A point inside the area, or the published point. { lat, lng }. |
location.localities | The places the network listed as affected, each with name, postcode and customers — any of which may be null where the network does not give them. Empty where it lists none. |
geometry | The outage's GeoJSON shape (WGS 84, [lng, lat]): a Polygon or MultiPolygon for an area, a Point or MultiPoint otherwise. On GET/v1/outages/{id}, and on lists only with include=geometry. |
suburbs | On GET/v1/outages/{id} only: every suburb the outage is attributed to. See Places and attribution. |
Some networks publish only a point for each outage. Draw it as a marker, never as a circle of a guessed radius, and say it is approximate. Networks and coverage lists which networks publish which.
Source
| Field | Means |
|---|---|
source.reference | The network's own reference for the outage — its job or incident number. Quote it when you contact the network. |