Guide · 3 Verified sources
Space weather, volcano and earthquake alerts for operations teams
Monitor NOAA's planetary K-index, the USGS list of U.S. volcanoes at elevated alert levels and USGS magnitude 4.5+ earthquakes worldwide, with an alert when geomagnetic activity, a volcano's alert level or an earthquake estimate changes.
Start with Planetary K-index of geomagnetic activity, past weekREST API, CLI and MCP
The problem
Teams that run flights, networks or field operations often watch a handful of hazard feeds: geomagnetic activity, volcano alert levels and significant earthquakes. Each comes from a different agency, in a different shape, on a different clock.
This guide sets up three monitors. NOAA's Space Weather Prediction Center publishes the planetary K-index (Kp) for every three-hour UTC period. The USGS Volcano Hazards Program lists the U.S. and U.S.-monitored volcanoes currently above normal. The USGS publishes a rolling feed of magnitude 4.5 and larger seismic events worldwide for the past week.
What the source contains
Planetary K-index of geomagnetic activity, past week · NOAA Space Weather Prediction Center
NOAA Space Weather Prediction Center's planetary K-index (Kp) for each three-hour period of the past seven days, with the running a-index and the number of magnetometer stations reporting. One record per period.
4 typed fields · 63 records in SourceFinch's latest run on October 12, 2026 · publisher updates: every three hours, as each period is estimated · full source page
| Field | Type | Description | Sample value |
|---|---|---|---|
time_tagkey | datetime | Start of the three-hour UTC period (published without an offset; the times are UTC). The record key. | 2026-10-05T00:00:00 |
kp | number | Planetary K-index for the period, 0 to 9 in thirds (for example 5.33 is 5+); NOAA's G1 storm level starts at 5. | 4 |
a_running | integer, nullable | Running a-index for the period, the linear equivalent of Kp in nanotesla-based units. | 27 |
station_count | integer, nullable | Number of ground magnetometer stations that contributed to the estimate. | 8 |
U.S. volcanoes at elevated alert levels · U.S. Geological Survey
Every U.S. or U.S.-monitored volcano that the USGS Volcano Hazards Program currently lists above normal: volcano, observatory, aviation color code, ground alert level and the latest notice, one record per volcano.
10 typed fields · 4 records in SourceFinch's latest run on October 12, 2026 · publisher updates: whenever an observatory issues a notice; monitor hourly · full source page
Fields and a sample record
| Field | Type | Description | Sample value |
|---|---|---|---|
vnumkey | string | Smithsonian Global Volcanism Program volcano number used by the USGS (for example 332010 for Kilauea). The record key. | 311120 |
volcano_name | string | Name of the volcano. | Great Sitkin |
observatory | string, nullable | USGS volcano observatory responsible for the volcano. | Alaska Volcano Observatory |
observatory_code | string, nullable | Short code of the observatory (avo, cvo, calvo, hvo, yvo, nmi). | avo |
color_code | string, nullable | Aviation color code: GREEN, YELLOW, ORANGE or RED. | ORANGE |
alert_level | string | Ground-based volcano alert level: NORMAL, ADVISORY, WATCH or WARNING. | WATCH |
notice_type | string, nullable | Type code of the latest notice (for example DU for a daily update, WU for a weekly update, VAN for an activity notice). | DU |
notice_identifier | string, nullable | Identifier of the latest notice about the volcano; one notice can cover several volcanoes. | DOI-USGS-AVO-2026-10-12T18:56:41+00:00 |
notice_sent_at | datetime, nullable | Time the latest notice was sent (UTC, published without an offset). | 2026-10-12T19:02:18 |
notice_url | url, nullable | Link to the latest notice on volcanoes.usgs.gov; the notice text is not fetched. | https://volcanoes.usgs.gov/hans-public/notice/DOI-USGS-AVO-2026-10-12T18:56:41+00:00 |
USGS magnitude 4.5+ seismic events — past week · U.S. Geological Survey
Monitor USGS magnitude 4.5 and larger seismic events worldwide in the past week, with preferred event identifiers, magnitude, publisher timestamps, review status and coordinates. Retain evidence of later publisher revisions.
12 typed fields · 174 records in SourceFinch's latest run on October 12, 2026 · publisher updates: uSGS summary feed updated every minute; monitor hourly · full source page
Fields and a sample record
| Field | Type | Description | Sample value |
|---|---|---|---|
idkey | string | USGS preferred event identifier. Merged events may receive a different preferred identifier. | us6000u1w7 |
title | string, nullable | Publisher title describing magnitude and location. | M 4.5 - 7 km WSW of Calidonia, Panama |
magnitude | number, nullable | Publisher magnitude estimate; nullable and subject to revision. | 4.5 |
place | string, nullable | Publisher description of the event location. | 7 km WSW of Calidonia, Panama |
event_time_ms | integer | Event origin time as milliseconds since the Unix epoch in UTC. | 1791841734441 |
updated_time_ms | integer | Publisher revision timestamp as milliseconds since the Unix epoch in UTC. | 1791844243040 |
status | string, nullable | Publisher review status, such as automatic or reviewed. | reviewed |
event_type | string, nullable | Publisher event type; the feed may include non-earthquake seismic events. | earthquake |
longitude | number, nullable | Longitude in degrees from the publisher point geometry; nullable. | -81.445 |
latitude | number, nullable | Latitude in degrees from the publisher point geometry; nullable. | 7.9307 |
depth_km | number, nullable | Publisher depth estimate in kilometres; nullable and subject to revision. | 10 |
url | url | USGS detail page for the event. | https://earthquake.usgs.gov/earthquakes/eventpage/us6000u1w7 |
What a change means
- K-index: a new
time_tagis another three-hour period.kpruns from 0 (quiet) to 9 (extreme storm), and NOAA's G1 storm level starts at 5. The most recent periods are preliminary, so a changedkpon a period you already have is a revision. - Volcanoes: a new
vnumis a volcano becoming elevated. A change tocolor_code(GREEN, YELLOW, ORANGE or RED) oralert_level(NORMAL, ADVISORY, WATCH or WARNING) is a change of status, a newnotice_identifieris a new notice, and a removed record is a volcano returning to normal. - Earthquakes: a new
idis a newly reported event. A change tomagnitude,place,depth_kmorstatus(for example automatic to reviewed) is a USGS revision.
Set it up in the console
- Open the Verified recipe. Open the Planetary K-index of geomagnetic activity, past week recipe in the console. It keeps the reviewed URL, fields and record key (time_tag), and shows the latest captured sample. Open in the console
- Create the monitor. Name the monitor, keep the daily schedule or pick another (the console shows the monthly run cost), confirm that you have the right to monitor the source, and choose Create monitor.
- Run the baseline. The first run is the baseline: every record is new. From the second run on, the monitor reports what was added, changed or removed, field by field, with the evidence behind each value.
- Choose how you hear about changes. In Alerts, choose immediate change emails or a daily or weekly digest; each monitor can override that on its own page. For your own systems, add a signed webhook in Destinations. Alerts and team
- Add the volcano and earthquake monitors. Open the USGS volcano and earthquake recipes the same way. Both run hourly; the K-index recipe runs daily.
The other recipes: U.S. volcanoes at elevated alert levels, USGS magnitude 4.5+ seismic events — past week.
The same through the REST API, CLI or MCP
Every surface creates the same monitor from the same Verified recipe. You confirm you have the right to collect the source (rights: true).
Planetary K-index of geomagnetic activity, past week
REST API
Create an API key under Console → API & access. Reference: /docs/api.
# the Verified entry (fields, recipe, sample, terms) as JSON
curl https://sourcefinch.com/v1/catalog/noaa-swpc-planetary-k-index -H "Authorization: Bearer $SOURCEFINCH_API_KEY"
# create the monitor from source.json (below)
curl -X POST https://sourcefinch.com/v1/sources \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @source.json
# then run it now (later runs follow the schedule)
curl -X POST https://sourcefinch.com/v1/sources/$SOURCE_ID/runs \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"CLI
The sourcefinch CLI is not on npm yet; see /docs/cli.
sourcefinch login
sourcefinch catalog get noaa-swpc-planetary-k-index --source-json > source.json
sourcefinch sources create --file source.json
sourcefinch runs create $SOURCE_ID --wait
sourcefinch records $SOURCE_IDMCP
Remote MCP server with OAuth; see /docs/mcp.
claude mcp add --transport http sourcefinch https://sourcefinch.com/mcp
# then ask your agent:
"Use SourceFinch to monitor Planetary K-index of geomagnetic activity, past week: get_catalog_source noaa-swpc-planetary-k-index,
then create_source with its create_source_args (dry run first), then run_source."source.json
The request body the API and CLI examples send.
{
"name": "Planetary K-index of geomagnetic activity, past week",
"url": "https://services.swpc.noaa.gov/products/noaa-planetary-k-index.json",
"recipe": {
"mode": "http",
"format": "json",
"items": "[*]",
"fields": {
"kp": "Kp",
"time_tag": "time_tag",
"a_running": "a_running",
"station_count": "station_count"
},
"required": [
"time_tag",
"kp"
],
"types": {
"kp": "number",
"time_tag": "datetime",
"a_running": "integer",
"station_count": "integer"
}
},
"key_field": "time_tag",
"schedule": "daily",
"rights": true,
"catalog": {
"slug": "noaa-swpc-planetary-k-index",
"version_id": "2cce2ac7-6f95-4865-b3b2-ae63483865c4"
}
}U.S. volcanoes at elevated alert levels
REST API
Create an API key under Console → API & access. Reference: /docs/api.
# the Verified entry (fields, recipe, sample, terms) as JSON
curl https://sourcefinch.com/v1/catalog/usgs-elevated-volcano-alerts -H "Authorization: Bearer $SOURCEFINCH_API_KEY"
# create the monitor from source.json (below)
curl -X POST https://sourcefinch.com/v1/sources \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @source.json
# then run it now (later runs follow the schedule)
curl -X POST https://sourcefinch.com/v1/sources/$SOURCE_ID/runs \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"CLI
The sourcefinch CLI is not on npm yet; see /docs/cli.
sourcefinch login
sourcefinch catalog get usgs-elevated-volcano-alerts --source-json > source.json
sourcefinch sources create --file source.json
sourcefinch runs create $SOURCE_ID --wait
sourcefinch records $SOURCE_IDMCP
Remote MCP server with OAuth; see /docs/mcp.
claude mcp add --transport http sourcefinch https://sourcefinch.com/mcp
# then ask your agent:
"Use SourceFinch to monitor U.S. volcanoes at elevated alert levels: get_catalog_source usgs-elevated-volcano-alerts,
then create_source with its create_source_args (dry run first), then run_source."source.json
The request body the API and CLI examples send.
{
"name": "U.S. volcanoes at elevated alert levels",
"url": "https://volcanoes.usgs.gov/hans-public/api/volcano/getElevatedVolcanoes",
"recipe": {
"mode": "http",
"format": "json",
"items": "[*]",
"fields": {
"vnum": "vnum",
"color_code": "color_code",
"notice_url": "notice_url",
"alert_level": "alert_level",
"notice_type": "notice_type_cd",
"observatory": "obs_fullname",
"volcano_name": "volcano_name",
"notice_sent_at": "sent_utc",
"observatory_code": "obs_abbr",
"notice_identifier": "notice_identifier"
},
"required": [
"vnum",
"volcano_name",
"alert_level"
],
"types": {
"notice_sent_at": "datetime"
}
},
"key_field": "vnum",
"schedule": "hourly",
"rights": true,
"catalog": {
"slug": "usgs-elevated-volcano-alerts",
"version_id": "7515d19c-acfd-4c06-9ce0-ef37be89ee81"
}
}USGS magnitude 4.5+ seismic events — past week
REST API
Create an API key under Console → API & access. Reference: /docs/api.
# the Verified entry (fields, recipe, sample, terms) as JSON
curl https://sourcefinch.com/v1/catalog/usgs-earthquakes-m45-week -H "Authorization: Bearer $SOURCEFINCH_API_KEY"
# create the monitor from source.json (below)
curl -X POST https://sourcefinch.com/v1/sources \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @source.json
# then run it now (later runs follow the schedule)
curl -X POST https://sourcefinch.com/v1/sources/$SOURCE_ID/runs \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"CLI
The sourcefinch CLI is not on npm yet; see /docs/cli.
sourcefinch login
sourcefinch catalog get usgs-earthquakes-m45-week --source-json > source.json
sourcefinch sources create --file source.json
sourcefinch runs create $SOURCE_ID --wait
sourcefinch records $SOURCE_IDMCP
Remote MCP server with OAuth; see /docs/mcp.
claude mcp add --transport http sourcefinch https://sourcefinch.com/mcp
# then ask your agent:
"Use SourceFinch to monitor USGS magnitude 4.5+ seismic events — past week: get_catalog_source usgs-earthquakes-m45-week,
then create_source with its create_source_args (dry run first), then run_source."source.json
The request body the API and CLI examples send.
{
"name": "USGS magnitude 4.5+ seismic events — past week",
"url": "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/4.5_week.geojson",
"recipe": {
"mode": "http",
"format": "json",
"items": "features[*]",
"fields": {
"id": "id",
"url": "properties.url",
"place": "properties.place",
"title": "properties.title",
"status": "properties.status",
"depth_km": "geometry.coordinates[2]",
"latitude": "geometry.coordinates[1]",
"longitude": "geometry.coordinates[0]",
"magnitude": "properties.mag",
"event_type": "properties.type",
"event_time_ms": "properties.time",
"updated_time_ms": "properties.updated"
},
"required": [
"id",
"event_time_ms",
"updated_time_ms",
"url"
],
"types": {
"depth_km": "number",
"latitude": "number",
"longitude": "number",
"magnitude": "number",
"event_time_ms": "integer",
"updated_time_ms": "integer"
}
},
"key_field": "id",
"schedule": "hourly",
"rights": true,
"catalog": {
"slug": "usgs-earthquakes-m45-week",
"version_id": "7a1098df-12da-408e-a71a-55db8c41eb35"
}
}Alerts and evidence
Volcano status changes are rare, so an immediate change email suits that monitor. The K-index and earthquake feeds change all the time: send them to a webhook and filter on `kp` or `magnitude` in your own system, or read them in a daily digest.
Every run keeps the publisher's exact response with its SHA-256 hash and a signed manifest, and every value points back to where it was read. How that works is in the docs:
Limitations
- Empty results are possible. The volcano list holds only volcanoes above normal; it is normally short and would be empty if every monitored volcano returned to normal. A week with no magnitude 4.5+ event is very unlikely, but an empty earthquake feed is still a possible publisher state. Check the source's health on its page before reading an empty result as all clear.
- The windows roll: the K-index covers the past seven days and the earthquake feed the past week. A period or event leaving the window is not a deletion, and an event leaving the feed does not mean the hazard has ended.
- USGS can merge events and change an event's preferred
id; the monitor does not resolve aliases across identifiers. - Notice texts are not fetched and impacts are not inferred. SourceFinch carries the data as published and issues no safety advice; NOAA and USGS publish the warnings.
Usage rights, terms posture and reliability for each source are on its source page. They are our documented understanding of each publisher's stated terms, not legal advice.
Related
SourceFinch is independent and is not affiliated with or endorsed by NOAA Space Weather Prediction Center, U.S. Geological Survey. This guide describes their public data as SourceFinch acquires it. It is not legal, medical or financial advice.