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.

200GET /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:

  • null means the network did not publish it. Never 0, never an empty string, never a guess. A network that publishes no customer counts has customers_affected: null on every outage.
  • Instants are ISO 8601 in UTC, such as 2026-10-20T04:00:00.000Z. Convert to local time yourself; the outage's state tells 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

FieldMeans
idAussie Outage Tracker's id. An integer, stable for the outage's whole life. Use it to fetch, store and de-duplicate.
network.idThe network, such as ausnet. The value for network= filters and GET/v1/networks/{id}.
network.nameIts name, such as AusNet Services.
network.brandA sub-brand where one feed covers two networks: Powercor or CitiPower within citipower-powercor. Otherwise null.
utilityelectricity. Water, gas and telecommunications are reserved for when they are published.
stateThe 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

FieldMeans
typeplanned work or an unplanned fault.
statusOne of five: scheduled, active, restored, cancelled, unknown. See Statuses.
status_detailThe network's own status words, verbatim — Outage Reported, SCHEDULED|In Progress. null where it publishes none.

Cause

FieldMeans
cause.categoryOne 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.descriptionThe network's own words, verbatim.

Customers

FieldMeans
customers_affectedHow 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_nowHow 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

FieldMeans
starts_atWhen the outage began, or is scheduled to, as the network reported it. null for networks that publish no start time.
estimated_restoration_atThe 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_atWhen supply came back. Set only on a restored outage.
restored_at_basisHow restored_at is known — see below.
duration_minutesstarts_at to restored_at, where both are known. Otherwise null, and never negative.
first_seen_atWhen Aussie Outage Tracker first recorded the outage.
last_seen_atThe latest poll in which the network still published it.
updated_atThe last time this record changed. What changed_since compares against.

restored_at_basis: reported or observed

  • reported — the network published the restoration time, and restored_at is the network's.
  • observed — the network did not. Many feeds simply drop an outage once it is fixed, and say nothing about when. restored_at is 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

FieldMeans
location.kindarea — the network published a footprint. point — a single location only. null — no location at all.
location.approximatetrue for a point. A point is approximate: it marks roughly where the outage is, never its edge.
location.centroidA point inside the area, or the published point. { lat, lng }.
location.localitiesThe 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.
geometryThe 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.
suburbsOn GET/v1/outages/{id} only: every suburb the outage is attributed to. See Places and attribution.
Points are not areas

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

FieldMeans
source.referenceThe network's own reference for the outage — its job or incident number. Quote it when you contact the network.