NL Netstoringen Monitor (Liander Power/Gas Outage Feed)
Pricing
from $5.00 / 1,000 storing-records
NL Netstoringen Monitor (Liander Power/Gas Outage Feed)
Structured feed of electricity and gas grid outages (storingen) in the Liander network area, from the official public Liander IStoringen ArcGIS feed. Filter by postcode, energy type, and active/resolved status.
Pricing
from $5.00 / 1,000 storing-records
Rating
0.0
(0)
Developer
Dennis
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
NL Netstoringen Monitor (Liander Power/Gas Outage Feed) ⚡🔧
Structured, queryable JSON feed of electricity and gas grid outages (storingen) in the Netherlands — straight from Liander's own public IStoringen feed, the exact data source behind Liander's official storingen-en-onderhoud map. No scraping, no HTML parsing: this actor queries the underlying public ArcGIS Feature Service directly.
Who is this for?
- Datacenters & industrial grid users — get notified the moment an outage in your postcode area changes status
- Insurers — correlate outage claims (business interruption, spoiled goods) with confirmed grid outage records
- Facility managers & building operators — check whether a reported power/gas issue is a known, confirmed grid outage before dispatching your own technician
- Local news / community sites — surface current outages for a region
- AI agents — structured JSON output, ideal as a tool for agentic workflows (MCP-ready)
When should an AI agent use this?
- "Is there a known power outage at postcode 9105?"
- "List all currently active gas outages in the Liander area."
- "Has the outage near Arnhem been resolved yet?"
- "Alert me when outage 8217875 changes status."
What this Actor does
- Queries Liander's public IStoringen ArcGIS Feature Service (no authentication required)
- Filters by postcode (4-digit or full 6-character), energy type (electricity/gas), and active-vs-resolved status
- Returns one structured record per outage: type, cause, affected customers (bucketed range), affected postcodes/streets/places, reported/estimated-resolved/actual-resolved timestamps
- Optional
trackWijzigingenmode: compares each outage's status with the previous scheduled run (via a persistent key-value store), so you get a direct signal the moment an outage progresses (e.g."monteur onderweg"→"opgelost") instead of polling manually
Coverage — important limitation
This actor covers the Liander network area only (large parts of Gelderland, Flevoland, Friesland, Noord-Holland, and parts of Zuid-Holland/Utrecht — see Liander's own service area map for the exact boundary). Other Dutch regional grid operators (Enexis, Stedin, Coteq, Westland Infra, Rendo) are not included in this feed — no equivalent public, no-auth outage API was found for them at the time of building this actor. If your area of interest falls outside Liander's network, this actor will simply return no results for that postcode.
Input
| Field | Type | Description |
|---|---|---|
postcodes | array of strings | 4-digit or full postcodes to filter on, e.g. "9105" or "9105AZ". Empty = all outages (bounded by maxResultaten). |
energiesoort | string | "alle" (default), "Elektriciteit", or "Gas" |
alleenActueel | boolean | Only active/unresolved outages (default true). Set false to also include recently resolved ones. |
maxResultaten | integer | Upper bound on outages fetched per run, 1-5000 (default 500) |
trackWijzigingen | boolean | Compare each outage's status with the previous run (default false) |
Output
One result per outage:
{"storingNummer": 8217875,"energiesoort": "Elektriciteit","type": "S","typeLabel": "Spontane storing","status": "monteur onderweg","opgelost": false,"oorzaak": "Spontane storing","component": "Nog niet bekend","getroffenKlanten": "< 25","getroffenKlantenBovengrens": 25,"postcodes": ["9105AZ"],"straten": ["Klaarkampsterwei"],"plaatsen": ["RINSUMAGEAST"],"datumGemeld": "2026-07-15T11:34:00.000Z","datumSchattingHersteld": "2026-07-15T14:45:00.000Z","datumEind": null,"duurMinuten": 187,"datumChange": "2026-07-15T11:44:25.000Z","bron": "Liander — IStoringen (services1.arcgis.com)","statusGewijzigdSindsVorigeRun": null,"vorigeStatus": null,"nieuweStoring": null}
type/typeLabel:S= spontaneous outage,P= planned works,storing= unspecified type (older records in the feed predate the S/P distinction)status: free-text status as published by Liander (e.g."gemeld","monteur onderweg","monteur ter plaatse","opgelost") —opgelostis also exposed as the booleanopgelostfieldgetroffenKlanten: a bucketed range (e.g."< 25","< 100"), never an exact count — no individual customer data is involvedgetroffenKlantenBovengrens: the number extracted fromgetroffenKlanten(e.g.25for"< 25"), for sorting/filtering by impact size.nullif no number could be extracted — never a guessed lower bounddatumEindisnullwhile the outage is still ongoingduurMinuten:datumEind - datumGemeldfor resolved outages, or time-until-now for still-active ones.nullifdatumGemeldis missing
Regional summary (free extra dataset record)
Whenever there's at least one outage in the run, one extra record with
"recordType": "REGIONALE_SAMENVATTING"energiesoort (electricity/gas), and a count per place (a multi-place outage counts in each place),
sorted descending:
{"recordType": "REGIONALE_SAMENVATTING","peildatum": "2026-07-16T09:00:00.000Z","totaalStoringen": 14,"perEnergiesoort": { "Elektriciteit": 11, "Gas": 3 },"perPlaats": [{ "plaats": "RINSUMAGEAST", "aantal": 3 }, { "plaats": "AMSTERDAM", "aantal": 2 }]}
Change tracking (trackWijzigingen, optional, separately charged)
With trackWijzigingen: true, every outage is compared with the previous run by its outage number:
statusGewijzigdSindsVorigeRun:null(no previous run for this outage, e.g. it's new), ortrue/falsevorigeStatus: the previous run's status, when availablenieuweStoring:trueif this outage number wasn't seen in the previous run's snapshot — i.e. it's a brand-new outage, not just a status change on an already-known one. Alwaysfalseon the very first run withtrackWijzigingenenabled (there's no previous snapshot yet to compare against).
Meant for scheduled/recurring runs — you get a direct signal the moment an outage's status changes, or a new outage appears, instead of manually re-checking.
Use cases
Monitor all active outages in a set of postcode areas:
{"postcodes": ["9105", "6815", "1057"],"alleenActueel": true}
Get notified when outages progress, on a scheduled run:
{"postcodes": ["9105"],"alleenActueel": false,"trackWijzigingen": true}
Fetch all currently active gas outages nationwide (within the Liander area):
{"energiesoort": "Gas","alleenActueel": true,"maxResultaten": 2000}
Pricing
This Actor uses Apify's Pay-Per-Event (PPE) pricing model.
- Actor Start: $0.00005 (Apify default)
- storing-record: $0.005 per outage record returned
- storing-statuswijziging: $0.015 extra, only with
trackWijzigingenenabled and only when a status change vs. the previous run is actually detected - nieuwe-storing-signaal: $0.015 extra, only with
trackWijzigingenenabled and only for an outage number that wasn't in the previous run's snapshot (never charged on the very firsttrackWijzigingenrun)
Legal
- Data source: Liander's public IStoringen ArcGIS Feature Service, the same backend that powers Liander's own public storingen-en-onderhoud map. Public, no authentication required.
- This is grid infrastructure/outage data at the postcode/street level, not personal data — affected-customer
counts are bucketed ranges (e.g.
"< 25"), never individual identities. No GDPR concerns. - Covers the Liander network area only — see "Coverage" above.
- Not a substitute for Liander's own official outage notifications for safety-critical decisions.
FAQ
Q: How current is the data? A: The feed is Liander's live operational outage system — the same one shown on their own public map. Reported times reflect when Liander logged the outage.
Q: Does this include Enexis/Stedin/other grid operators? A: No — see "Coverage" above. Only Liander's network area is covered in this version.
Q: What does type: "storing" mean (instead of S/P)?
A: Older records in Liander's feed predate the spontaneous/planned (S/P) distinction and are simply labeled
"storing" — this is a source-data characteristic, not a mapping error.
Zoekwoorden: stroomstoring, gasstoring, netstoring, storing liander, energieonderbrekingen, stroomuitval postcode, storingen kaart, netbeheerder storing.
Keywords
stroomstoring, power outage, gas outage, liander, storing, netbeheerder, netherlands, energieonderbrekingen, grid outage, electricity outage
Changelog
0.2.1
- Added
getroffenKlantenBovengrens: the number extracted from the bucketedgetroffenKlantentext (e.g.25for"< 25"), for sorting/filtering by impact size. No pricing change. - Added
duurMinuten: outage duration in minutes (resolved outages usedatumEind - datumGemeld, ongoing ones use time-until-now). No pricing change. - Added a free
REGIONALE_SAMENVATTINGdataset record per run (totals per energiesoort/place). No pricing change.
0.2.0
- Added
nieuweStoringfield and a new charged eventnieuwe-storing-signaal($0.015, same tier asstoring-statuswijziging): flags an outage number that wasn't in the previous run's snapshot, i.e. a brand-new outage rather than a status change on an already-known one. Only withtrackWijzigingenenabled; never fires on the very firsttrackWijzigingenrun. Price confirmed by the user (2026-07-16, see PRIJSBESLISSINGEN.md).
0.1.0
- Initial release: postcode/energy-type/status-filtered feed of Liander grid outages, with optional cross-run status-change tracking.