Open Data · Developer Portal

Build on live seismic data.

Event and station data from the GeoShake community earthquake early-warning network — free to use for research, education and applications.

CC BY 4.0JSON · CSV · SSE · MQTTNo cost
recent-events.sh
curl https://api.geoshake.org/api/events

[
  {
    "event_id": 7,
    "originMs": 1783678236932,
    "lat": 36.57, "lon": 31.06,
    "nStations": 3,
    "intensityClass": "orta",
    "maxPga": 0.106
  }, 
]
License & citation

Free to use — just credit GeoShake.

All GeoShake event and station data is published under Creative Commons Attribution 4.0 (CC BY 4.0). You may use, share and adapt it — including in academic publications and commercial products — as long as you credit GeoShake.

GeoShake Seismic Network, https://map.geoshake.org (accessed YYYY-MM-DD), CC BY 4.0
Access

Three access tiers.

Start anonymous, add a free API key for the historical catalog, or request a personal real-time feed.

Anonymous
no auth
  • Recent confirmed events
  • Station list & details
  • Live SSE stream
Free API key
header · X-API-Key
  • Historical event catalog
  • Date-range queries · JSON / CSV
  • Up to 10,000 rows / request
Real-time MQTT
GeoShake account
  • Personal read-only TLS feed
  • Confirmed events, as they happen
  • Station trigger messages
Your API key

Register, log in, get your key.

One free GeoShake account works everywhere: this API, the Home Assistant integration and Google Home linking. Log in to mint your personal key — copy it, or regenerate at any time.

or

New here? Create a GeoShake account in the mobile app, then log in to get your API key.

Download on theApp StoreGET IT ONGoogle Play
Anonymous endpoints

No key required.

Public read endpoints under api.geoshake.org — great for prototyping and live dashboards.

Endpoint
Returns — click a row for examples
Historical catalog · free API key

Query the full event catalog.

Sign up is free — a key is issued against your GeoShake account so we can apply fair-use quotas and keep researchers informed of changes.

1

Get a key

Use the panel above — or the API directly. Logging in returns your existing key; pass "regenerate": true to force a new one (the old key becomes invalid).

cURL
curl -X POST https://api.geoshake.org/api/data/key \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com","password":"..."}'
2

Query the catalog

Pull events by date range in JSON or CSV.

curl "https://api.geoshake.org/api/data/events?from=2026-01-01T00:00:00Z&to=2026-07-01T00:00:00Z&format=csv" \
  -H "X-API-Key: YOUR_KEY" -o geoshake-events.csv
from / to — ISO 8601 · default last 30 dayslimit — 1–10000 · default 1000format — json | csv
JSON responses carry license and citation fields, plus truncated: true when the row limit was hit — narrow the date range and continue.
Quota · 120 requests / 5 minutes per key
Real-time feed · MQTT

Stream confirmed events live.

For live pipelines, request personal read-only MQTT credentials with your account and subscribe to the events topic over TLS (port 8883).

geoshake/events · TLS :8883

Returns { broker, port, username, password } — works with any MQTT client: paho, aiomqtt, mosquitto_sub.

Request credentials
curl -X POST https://api.geoshake.org/api/ha/credentials \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com","password":"..."}'

# → { broker, port, username, password }
# → subscribe with paho / aiomqtt / mosquitto_sub
Academic · FDSN web services · no key

ObsPy works out of the box.

GeoShake speaks the seismology community's own standards — anonymous FDSN web services returning QuakeML and StationXML. Point ObsPy at api.geoshake.org and pull events and station metadata the same way you would from IRIS or a national network.

1

Pull events & stations

fdsnws-event serves the confirmed catalog as QuakeML 1.2; fdsnws-station serves network/station metadata as StationXML 1.1. Both are anonymous and rate-limited per IP.

from obspy import UTCDateTime
from obspy.clients.fdsn import Client

# GeoShake speaks the standard FDSN web services (no authentication).
client = Client(base_url="https://api.geoshake.org")

# Event catalog -> QuakeML (magnitude = PGA-derived MMI, NOT a seismic magnitude)
cat = client.get_events(starttime=UTCDateTime("2026-01-01"),
                        minmagnitude=2.0)          # MMI threshold
print(cat)                                          # ObsPy Catalog object

# Station metadata -> StationXML (network "GS", provisional, uncalibrated)
inv = client.get_stations(network="GS", level="station")
print(inv)
event — starttime · endtime · minmagnitude · maxmagnitude · bbox · format xml | textstation — network=GS · station · level=station · bbox · format xml | text
The QuakeML magnitude is a PGA-derived Modified Mercalli Intensity (MMI), explicitly labelled not a seismic magnitude — GeoShake computes neither ML/Mw nor depth. Network GS is a provisional code (not FDSN-registered) and sensors are uncalibrated MEMS, so StationXML stops at station level (no instrument response).
Quota · 100 requests / 5 minutes per IP · empty result → HTTP 204
2

Cite a frozen snapshot

For reproducible research, catalog snapshots are archived on Zenodo under CC-BY-4.0 with a citable DOI. Cite the concept DOI below — it is version-stable and always resolves to the latest snapshot.

Citation
GeoShake Community Seismic Network (2026). GeoShake Community
Seismic Event Catalog. Zenodo. https://doi.org/10.5281/zenodo.21313786
DOI10.5281/zenodo.21313786 · concept · latest versionLicense — CC-BY-4.0
Need a snapshot at a specific date for your paper? Ask us and we'll mint a pinned version.
Good to know

What the data is — and isn't.

Network-confirmed events

3+ GeoShake stations must agree before an event is published — a conservative catalog with a low false-alarm rate.

Trigger-window snippets only

Waveform snippets are stored around trigger windows only. GeoShake does not archive continuous waveforms.

Intensity ≠ magnitude

Classes hafif · orta · şiddetli are network-derived shaking categories. max_pga is the max peak ground acceleration across triggering stations.

A complement, not a replacement

A community network — data quality varies with station density. It complements national networks (AFAD/Kandilli, USGS…), it doesn't replace them.

Roadmap

Just shipped — and what's next.

Live

FDSN web services + QuakeML

Anonymous fdsnws-event & fdsnws-station serving QuakeML and StationXML — ObsPy works out of the box today.

Live

DOI-versioned snapshots

The catalog is published on Zenodo under CC-BY-4.0 with a citable DOI — 10.5281/zenodo.21313786. See how to cite.

Live

Live waveform streaming (SeedLink)

Real-time activity envelopes + event bursts over SeedLink — open in ObsPy, jAmaSeis or SWARM at seedlink.geoshake.org:18000.

Planned

Waveform snippets (miniSEED)

Downloadable trigger-window snippets in miniSEED alongside the event catalog for signal-level analysis (live SAC per-trigger already available on station pages).

Researchers — tell us what you need first. Get in touch →