Earthquake Data Scraper: USGS, EMSC, INGV & More (FDSN) avatar

Earthquake Data Scraper: USGS, EMSC, INGV & More (FDSN)

Pricing

from $0.35 / 1,000 records

Go to Apify Store
Earthquake Data Scraper: USGS, EMSC, INGV & More (FDSN)

Earthquake Data Scraper: USGS, EMSC, INGV & More (FDSN)

Download earthquake lists from USGS, EMSC, INGV, GEOFON, IRIS and other FDSN seismic data centers. Filter by date, magnitude, depth, area or radius; get one row per quake with time, lat/lon, depth, magnitude and place name. Seismic station metadata mode too. Pay per record.

Pricing

from $0.35 / 1,000 records

Rating

0.0

(0)

Developer

Datamule

Datamule

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

6 days ago

Last modified

Categories

Share

FDSN Seismic Extractor

Get a clean list of earthquakes (time, magnitude, latitude/longitude, depth, place name) from the USGS catalog and other seismic data centers that publish the standard FDSN web services API. One row per event, ready for CSV, Excel or JSON.

Quick start: 3 earthquakes from USGS

The Input form and the ready-to-run example open on this exact job. Just click Start:

{"dataService": "event", "center": "USGS", "starttime": "2024-01-01", "endtime": "2024-01-02", "minMagnitude": "5", "maxRecords": 3, "listCentersOnly": false, "level": "station", "format": "text"}

It asks USGS for M5+ earthquakes on 1 January 2024 and stops at 3 records, so it costs at most 3 record events (US$0.0015 on the FREE tier). A real run of this input (on 2026-09-25) returned these USGS events:

time (UTC)magnitudeplacelat, londepth
2024-01-01T09:45:26.2175.1 mb73 km WSW of Sado, Japan37.8107, 137.566410 km
2024-01-01T09:39:59.8115 mb23 km WSW of Anamizu, Japan37.1479, 136.656210 km
2024-01-01T09:30:21.4015.2 mb50 km NE of Anamizu, Japan37.4998, 137.358510 km

Every row also carries eventId, magType, author, catalog, _center: "USGS", _serviceUrl (the USGS FDSN event service queried) and the original columns in _raw.

Run your own query

  • Change starttime / endtime and minMagnitude for your window.
  • Add a bounding box (minLatitude...maxLongitude) or a radius (latitude, longitude, maxRadius) for a region.
  • Raise maxRecords when you want more rows. It caps cost: one record event per row.
  • Set center to another data center (e.g. INGV, GEOFON, EMSC) or a comma list. Centers not in the registry can be reached with serviceUrl.

Other modes

Station metadata

Switch Data service to station, choose a level, and filter by network / station / channel codes or an area.

{ "dataService": "station", "center": "IRIS", "network": "IU", "station": "ANMO", "level": "channel", "maxRecords": 5 }

List data centers

Turn on List data centers only (or leave both Data center and Service URL empty) to list the centers in the fdsn.org registry with their live service URLs, one row per center and service.

{ "listCentersOnly": true, "maxRecords": 5 }

How rows are parsed

The Actor reads each response's # header column by column, so centers that rename or reorder columns (for example SCEDC's Longtitude spelling) still map to the same fields, and every original column is kept in _raw. Events can also be fetched as GeoJSON (format: "geojson") from centers that support it, such as USGS and INGV.

Input

FieldDescription
dataServiceevent (earthquakes) or station (metadata). Default event.
centerData center name(s) from the fdsn.org registry — one, a comma-list, or all. Common aliases work (iris, usgs, ingv, geofon…). Leave empty for discovery.
serviceUrlAdvanced: point directly at a center's FDSN endpoint (or bare host) and bypass the registry.
listCentersOnlyDiscovery-only switch — map the registry without querying.
levelStation service only: network, station, channel, or response.
formatEvent output: text (uniform) or geojson (richer). Station is always text.
starttime / endtimeTime window (ISO 8601). A bare date is expanded to T00:00:00.
minMagnitude / maxMagnitudeMagnitude bounds (event).
minLatitude / maxLatitude / minLongitude / maxLongitudeBounding-box search.
latitude / longitude / maxRadius / minRadiusRadial search.
minDepth / maxDepthDepth bounds in km (event).
network / station / location / channelCode filters (station); comma-lists and * ? wildcards supported.
orderByEvent sort order (time, magnitude, …).
maxRecordsMax total records across all queried centers. The form starts at 3; if omitted, 25. Each record is one billable event.
extraParamsAny additional FDSN query parameters as a JSON object, passed straight through.
bearerToken / extraHeadersOptional auth for gated deployments. Never logged.

Output

Every record shares a stable, fully-declared set of fields — _dataService, _center, _serviceUrl, _level, _rowIndex — plus mode-specific data and a lossless _raw:

  • Event records carry eventId, time, latitude, longitude, depthKm, magnitude, magType, magAuthor, author, catalog, eventLocationName, eventType.
  • Station records carry network, station, location, channel, siteName, elevation, depth, azimuth, dip, sensorDescription, scale, sampleRate, startTime, endTime (fields populated depend on level).
  • Discovery rows carry serviceType, centerFullName, centerWebsite, centerSummary and the service URL.

Pricing

Pay-per-event: one record charge per emitted row (an event, a station/channel, or a discovery row): US$0.0005 per record on the FREE tier, lower on higher Apify plans. maxRecords is your charge ceiling, e.g. 3 records = at most US$0.0015. Apify platform usage (compute) is billed separately by Apify.

If you set a maximum cost per run, the Actor also respects it: it returns only the records that budget can pay for, and it stops querying further centers once the next record would not fit. A positive budget below one record price returns 0 rows and 0 charges. Do not use 0 as the run's maximum cost, because Apify treats 0 as "not set".

Notes

  • A query that matches nothing (HTTP 204, or a header-only body) returns 0 records and exits cleanly — the Actor never fabricates rows.
  • Parameters are not perfectly uniform across centers: GeoNet rejects limit; some centers want a full ISO datetime. The Actor normalizes bare dates and, in multi-center mode, skips a center that rejects the query (surfacing its own error) so one strict center never fails the whole run.
  • Binary waveform data (dataselect / miniSEED) is intentionally out of scope — this Actor returns event and station metadata only.
  • Public centers need no credentials. bearerToken / extraHeaders cover key-gated deployments and are never logged.