
KNMI earthquakes
KNMI's earthquake catalogue as an open service: time, place, depth, magnitude and type of every event, plus stations, waveforms and ShakeMaps (ground motion per earthquake). On 16 October 2026 the box around the Netherlands held 4,551 events since 1911, of which 3,493 induced (by gas extraction or mining). In the Netherlands itself that is 2,003 induced earthquakes since 1986; the strongest was Huizinge on 16 August 2012 (magnitude 3.6).

Induced earthquakes in the Netherlands (magnitude 1.5 or more): 7 in 2025, against 34 in the peak year 2013
Induced earthquakes in the Netherlands of magnitude 1.5 or more, 1995 – 2025, in earthquakes. The highest point was 2013 (34).
Induced earthquakes by place: most Garrelsweer (89 earthquakes), then Appingedam and Loppersum
Induced earthquakes by place, 1986–2026, in earthquakes. Total: 2,004; the largest 12 of 187 categories are shown. Garrelsweer is 4% of the total. Place = the place name KNMI gives the earthquake (nearest village). All magnitudes, whole catalogue.
What you can build with it1
What can you do with it?4 ideas
Earthquakes per year in Groningen
Count the induced earthquakes per year. At magnitude 1.5 or more, 2013 was the peak year (34); in 2025 there were 7. The chart on this page shows the whole series.
Which villages shake most often?
KNMI names every earthquake after the nearest village. Garrelsweer (89), Appingedam (88) and Loppersum (76) top the list.
How hard did the ground shake?
66 earthquakes have a ShakeMap: ground acceleration per station (rrsm.json) and for 56 also a grid (grid.nc). Overlay it on the homes from the BAG.
Gas production and earthquakes side by side
Put earthquakes per year next to production from the Groningen field and the decisions to cut it. Start with Huizinge (August 2012).
How to process it5 steps
The whole catalogue as text
format=text gives one line per event, separated by | (~580 kB for the box around the Netherlands). Without a box you also get earthquakes further away (6,514 in total).
https://api.dataplatform.knmi.nl/fdsnws/event/1/query?starttime=1900-01-01&minlatitude=50.7&maxlatitude=53.7&minlongitude=3.2&maxlongitude=7.3&format=text
Only induced earthquakes above a magnitude
Filter on eventtype and minmagnitude. Note: the box also holds mining earthquakes in Germany; drop place names ending in (Duitsland) or (België).
https://api.dataplatform.knmi.nl/fdsnws/event/1/query?starttime=2020-01-01&eventtype=induced%20or%20triggered%20event&minmagnitude=2.5&format=text
One earthquake in detail (QuakeML)
Without format you get QuakeML (XML) with all magnitudes and the origin. Huizinge 2012 has id knmi2012qcdh.
https://api.dataplatform.knmi.nl/fdsnws/event/1/query?eventid=knmi2012qcdh
ShakeMaps and ground acceleration
list gives the files per earthquake; download/<id>/rrsm.json the acceleration per station.
https://api.dataplatform.knmi.nl/shakemaps/7/download/knmi2025whfa/rrsm.json
The stations
Network NL (since 1993) has 903 stations, network NA (Caribbean Netherlands) 12.
https://api.dataplatform.knmi.nl/fdsnws/station/1/query?level=station&network=NL&format=text
Interesting combinations


How many homes are within 5 km of an earthquake?
Count the BAG addresses within a radius of the epicentre for each earthquake. That shows which earthquakes affected many homes.


