List outages
https://api.aussieoutagetracker.com.au/v1/outagesNeeds an API key on the API plan. Each call answered 2xx counts against the plan’s included calls, then is billed beyond them; refusals and our failures never are.
Search the archive. Every network's outages in one shape, newest first, filtered by place, time, type, status and cause, and paged with a cursor. With no filters it walks the whole archive. For what is off right now, use status=active; to keep a copy in sync, use changed_since with sort=updated.
Query parameters
Only outages in these states or territories. Comma-separated, e.g. vic,nsw.
Up to 20 values
Only these networks, by id from GET /v1/networks, e.g. ausnet,jemena.
Up to 20 values
Only these utilities. Electricity is the only one published today.
Up to 20 values
planned work or unplanned faults. Omit for both.
Only these lifecycle statuses, e.g. active for what is off right now.
Up to 20 values
What each value means
Lifecycle. active: supply is affected now. scheduled: planned work not yet started. restored: supply is back. cancelled: called off without happening — never summed with restored. unknown: the network gave no status signal at all (vanishingly rare).
Only these cause categories, e.g. weather,vegetation.
Up to 20 values
What each value means
The cause, in one vocabulary across every network: planned_work — maintenance, upgrades, connections, metering; weather — storms, lightning, wind, flood, heat; vegetation — trees and branches in or on the lines; animal — birds, bats, possums, wildlife; vehicle — a car, truck or high load hitting the network; third_party — vandalism, theft, dig-ins, other people's works; fire — bushfire or fire near the network; equipment — a failure of the network's own poles, wires, cables or plant; customer — a fault in the customer's installation, or work they asked for; safety — supply cut for public safety or at emergency services' request; upstream — transmission or generation, outside the distributor's network; unspecified — a fault, with no cause given yet; other — a cause the classifier does not recognise yet.
Outages that started at or after this instant. An outage's start is the network's own start time, or when we first saw it where the network publishes none. One query reads at most 31 days of start times: from and to may be at most 31 days apart, from alone reads the 31 days after it, and with neither the window is the last 31 days (not needed for active_at, changed_since, or status of only active/scheduled). Any date can be reached: step through the archive a window at a time. For years at once, request a bulk export.
Outages that started at or before this instant. to alone reads the 31 days before it.
Outages in effect at this instant: started at or before it, and not yet restored by it. Cancelled work is excluded. The question an insurer asks: was the power off here at 3pm on Tuesday?
Outages whose record changed after this instant — created, updated or closed. Pair with sort=updated to keep a copy in sync without re-reading it. At most 31 days ago.
Only outages attributed to this suburb, by id from GET /v1/suburbs.
Above 0
Only outages naming this postcode among their affected localities.
Pattern ^\d{4}$
lat,lng. Only outages within radius_km of this point.
Radius for near, in kilometres. 0 means the point itself must fall inside the outage area.
Default 2Range 0 to 50
minLng,minLat,maxLng,maxLat. Only outages whose area or point falls inside the box.
Only outages that affected at least this many customers.
geometry adds each outage's GeoJSON shape. Off by default: polygons are most of the payload.
Up to 20 values
-start newest first (default), start oldest first, updated / -updated by last change.
Default -start
Page size, 1–500.
Default 100Range 1 to 500
The next_cursor from the previous page. Opaque; do not build it.
Max length 400
Responses
200Success
dataarray of objectShowHide 21 fields of each item
idintegerAussie Outage Tracker's id for this outage. Stable for its whole life.
networkobjectShowHide 3 fields
idstringStable network id, e.g. ausnet. Use it in network= filters.
namestringThe network's name, e.g. AusNet Services.
brandstringnullableSub-brand where one feed covers two, e.g. Powercor within CitiPower / Powercor. Otherwise null.
utilityenumelectricitywatergastelecommunicationsstateenumAustralian state or territory, lower case.
nswvicqldsawatasntacttypeenumplanned work or an unplanned fault.
plannedunplannedstatusenumLifecycle. active: supply is affected now. scheduled: planned work not yet started. restored: supply is back. cancelled: called off without happening — never summed with restored. unknown: the network gave no status signal at all (vanishingly rare).
scheduledactiverestoredcancelledunknownstatus_detailstringnullableThe network's own status words, verbatim, where it publishes any.
causeobjectShowHide 2 fields
categoryenumnullableNull where the network published no cause at all.
planned_workweathervegetationanimalvehiclethird_partyfireequipmentcustomersafetyupstreamunspecifiedotherdescriptionstringnullableThe network's own words, verbatim.
customers_affectedintegernullableBest figure for how many customers this outage affected: the highest count the network reported, or the sum across its localities, whichever is larger. Null where the network publishes no counts.
customers_off_nowintegernullableCustomers off supply at the latest observation, while active. Null once closed, or where not published.
starts_atstring (date-time)nullableWhen the outage began (or is scheduled to), as the network reported it. Null where the network publishes no start.
estimated_restoration_atstring (date-time)nullableThe network's latest estimate of restoration, or its scheduled finish for planned work. Null when it gave none.
restored_atstring (date-time)nullableWhen supply came back. Null until restored.
restored_at_basisenumnullablereported: the network published the restoration time. observed: it did not, and this is when the outage left the network's feed.
reportedobservedduration_minutesintegernullablestarts_at to restored_at, where both are known.
first_seen_atstring (date-time)When Aussie Outage Tracker first recorded this outage.
last_seen_atstring (date-time)The latest poll in which the network still published it.
updated_atstring (date-time)The last time this record changed. What changed_since compares against.
locationobjectShowHide 4 fields
kindenumnullablearea: the network published a footprint. point: a single location only. Null: no location published.
areapointapproximatebooleanTrue when the location is a point, which is approximate — never treat it as the edge of the outage.
centroidobjectnullableA point inside the outage area, or the published point.
ShowHide 2 fields
latnumberlngnumberlocalitiesarray of objectAffected localities as the network listed them. Empty where it lists none.
ShowHide 3 fields of each item
namestringLocality name, title-cased where the network writes capitals.
postcodestringnullableFour-digit postcode, or null where the network gives none.
customersintegernullableCustomers affected in this locality, where the network breaks it down.
geometryobjectnullableoptionalThe outage's shape. Present on GET /v1/outages/{id}, and on lists with include=geometry.
ShowHide 2 fields
typestringcoordinatesanyoptionalsourceobjectShowHide 1 fields
referencestringThe network's own reference for this outage, for quoting to the network.
paginationobjectShowHide 3 fields
has_morebooleannext_cursorstringnullablePass as cursor for the next page. Null on the last page.
limitintegermetaobjectShowHide 1 fields
data_as_ofstring (date-time)nullableWhen the most recent successful poll of any network finished. A stale value means the feeds, not this response, are behind.
400A parameter is invalid or unknown — error.param names it.
Every error has the same envelope:
errorobjectShowHide 3 fields
codeenumunauthorizedpayment_requiredforbiddennot_foundinvalid_parameterrate_limitedinternal_errormessagestringparamstringoptionalThe query parameter at fault, for invalid_parameter.
401No API key, or one that is not valid.
Every error has the same envelope:
errorobjectShowHide 3 fields
codeenumunauthorizedpayment_requiredforbiddennot_foundinvalid_parameterrate_limitedinternal_errormessagestringparamstringoptionalThe query parameter at fault, for invalid_parameter.
402The key's account cannot be billed: no card, or billing past due.
Every error has the same envelope:
errorobjectShowHide 3 fields
codeenumunauthorizedpayment_requiredforbiddennot_foundinvalid_parameterrate_limitedinternal_errormessagestringparamstringoptionalThe query parameter at fault, for invalid_parameter.
429Over 60 requests a minute on this key. Not billed.
Every error has the same envelope:
errorobjectShowHide 3 fields
codeenumunauthorizedpayment_requiredforbiddennot_foundinvalid_parameterrate_limitedinternal_errormessagestringparamstringoptionalThe query parameter at fault, for invalid_parameter.
Errors lists every error code and what to do about it.