Hail History Within a Polygon (Event Timeline + Per-Cell Map)
Query hail history for all radar grid cells inside a GeoJSON Polygon.
Query hail history for all radar grid cells inside a GeoJSON Polygon.
Returns three complementary views of the same underlying data:
Event Timeline (events)
One entry per distinct storm event that affected the polygon.
Each event includes start_time, max_hail_size_in, max_hail_index,
cells_hit, and coverage_fraction (fraction of polygon cells impacted).
Cells are grouped into storms using a 2-hour timestamp proximity window, cells whose peak events fall within 2 hours of each other are treated as the same storm event.
Per-Cell Map (features)
GeoJSON FeatureCollection with one Point per grid cell inside the polygon that recorded hail in the time range. Each feature includes:
max_hail_size_in: FLASH AI calibrated estimate for this cellraw_mrms_size_in: uncalibrated radar estimatecoverage: spatial density fraction within the cell areaduration_min: duration of the peak hail eventhail_index: 0.0–5.0 impact indexevent_count: total hail events in the cell during the query windowpeak_start_time: timestamp of the peak (largest) event
Hail Zones (zones)
GeoJSON FeatureCollection with one Feature per 0.25" hail size band
(e.g. 0.75–1.00 in, 1.00–1.25 in, … 2.00+ in). Each zone is a merged
MultiPolygon covering all cells in that band, suitable for direct
point-in-polygon building lookup without iterating individual cells.
Bands are exclusive (no overlap): each cell appears in exactly one zone.
Cells with calibrated hail below 0.25 in appear in features but are excluded
from zones (below the minimum reportable hail size).
Each zone feature includes aggregated properties across all cells in the band:
max_hail_size_in/avg_hail_size_in, calibrated size statisticsmax_hail_index/avg_hail_index, impact index statisticsmax_coverage/avg_coverage, spatial density statisticsmax_duration_min: longest event in the zonetotal_event_count/cell_count, event and cell talliespeak_start_time: timestamp of the highest-impact cell
Input
POST a JSON body with a GeoJSON Polygon geometry (or a GeoJSON Feature wrapping one) plus query parameters:
{
"type": "Polygon",
"coordinates": [[
[-97.52, 35.48], [-97.52, 35.42], [-97.49, 35.42],
[-97.49, 35.48], [-97.52, 35.48]
]],
"start": "2021-05-01T00:00:00",
"end": "2026-06-01T00:00:00"
}Limits
- Max polygon size: 300,000 grid cells (~1,200,000 km²; covers all US states)
- Min date: 2021-05-01
- Coverage: CONUS (20°–55° N, 130°–60° W)
Performance
Single-pass batch query + vectorized calibration. Typical response time:
- County polygon (~500 cells): < 50 ms
- State polygon, 1-hour window (~50K–300K cells): 200–600 ms
- State polygon, multi-year window: add 50–200 ms for zone merging
Token-based authentication with required prefix "Token"
In: header
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/lookback/hail/polygon/" \ -H "Content-Type: application/json" \ -d '{ "type": "Polygon", "start": "string", "end": "string" }'{ "type": "FeatureCollection", "metadata": { "query_start": "2021-05-01T00:00:00+00:00", "query_end": "2026-06-01T00:00:00+00:00", "polygon_cells": 142, "cells_with_hail": 89, "event_count": 12, "max_hail_size_in": 2.75, "largest_event_time": "2023-04-28T21:00:00+00:00", "hail_days": 8, "features_returned": 89, "features_truncated": false }, "events": [ { "start_time": "2023-04-28T21:00:00+00:00", "max_hail_size_in": 2.75, "max_hail_index": 3.8, "cells_hit": 38, "coverage_fraction": 0.268 } ], "features": [ { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -97.12, 35.44 ] }, "properties": { "max_hail_size_in": 2.75, "raw_mrms_size_in": 2.5, "coverage": 0.412, "duration_min": 22, "hail_index": 3.8, "event_count": 3, "peak_start_time": "2023-04-28T21:14:00+00:00" } } ], "zones": [ { "type": "Feature", "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -99.85, 37.74 ], [ -99.83, 37.74 ], [ -99.83, 37.76 ], [ -99.85, 37.76 ], [ -99.85, 37.74 ] ] ] ] }, "properties": { "hail_size_min_in": 2.5, "hail_size_max_in": null, "label_in": "2.50+ in", "max_hail_size_in": 2.75, "avg_hail_size_in": 2.61, "max_raw_mrms_size_in": 2.5, "max_hail_index": 3.8, "avg_hail_index": 3.4, "max_coverage": 0.82, "avg_coverage": 0.61, "max_duration_min": 28, "total_event_count": 9, "cell_count": 3, "peak_start_time": "2023-04-28T21:14:00+00:00" } } ]}
