BYTETOOLS

NOAA NCEI Natural Hazards API

Free natural hazards API with no key: NOAA's historical tsunami, significant earthquake and volcanic eruption databases, filterable by year, region and magnitude. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the NOAA NCEI Natural Hazards API?

NOAA's National Centers for Environmental Information publish their historical natural hazards databases as a keyless REST API. Tsunami events return the source earthquake's magnitude and depth, the location, the maximum observed water height and the number of recorded runups.

These are the authoritative historical catalogues — the tsunami database alone reaches back to 2000 BC, assembled from instrumental records, historical accounts and geological deposits. The API sits over the same data that underpins tsunami hazard assessment, and it is entirely open, which is not something you can say about most authoritative hazard datasets.

Interpreting the results requires attention to the confidence fields. `eventValidity` grades how certain the record is, running from definite tsunami down to erroneous entry, so an unfiltered query mixes well-instrumented modern events with contested historical accounts. `causeCode` distinguishes earthquake-generated events from volcanic, landslide and meteorological causes. And `numRunups` matters more than it first appears: an event with zero runups was detected instrumentally but produced no observed coastal effect. Each tsunami links to its source earthquake through `earthquakeEventId`, which resolves in the companion earthquakes endpoint.

Quick facts

Base URL
https://www.ngdc.noaa.gov/hazel/hazard-service/api/v1
Authentication
No API key and no registration. United States federal government open data.
Rate limit
No published limit. These are historical catalogues that change rarely.
Pricing
Free, public domain.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the NOAA NCEI Natural Hazards 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 tsunami events for a given year

GET https://www.ngdc.noaa.gov/hazel/hazard-service/api/v1/tsunamis/events?minYear=2011&maxYear=2011&itemsPerPage=2

curl
curl 'https://www.ngdc.noaa.gov/hazel/hazard-service/api/v1/tsunamis/events?minYear=2011&maxYear=2011&itemsPerPage=2'
JavaScript (fetch)
const res = await fetch("https://www.ngdc.noaa.gov/hazel/hazard-service/api/v1/tsunamis/events?minYear=2011&maxYear=2011&itemsPerPage=2");
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.ngdc.noaa.gov/hazel/hazard-service/api/v1/tsunamis/events?minYear=2011&maxYear=2011&itemsPerPage=2", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "items": [
    {
      "id": 5406,
      "year": 2011,
      "month": 2,
      "day": 11,
      "hour": 20,
      "minute": 5,
      "second": 30.7,
      "eventValidity": 4,
      "causeCode": 1,
      "eqMagnitude": 6.8,
      "earthquakeEventId": 9776,
      "numDeposits": 0,
      "country": "CHILE",
      "locationName": "CENTRAL CHILE",
      "regionCode": 89,
      "latitude": -36.474,
      "longitude": -73.125,
      "maxWaterHeight": 0.15,
      "numRunups": 1,
      "warningStatusId": 4,
      "publish": true,
      "eqDepth": 28,
      "oceanicTsunami": true
    },
    {
      "id": 5407,
      "year": 2011,
      "month": 2,
      "day": 21,
      "hour": 23,
      "minute": 51,
      "second": 42.3,
      "eventValidity": 2,
      "causeCode": 3,
      "eqMagnitude": 6.1,
      "earthquakeEventId": 9779,
      "numDeposits": 0,
      "country": "NEW ZEALAND",
      "locationName": "SOUTH ISLAND",
      "regionCode": 81,
      "latitude": -43.583,
      "longitude": 172.68,
      "maxWaterHeight": 3.5,
      "numRunups": 1,
      "deathsTotal": 185,
      "deathsAmountOrderTotal": 3,
      "injuriesTotal": 1500,
      "injuriesAmountOrderTotal": 4,
      "damageMillionsDollarsTotal": 15000,
      "damageAmountOrderTotal": 4,
      "housesDestroyedTotal": 100000,
      "housesDestroyedAmountOrderTotal": 4,
      "publish": true,
      "eqDepth": 6,
      "oceanicTsunami": true
    }
  ],
  "page": 1,
  "totalPages": 11,
  "itemsPerPage": 2,
  "totalItems": 21
}

Parameters

ParameterTypeRequiredDescription
minYear / maxYearqueryOptionalBound the event year. Negative values address years BC. 2011
itemsPerPagequeryOptionalPage size. 2
pagequeryOptional1-based page number. 1
countryqueryOptionalFilter by country name, in the database's uppercase convention. CHILE
minEqMagnitudequeryOptionalMinimum source earthquake magnitude. 7
/earthquakes/eventspathOptionalThe significant earthquakes catalogue, same query grammar.
/volcanoes/eventspathOptionalThe significant volcanic eruptions catalogue.

Response fields

itemsarray
The matching hazard events.
items[].idinteger
Database identifier for the event.
items[].year / month / day / hour / minute / secondinteger / float
Event time as separate components, not a timestamp. Historical entries are frequently missing the finer parts.
items[].country / locationName / regionCodestring / integer
Where it happened, with country names in uppercase and a numeric ocean or region code.
items[].latitude / longitudefloat
Source coordinates in decimal degrees.
items[].eqMagnitude / eqDepthfloat / integer
Magnitude and depth in kilometres of the source earthquake, when there was one.
items[].earthquakeEventIdinteger
Link into the companion earthquakes catalogue for the source event.
items[].maxWaterHeightfloat
Maximum observed water height in metres across all runup observations.
items[].numRunupsinteger
How many coastal runup observations exist. Zero means instrumentally detected with no observed coastal effect.
items[].numDepositsinteger
Count of associated geological deposit records, which is how prehistoric events are evidenced.
items[].eventValidityinteger
Confidence grade for the record, from definite down to erroneous. Filter on it before analysis.
items[].causeCodeinteger
What generated the tsunami — earthquake, volcanic activity, landslide or meteorological.
items[].oceanicTsunami / publishboolean
Whether it propagated across an ocean basin, and whether the record is published.

What you can build with the NOAA NCEI Natural Hazards API

  • Map historical tsunami sources for a coastline
  • Analyse the relationship between earthquake magnitude and water height
  • Build a natural hazards timeline for a region
  • Cross-reference tsunami events with their source earthquakes

Common errors and how to fix them

Dates cannot be parsed

Time is split across separate integer fields with no timestamp.

Fix: Assemble it yourself, and handle nulls — historical records often have only a year.

Implausible historical events

The catalogue includes contested and erroneous entries by design.

Fix: Filter on `eventValidity` before drawing any conclusion. Unfiltered queries mix instrumented and anecdotal records.

Zero water height on a real tsunami

`numRunups` is zero — it was detected but produced no observed coastal effect.

Fix: Read the two fields together rather than treating a zero height as missing data.

Country filter returns nothing

Country names use the database's uppercase convention.

Fix: Send `CHILE` rather than `Chile`, and check spelling against values already in the data.

NOAA NCEI Natural Hazards API — frequently asked questions

Is the NOAA hazards API free?

Yes, free with no key and no registration. It is United States federal government open data and in the public domain.

How far back does the tsunami database go?

To 2000 BC, combining instrumental records, historical accounts and geological deposit evidence. Negative year values address years BC in the query parameters.

What does eventValidity mean?

A confidence grade for the record, running from a definite tsunami down to an entry judged erroneous. The catalogue deliberately retains doubtful records, so filter on this before any analysis.

Can I link a tsunami to its earthquake?

Yes. `earthquakeEventId` resolves in the companion significant earthquakes endpoint, which shares the same query grammar.

Tools that pair with this API

NOAA NCEI Natural Hazards 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.