Earthquakes per neighbourhood and house values
Overlay the epicentres on the CBS neighbourhoods and compare the number of earthquakes with the property value and number of homes.
Similar sources
- EMEMSC (European-Mediterranean Seismological Centre) not in the index yet
Same FDSN standard and parameters, but for Europe and the world. Useful to compare earthquakes across the border.
KNMI Data PlatformThe KNMI Data Platform itself, with over 400 weather and climate datasets; the earthquake services run on the same server but without a key.
What to watch out for
- The box is bigger than the Netherlands
A rectangle around the Netherlands also brings in ~1,900 mining earthquakes from the Ruhr area and earthquakes in Belgium. The place name then ends in (Duitsland) or (België).
- Small earthquakes depend on the network
The more stations, the more small earthquakes are detected. Compare years from a fixed magnitude, for example 1.5.
- Not everything is an earthquake
The catalogue also holds explosions, quarry blasts and sonic booms. Filter on the EventType column.
- Depth often fixed at 3 km
For 1,939 of the 2,003 induced earthquakes in the Netherlands the depth is 3.0 km, roughly the depth of the Groningen field. Do not treat it as a measured depth per earthquake.
- ShakeMaps with an extra condition
The ShakeMap service states CC BY 4.0, but also says the data cannot be reused unaltered for commercial use. The two conflict; ask KNMI when in doubt.
APIFDSN Web Services (event, station, dataselect) · read 16 Oct 2026
No key. Runs on the same server as the KNMI Data Platform, but the seismological services need no Authorization header (tested). tested
events in the whole catalogue since 1911 (4,408 induced, 2,053 tectonic, 53 explosions etc.; 16 Oct 2026) tested
textjsonxmlcsv
Base URL
https://api.dataplatform.knmi.nl/fdsnws
Endpoints 10
- GET
/event/1/querySearch events by time, box or radius, depth, magnitude and type. QuakeML by default; format=text or json for a table or GeoJSON. - GET
/event/1/query?eventid={id}One event in detail (all magnitudes, origin, picks); id such as knmi2012qcdh (Huizinge). - GET
/event/1/versionService version (1.2.9 on 16 Oct 2026). - GET
/event/1/application.wadlMachine-readable list of parameters. - GET
/event/1/catalogs/Catalogues (KNMI only); mind the trailing slash, without it you get a 301. - GET
/event/1/contributors/Contributors (KNMI only). - GET
/station/1/queryNetworks and stations (level=network|station|channel|response): NL 903 stations since 1993, NA (Caribbean Netherlands) 12. - GET
/dataselect/1/queryWaveforms (miniSEED) per network, station, channel and time window. - GET
/shakemaps/7/listAll ShakeMaps with their files (66 earthquakes, 56 with grid.nc). - GET
/shakemaps/7/download/{eventid}/{bestand}One ShakeMap file: rrsm.json/rrsm.csv (acceleration per station), grid.nc (grid), event.xml.
Filtering platform
No query language: each condition is its own query parameter (FDSN). Combinations act as AND.
Parameters 13
starttime / endtime | Time window in UTC, ISO 8601 (2025-01-01 or 2025-01-01T12:00:00). | from the description |
minlatitude / maxlatitude / minlongitude / maxlongitude | Rectangle in degrees (WGS84). Around the Netherlands: 50.7–53.7 N, 3.2–7.3 E. | tested |
latitude / longitude / minradius / maxradius | Circle around a point; radius in degrees (not km). | platform |
mindepth / maxdepth | Depth in km. | from the description |
minmagnitude / maxmagnitude / magnitudetype | Magnitude (usually ML) and magnitude type. | from the description |
eventtype | Type: 'induced or triggered event', earthquake, 'quarry blast', 'controlled explosion', 'sonic boom', explosion, 'other event'. | tested |
eventid | One or more events by id. | from the description |
updateafter | Only events updated after this moment: handy for incremental updates. | from the description |
limit / offset | Paging; offset starts at 1 (FDSN), not 0. | from the description |
orderby | time (newest first, default), time-asc, magnitude, magnitude-asc. | tested |
format | xml (QuakeML, default), text (|-separated), json (GeoJSON), csv, qml-rt, sc3ml. geojson as value gives 400. | tested |
nodata | What happens when nothing is found: 204 with no body by default, with nodata=404 a 404 with explanation. | tested |
includeallmagnitudes / includeallorigins / includearrivals / includepicks / includefocalmechanism | Extra parts in QuakeML. | from the description |
Columns with format=text (json has the same data as GeoJSON properties) 9
| Name | Type | Meaning |
|---|---|---|
EventID | tekst | Id van de gebeurtenis (knmi2026ujby) |
Time | datetime · UTC | Tijdstip van de oorsprong |
Latitude / Longitude | getal · graden WGS84 | Epicentrum |
Depth/km | getal · km | Diepte; bij Groningen-bevingen meestal vast 3,0 |
MagType | tekst | Soort magnitude (ML, MLs, MLbes …) |
Magnitude | getal | Kracht; leeg bij explosies en knallen |
EventLocationName | tekst | Dichtstbijzijnde plaats; buitenland met (België) of (Duitsland) |
EventType | tekst | Soort gebeurtenis (zie de parameter eventtype) |
status / mode (json) | tekst | reviewed/manual of automatisch; alleen in format=json |
Limits and pitfalls
- No documented limit; the whole catalogue (6,514 lines) comes in one text response of ~0.6 MB. tested
- /event/1/count (optional in FDSN) does not exist here: 404. Count the lines of format=text yourself. tested
- Nothing found returns HTTP 204 with no body, not an empty list. A JSON parser chokes on that; handle 204 or use nodata=404. tested
- The catalogue is not just the Netherlands: without a box you also get Caribbean Netherlands and beyond (orderby=magnitude returned a quake near the Leeward Islands); with a box also the Ruhr and Belgium. tested
- The catalog parameter does not work (according to the KNMI help page, not available in SeisComP). from the description
- format=text has numbers with many decimals (Magnitude 1.5031251973028663, coordinates 53.46530151367188): round them yourself. tested
- An error (400, 404) is plain text with the line 'Usage details are available from …', not JSON. tested
Try it HTTP 200 · 459 ms · 16 Oct
https://api.dataplatform.knmi.nl/fdsnws/event/1/query?starttime=2026-01-01&minlatitude=50.7&maxlatitude=53.7&minlongitude=3.2&maxlongitude=7.3&eventtype=induced or triggered event&limit=5&format=json
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": "knmi2026qmut",
"properties": {
"time": "2026-08-21T03:50:39.0000",
"lat": 53.378,
"lon": 6.667,
"depth": 3,
"mag": 2.75655436993489,
"mag_type": "MLn",
"catalog": null,
"contributor": "KNMI",
"location": "Zandeweer",
"event_type": "induced or triggered event",
"status": "reviewed",
"mode": "manual"
},
"geometry": {
"type": "Point",
"coordinates": "…"
}
},
{
"type": "Feature",
"id": "knmi2026pdho",
"properties": {
"time": "2026-08-01T22:26:50.399999",
"lat": 53.117,
"lon": 6.951,
"depth": 3,
"mag": 1.440433077332287,
"mag_type": "MLn",
"catalog": null,
"contributor": "KNMI",
"location": "Veendam",
"event_type": "induced or triggered event",
"status": "reviewed",Shortened response, saved at harvest time. Click the URL for the real, current response.
Read from WADL of the event service: all 35 parameters with type and default · KNMI help page for the event service (formats, what does not work) · The FDSN standard (same parameters at EMSC, USGS, GFZ). Labels: from the description stated in what the api itself publishes. tested from our own small call. platform applies to every api on this platform, per its documentation. experience learned while building open data index.
How to fetch it
curl "https://api.dataplatform.knmi.nl/fdsnws/event/1/query?starttime=2024-01-01&minlatitude=50.7&maxlatitude=53.7&minlongitude=3.2&maxlongitude=7.3&eventtype=induced%20or%20triggered%20event&format=text"
More from KNMI in our index
620 datasets in data.overheid.nl, Nationaal Georegister. These changed most recently.
- KNMI14 Daily precipitation sum 2050 WL2026-10-10
- 1 hour precipitation accumulations from climatological gauge-adjusted radar dataset for The Netherlands (1 km) in NetCDF4 format2026-10-10
- SYNOP - hourly unvalidated observations from the KNMI automated network in binary BUFR format2026-10-10
- Daily unvalidated precipitation sum in near real time2026-10-10
- 5 minute precipitation accumulations from climatological gauge-adjusted radar dataset for The Netherlands (2.4 km) in NetCDF4 format2026-10-10
- [ARCHIVE] Precipitation - radar 5 minute full volume data De Bilt2026-10-10
More in this topic
See how this page is built
bron: knmi-aardbevingen
blokken: []
secties:
- ideeen
- verwerken
- koppelingen
- vergelijkbaar
- beperkingen
- code
cache:
tag: bron:knmi-aardbevingen
ververs: na statuscheck, als de bron nieuwer is
statuscheck:
methode: nieuwste gebeurtenis in het vak rond Nederland (FDSN Event,
orderby=time, limit=1)
verwacht: dagelijks
Source: content/bronnen/knmi-aardbevingen.yaml · Markdown
