EMSC Seismic Portal API
Free EMSC Seismic Portal FDSN API with no key: real-time earthquake events worldwide as GeoJSON, with magnitude, depth, region and contributing agency. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the EMSC Seismic Portal API?
The EMSC Seismic Portal offers a free, key-free FDSN event web service returning earthquakes detected by the Euro-Mediterranean Seismological Centre and its contributing networks. Responses are GeoJSON with magnitude, depth, origin time, Flinn-Engdahl region and the reporting agency.
EMSC aggregates real-time seismic data from over eighty European and Mediterranean networks and republishes it through the standard FDSN event web service, the same interface USGS implements. That standardisation is the point: the query parameters are identical across seismological data centres, so code written against one works against another with only the hostname changed. EMSC's coverage is strongest around Europe and the Mediterranean but genuinely global — the example returns Indonesian events reported by BMKG.
The `auth` property is the field that distinguishes this from a single-network feed: it names which agency actually determined the solution, so you can see that a magnitude came from BMKG, INGV or EMSC's own rapid system. Rapid solutions are revised, sometimes substantially, in the minutes and hours after an event — `lastupdate` tells you when the record last changed, and `unid` is the stable event identifier to key on. Note the depth sign convention: the third GeoJSON coordinate is negative metres while the `depth` property is positive kilometres for the same event.
Quick facts
- Base URL
https://www.seismicportal.eu/fdsnws/event/1- Authentication
- No API key or account. EMSC data is freely available; the centre asks for acknowledgement and notes that rapid solutions are preliminary and subject to revision.
- Rate limit
- No published hard limit. EMSC also offers a WebSocket feed for real-time notification, which is a better fit than polling this endpoint frequently.
- Pricing
- Free. EMSC is a non-profit scientific organisation; acknowledgement is requested for reuse.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the EMSC Seismic Portal API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Fetch the two most recent earthquakes worldwide
GET https://www.seismicportal.eu/fdsnws/event/1/query?limit=2&format=json
curl 'https://www.seismicportal.eu/fdsnws/event/1/query?limit=2&format=json'const res = await fetch("https://www.seismicportal.eu/fdsnws/event/1/query?limit=2&format=json");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://www.seismicportal.eu/fdsnws/event/1/query?limit=2&format=json", timeout=20)
res.raise_for_status()
print(res.json()){
"type": "FeatureCollection",
"metadata": {
"count": 2
},
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
120.18,
-8.27,
-10.0
]
},
"id": "20260821_0000159",
"properties": {
"source_id": "2048932",
"source_catalog": "EMSC-RTS",
"lastupdate": "2026-08-21T07:35:46.982402Z",
"time": "2026-08-21T07:26:31.0Z",
"flynn_region": "FLORES REGION, INDONESIA",
"lat": -8.27,
"lon": 120.18,
"depth": 10.0,
"evtype": "ke",
"auth": "BMKG",
"mag": 2.7,
"magtype": "m",
"unid": "20260821_0000159"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
120.6,
-8.18,
-13.0
]
},
"id": "20260821_0000158",
"properties": {
"source_id": "2048929",
"source_catalog": "EMSC-RTS",
"lastupdate": "2026-08-21T07:28:42.108679Z",
"time": "2026-08-21T07:24:10.0Z",
"flynn_region": "FLORES REGION, INDONESIA",
"lat": -8.18,
"lon": 120.6,
"depth": 13.0,
"evtype": "ke",
"auth": "BMKG",
"mag": 2.8,
"magtype": "m",
"unid": "20260821_0000158"
}
}
]
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | query | Optional | Maximum events to return, most recent first. 2 |
format | query | Optional | `json` for GeoJSON, `text` for the FDSN pipe-delimited format, `xml` for QuakeML. json |
minmag / maxmag | query | Optional | Magnitude bounds. Filtering to 4 and above cuts the volume dramatically. 4 |
start / end | query | Optional | Time window in ISO 8601. Without them you get the most recent events. 2026-08-01 |
lat / lon / maxradius | query | Optional | Circular geographic filter, in degrees. 41.9 |
minlat / maxlat / minlon / maxlon | query | Optional | Rectangular bounding box filter, in degrees. 35 |
mindepth / maxdepth | query | Optional | Depth bounds in kilometres. 50 |
Response fields
features[].properties.unidstring- Stable EMSC event identifier. Use it to deduplicate as a solution is revised.
properties.mag / magtypefloat / string- Magnitude and the scale it was measured on — `mb`, `ml`, `mw` and others are not interchangeable.
properties.depthfloat- Hypocentre depth in positive kilometres, whereas the GeoJSON coordinate array carries negative metres.
properties.flynn_regionstring- Flinn-Engdahl region name, the standard human-readable geographic label for seismic events.
properties.authstring- The agency that produced this solution. Different agencies report different magnitudes for the same event.
properties.lastupdatestring- When this record was last revised. Rapid solutions change in the hours after an event.
properties.evtypestring- Event type — `ke` for a known earthquake, with separate codes for explosions and induced events.
What you can build with the EMSC Seismic Portal API
- Show recent earthquakes on a map with GeoJSON straight from the API
- Alert on events above a magnitude threshold in a region
- Compare magnitude solutions from different national agencies
- Backfill a seismic catalogue for a study area
- Add a live seismicity widget to a geology site
Common errors and how to fix them
204 No Content
The FDSN standard returns 204, not an empty array, when a query matches nothing.
Fix: Handle 204 explicitly — many HTTP clients will hand you an empty body and no error.
400
Malformed time or a bad parameter combination.
Fix: Times are ISO 8601. Circular and rectangular geographic filters are mutually exclusive; sending both is rejected.
Duplicated events
The same earthquake has solutions from several agencies.
Fix: Deduplicate on `unid`, and pick a preferred `auth` if you need one row per event.
Magnitudes disagree with another source
Different agencies and magnitude scales.
Fix: Compare `magtype` before comparing numbers. An `ml` from a local network and an `mw` from a global one legitimately differ.
EMSC Seismic Portal API — frequently asked questions
Is the EMSC earthquake API free?
Yes, free with no key or registration. EMSC is a non-profit scientific collaboration and asks only for acknowledgement when you reuse the data.
How does this differ from the USGS earthquake feed?
Both implement the same FDSN event standard, so the query parameters match. EMSC aggregates European and Mediterranean networks with dense regional coverage; USGS is authoritative for the United States and runs its own global catalogue. For events outside both regions they often report the same earthquake with slightly different solutions.
Why do the depth values look inconsistent?
The GeoJSON geometry array carries depth as negative metres, following the GeoJSON elevation convention, while the `depth` property is positive kilometres. They describe the same hypocentre; read the property, not the coordinate.
Can I get real-time notifications instead of polling?
Yes. EMSC runs a WebSocket feed that pushes new and revised events as they are determined, which is far more efficient than polling this endpoint every few seconds.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
GeoJSON Validator
Validate GeoJSON against RFC 7946 and get the exact JSON path of every problem: unclosed rings, swapped coordinates, missing properties and more.
GeoJSON to CSV Converter
Flatten a GeoJSON FeatureCollection into a CSV table with one row per feature, a centroid for lines and polygons, and every property as a column.
EMSC Seismic Portal is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.