BYTETOOLS

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.

No API key requiredCORS enabledHTTPSFree tier

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
curl 'https://www.seismicportal.eu/fdsnws/event/1/query?limit=2&format=json'
JavaScript (fetch)
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);
Python (requests)
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())
Response — HTTP 200
{
  "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

ParameterTypeRequiredDescription
limitqueryOptionalMaximum events to return, most recent first. 2
formatqueryOptional`json` for GeoJSON, `text` for the FDSN pipe-delimited format, `xml` for QuakeML. json
minmag / maxmagqueryOptionalMagnitude bounds. Filtering to 4 and above cuts the volume dramatically. 4
start / endqueryOptionalTime window in ISO 8601. Without them you get the most recent events. 2026-08-01
lat / lon / maxradiusqueryOptionalCircular geographic filter, in degrees. 41.9
minlat / maxlat / minlon / maxlonqueryOptionalRectangular bounding box filter, in degrees. 35
mindepth / maxdepthqueryOptionalDepth 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

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.