RoofTake

Historical hail archive: January 2016–December 2025. NOAA radar estimates within 25 miles of each city centre. ZIP matches use the first three digits; this is not a property-level report or a live alert service. Coverage and source.

Free · no key · no registration

Data and API

Everything you see on this site is static JSON you can download and use. No authentication, no quota, no catch.

What is available

FileWhat is in it
/data/index.json All 50 areas with a summary each: hail day counts, biggest stone, date of the most recent event, coordinates.
/data/metros/{key}.json The complete record for one area — every hail day, size, signature count, distance and probabilities. For example amarillo-tx.json
/data/years/{year}.json Every event in that year across all areas, sorted by size. 2025
/data/zip-index.json Three-digit ZIP prefix to metro area mapping.

Source archive URLs, checksums and coverage. Annual totals count metro-days; overlapping areas may share the same storm.

Example

How many 2 in (5 cm) or larger hail days radar recorded over Oklahoma City:

curl -s https://rooftake.com/data/metros/oklahoma-city-ok.json \
  | python3 -c "import sys,json; d=json.load(sys.stdin); \
    print(sum(1 for e in d['events'] if e['max_in'] >= 2))"

What the fields mean

FieldMeaning
max_in / max_cmLargest stone the algorithm estimated in the storm cell. An estimate of what was aloft, not a ground measurement.
signaturesNumber of distinct radar cell observations within 25 miles that day.
prob / sevprobProbability of hail and of severe hail, in percent, as reported by NEXRAD.
nearest_mi / farthest_miDistance of the closest and furthest signature from the area centroid.
data_statusLIVE = real NOAA archive data, not a live feed. Read window for coverage. SEED_SAMPLE = synthetic sample data. Always check this.

Licence and terms

The source data is US Government public domain (NOAA NCEI, dataset nx3hail). Our processing and aggregation are free to reuse, commercially included, on two conditions:

  1. Link back to the page you took the data from.
  2. Do not present models as measurements. Cost estimates and the RoofTake Score are our models and are labelled as models. Radar hail size is an estimate, not a measurement.

We are not affiliated with or endorsed by the US Government.

RoofTake Score

The 0–100 score on area pages is our model, not data. The formula and its weights are published on the methodology page, so you can recompute it from the JSON and check our arithmetic. If you use it, say that it is the RoofTake model.

Stability

  • The window field gives historical coverage. generated is the retrieval date; it does not extend the coverage period.
  • The structure is versioned in the schema field. We add fields; we do not rename existing ones.
  • Cache sensibly — these are static files, not an API, and they honour HTTP headers.

Need it in a different shape?

A different format, different areas, different granularity — email hello@rooftake.com. If it makes sense for other people too, we will publish it.

Common questions

Is it really free?

Yes. The underlying radar data is US Government public domain, and our aggregation is free to reuse with a link back. No key, no registration, no quota we police.

Can I use it commercially?

Yes, commercially too. The only conditions are a link back to the page you took it from, and not presenting our modelled estimates as measurements.

How often does it change?

The archive covers 2016–2025; updates require a validated rebuild. The field structure does not change without notice — we add fields, but we do not rename or remove existing ones.

Why give it away?

Because citations and links are worth more to a site like this than a handful of subscriptions. When somebody needs a hail number and takes ours, they link to us. That is the kind of growth you cannot buy.

I need data for the whole US, not 50 areas.

Then go straight to the source: NOAA SWDI is public and needs no key. Our downloader is in the repository as pipeline/fetch_hail.py and you can point it at any coordinates.