Earthquake Data Scraper: USGS, EMSC, INGV & More (FDSN)
Pricing
from $0.35 / 1,000 records
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
Maintained by CommunityActor 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) | magnitude | place | lat, lon | depth |
|---|---|---|---|---|
| 2024-01-01T09:45:26.217 | 5.1 mb | 73 km WSW of Sado, Japan | 37.8107, 137.5664 | 10 km |
| 2024-01-01T09:39:59.811 | 5 mb | 23 km WSW of Anamizu, Japan | 37.1479, 136.6562 | 10 km |
| 2024-01-01T09:30:21.401 | 5.2 mb | 50 km NE of Anamizu, Japan | 37.4998, 137.3585 | 10 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/endtimeandminMagnitudefor your window. - Add a bounding box (
minLatitude...maxLongitude) or a radius (latitude,longitude,maxRadius) for a region. - Raise
maxRecordswhen you want more rows. It caps cost: one record event per row. - Set
centerto another data center (e.g.INGV,GEOFON,EMSC) or a comma list. Centers not in the registry can be reached withserviceUrl.
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
| Field | Description |
|---|---|
dataService | event (earthquakes) or station (metadata). Default event. |
center | Data 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. |
serviceUrl | Advanced: point directly at a center's FDSN endpoint (or bare host) and bypass the registry. |
listCentersOnly | Discovery-only switch — map the registry without querying. |
level | Station service only: network, station, channel, or response. |
format | Event output: text (uniform) or geojson (richer). Station is always text. |
starttime / endtime | Time window (ISO 8601). A bare date is expanded to T00:00:00. |
minMagnitude / maxMagnitude | Magnitude bounds (event). |
minLatitude / maxLatitude / minLongitude / maxLongitude | Bounding-box search. |
latitude / longitude / maxRadius / minRadius | Radial search. |
minDepth / maxDepth | Depth bounds in km (event). |
network / station / location / channel | Code filters (station); comma-lists and * ? wildcards supported. |
orderBy | Event sort order (time, magnitude, …). |
maxRecords | Max total records across all queried centers. The form starts at 3; if omitted, 25. Each record is one billable event. |
extraParams | Any additional FDSN query parameters as a JSON object, passed straight through. |
bearerToken / extraHeaders | Optional 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 onlevel). - Discovery rows carry
serviceType,centerFullName,centerWebsite,centerSummaryand 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/extraHeaderscover key-gated deployments and are never logged.