CrisisReady Heat Risk Data APIA CrisisReady research platform Back to Balsari Lab

Heat Risk Data API

Precision heat exposure metrics for any geography on Earth

ERA5 Climate Data Population-Weighted Automated Daily Updates Serverless API
CrisisReady · Balsari Lab, Harvard University

Daily heat exposure metrics for any place on Earth.

The CrisisReady Heat Risk API is a geospatial data service that delivers heat exposure metrics for any user-defined area — from city neighborhoods to entire regions — to support emergency preparedness and response. Drawing on ERA5 reanalysis and Open-Meteo archives, it produces daytime, nighttime, and 24-hour aggregates of four physiological heat measures.

The four heat measures

Temperature Heat Index UTCIUniversal Thermal Climate Index WBGTWet Bulb Globe Temperature
📊

Historical context

Every location is scored against a 10-year WMO reference climatology, so responders can instantly tell whether today's conditions are anomalous or normal.

🎯

Vulnerability layer

Socioeconomic indicators — relative wealth, population density, urban land cover, and healthcare access — help prioritize the communities most at risk.

🤖

AI interpretation

An integrated layer translates raw metrics into plain-language risk summaries — actionable for officials and partners without technical expertise.

Active monitoring across South Asia West Africa Latin America Europe North America

The Case

The Problem

🌡️ Heat is the deadliest weather-related hazard globally — and climate change is making it more frequent and more severe.

🌐

Global data exists

ERA5 reanalysis covers the entire globe at hourly resolution. Scientifically authoritative — but it's a 28km grid, not a neighborhood.

📍

Local decisions need local data

Public health teams, city planners, and researchers need heat exposure for their specific communities — not regional averages.

💡 The gap: Transforming raw climate reanalysis into per-community daily metrics requires significant engineering — ERA5 API access, spatial extraction, heat index computation, database storage, and daily refresh pipelines. Most research teams don't have this infrastructure.

Overview

What the System Does

"You give us a map of your study area. We give you daily heat data — automatically, forever."

RESEARCHER GeoJSON polygon map + credentials HEAT RISK DATA API Downloads ERA5 climate data · Extracts polygon-level values Computes heat metrics · Stores in database · Refreshes daily Returns results via API on demand RESULTS Daily heat metrics per polygon

🌍 Any geography

Cities, districts, counties — any set of polygons anywhere on Earth.

📅 Growing history

Initialize with 10 days of data. New data appends automatically each morning.

🔁 Always current

A scheduled process runs every day at 06:00 UTC and updates every active project.

Input

What Goes In

A single GeoJSON file — the same format used by QGIS, Google Maps, and every modern mapping tool.

The Geography

A GeoJSON FeatureCollection — the standard open format for geographic data. Each feature is a named polygon.

What's a polygon?

A shape on a map defined by latitude/longitude coordinates. City districts, census tracts, health zones, river catchments — anything with a boundary.

The Request Fields

  • 📍 project_id — a name for your study
  • 🗺️ json_obj — your GeoJSON polygons
  • 🔑 credentials — username + API key
  • 📅 date_from / date_to — optional date filter when querying
STUDY AREA — CENTRAL BANGLADESH 34 districts · district avg heat index · Jun 20, 2026 Faridpur 118°F Dhaka Gazipur Brahmanbaria Comilla ≥118°F Extreme Danger 116–118°F Danger+ 114–116°F Danger 112–114°F Extr. Caution project_id: 2026-demo-dhaka-bd · 34 districts · 60M+ population

Output

What Comes Out

🌡️

Heat Metrics

36 values per polygon per day: 2m temperature, heat index, UTCI (Universal Thermal Climate Index), and WBGT (Wet-Bulb Globe Temperature) — full-day, daytime, and nighttime windows, max/min/mean each.

🏘️

Vulnerability Indicators

Per-polygon indicators of social and physical vulnerability: wealth index, urban density, healthcare access, land cover, human development, and nighttime light intensity.

📊

WMO 10-Year Baseline

(On request) Percentile distributions per polygon per day-of-year from 10 years of ERA5 history. Enables anomaly detection: is this event historically unusual?

🤖

AI Narrative Summary

(Experimental) AI-generated risk interpretation: risk level, key findings, affected populations, and public health recommendations — in plain language.

Foundations

The Data Sources

ERA5 + Open-Meteo — The Climate Foundation

ERA5 (ECMWF) — Authoritative Historical Record

Fifth-generation global atmospheric reanalysis. Fuses satellite, radiosonde, and station observations with a climate model — the gold standard for historical heat analysis. Provides T2m, dew point, and wind.

Open-Meteo — Near-Real-Time Bridge

Free open-data API that fills ERA5's ~5-day lag with near-real-time estimates. Also provides UTCI and WBGT directly. As ERA5 catches up, provisional values are overwritten with authoritative data.

🌐 Coverage

Global, 0.25° (~28km), 1940–present

📡 Lag

ERA5: ~5-day  ·  Open-Meteo: same-day

LandScan — Population

🏙️ Oak Ridge National Laboratory

Sub-kilometer population estimates for the entire globe. Used to compute the number of people in each study polygon — enabling population-weighted exposure analysis.

Vulnerability Rasters

Pre-processed, globally-consistent rasters stored in S3 and sampled per polygon at project initialization:

Meta RWI VIIRS WorldCover GHSL-SMOD Healthsites GDL HDI

Pipeline

How Data Flows Through the System

RESEARCHER API + COMPUTE DATA SOURCES STORAGE OUTPUT POST Request GeoJSON polygons + credentials ⚡ Authenticate Validate · Create scaffold Store GeoJSON → S3 📦 S3 — GeoJSON Stored for later use ⚡ Extract Population Sample LandScan raster per polygon 🌍 LandScan (S3) Population raster ⚡ Download ERA5 T2m · Dew point · Pressure from Copernicus CDS API 🌐 ERA5 / CDS API Copernicus Climate Store ⚡ Heat Calculations RH from Magnus formula Heat Index (Rothfuss) Aggregate hourly → daily 🗄️ Aurora DB PostgreSQL projects population metrics vulnerability wmo_ref per polygon · per day growing record 📤 JSON Response 18 heat metrics per polygon per day paginated vulnerability + metadata 🕕 EventBridge Daily 06:00 UTC appends latest ERA5 day ⚡ DailyUpdate Downloads & appends new ERA5 day per project 🏘️ Vulnerability RWI · VIIRS · WorldCover GHSL · Healthsites · GDL
Researcher submits a map → the API authenticates, stores the GeoJSON, pulls population from LandScan, downloads ERA5, computes heat metrics, and stores results in Aurora. Results return on demand as paginated JSON. EventBridge triggers daily refreshes automatically.

Metrics

The Heat Metrics

Four variables across three time windows — physiological heat stress captured the way public health and occupational safety agencies actually measure it.

36 Values Per Polygon Per Day

Time WindowVariableStatistics
☀️ Full Day (00:00–23:59 local)
2m Temperature (°C)Max · Min · Mean
Heat Index (°F)Max · Min · Mean
UTCI (°C)Max · Min · Mean
WBGT (°C)Max · Min · Mean
🌤️ Daytime (06:00–18:00 local)
2m Temperature (°C)Max · Min · Mean
Heat Index (°F)Max · Min · Mean
UTCI (°C)Max · Min · Mean
WBGT (°C)Max · Min · Mean
🌙 Nighttime (18:00–06:00 local)
2m Temperature (°C)Max · Min · Mean
Heat Index (°F)Max · Min · Mean
UTCI (°C)Max · Min · Mean
WBGT (°C)Max · Min · Mean

🌡️ 2m Temperature (T2m)

Air temperature at 2 metres above ground — the standard meteorological measurement. Degrees Celsius.

🔥 Heat Index (HI)

The "feels like" temperature — combines air temperature and humidity. Amplified dramatically in humid climates. Degrees Fahrenheit.

🌬️ UTCI — Universal Thermal Climate Index

The physiological standard (ISO 15743). Models radiation, wind, humidity, and temperature together. Comparable across all climates — dry desert and humid tropics on equal footing. Degrees Celsius.

💧 WBGT — Wet-Bulb Globe Temperature

The occupational safety standard (ISO 7243). >32°C: moderate work suspended. >35°C: all outdoor work must stop. Degrees Celsius.

Context

Vulnerability Layer

Heat exposure ≠ heat risk. Risk depends on who is exposed and their adaptive capacity. Each indicator is extracted per polygon at project initialization.

💰
Relative Wealth Index

Meta/World Bank satellite-derived wealth at sub-km resolution. Wealthier areas have better access to A/C and healthcare.

💡
VIIRS Nighttime Lights

NASA satellite nighttime light intensity — proxy for economic activity, infrastructure quality, and energy access.

🏙️
GHSL-SMOD

Urban density classification — urban core, dense urban, suburban, rural. Urban heat island effects are strongest in dense cores.

🌿
ESA WorldCover

10m land cover — built-up, tree cover, grassland, water. Vegetation and water moderate local temperatures.

🏥
Healthsites

Number and type of healthcare facilities per polygon. Proximity to care is critical during heat emergencies.

📈
GDL Human Development Index

Subnational HDI scores — composite of education, income, and life expectancy. Lower HDI = greater heat vulnerability.

Anomaly Detection

WMO Reference Climatology

What Is It?

A 10-year historical baseline — one statistical distribution per polygon per day-of-year (1–366).

Why It Matters

A heat index of 105°F in Delhi in June is expected. The same value in Paris in May is a record-breaking anomaly. The WMO baseline tells you how unusual today's heat is relative to that location and time of year.

Threshold Reference

p75 — Above normal  ·  p95 — Extreme  ·  p99 — Record-breaking

Statistics Computed

Per polygon × day-of-year — 48 columns total

Maxhighest on record
p99record-breaking threshold
p97
p95extreme heat threshold
p75above-normal threshold
Meantypical day value
Median
Mincoolest year on record

3 periods × 2 variables × 8 statistics

Workflow

Project Lifecycle

  • 1
    Submit geography Returns in <1 sec

    POST request with GeoJSON polygons. API responds immediately with project ID and estimated ready time.

  • 2
    Background initialization ~10–15 min

    LandScan extraction, ERA5 download for 10 days, heat metric computation. All happens in the background.

  • 3
    Project is ready — daily updates begin Ongoing

    Scheduled job runs every morning at 06:00 UTC, appending the latest available ERA5 day automatically.

  • 4
    Query your data anytime

    Retrieve metrics with optional date filters and pagination. Results return as paginated JSON.

  • 5
    Optional: WMO Baseline ~6–8 hrs

    Request a 10-year reference climatology for anomaly detection. Runs once per project.

  • 6
    Optional: AI Narrative ~30 sec

    AI-generated risk summary for any time window — risk level, key findings, recommendations.

① POST + GeoJSON Returns 202 immediately ② Background Init LandScan + ERA5 · ~10–15 min ③ Project Ready ✓ Daily auto-update begins ④ Query Metrics Paginated JSON · any date range + optional WMO baseline & AI summary

Worked Example

Dhaka, Bangladesh 2026

34 districts covering central and southern Bangladesh. GeoJSON FeatureCollection initialized in under 15 minutes. Values below are real ERA5 reanalysis for Jun 23, 2026.

Project: 2026-demo-dhaka-bd

✅ Initialized <15 min  ·  ✅ Daily ERA5 + near-real-time
✅ 34 districts  ·  ✅ 6 vulnerability layers extracted

The story in three numbers: 51.3°C UTCI (extreme heat stress), 35.2°C WBGT (ISO 7243 stop-work threshold), and 24 of 34 districts simultaneously in extreme-stress territory — on a typical June day, in a population where 68% of workers are outdoor laborers.

Jun 23, 2026 — Peak Conditions (ERA5, top 8 of 34 by UTCI)

DistrictT2m °CHI °FUTCI °CWBGT °CPop.
Joypurhat34.0113.651.335.2 ⚠1.1M
Jhenaidah34.0112.751.035.1 ⚠2.0M
Jessore33.4112.350.735.0 ⚠3.2M
Chuadanga34.0114.450.334.91.3M
Bogra33.5111.750.534.63.9M
Faridpur33.4109.350.434.72.2M
Jamalpur32.8112.450.034.52.7M
Kishoreganj33.9111.150.034.13.4M

⚠ WBGT ≥35°C = ISO 7243 threshold at which all outdoor work must stop  ·  UTCI ≥46°C = Extreme heat stress (24/34 districts)  ·  Real ERA5 data, Jun 23, 2026

Comparative

Five Cities — Heat Across Climates

Same API. Five climate zones. All data is real ERA5, peak day for each city in June 2026.

CityAir TempHeat IndexUTCIWBGTUTCI Level
🇺🇸 Phoenix, AZ (Jun 17)43.3°C102.5°F62.3°C31.3°CBeyond Extreme
🇪🇸 Seville, ES (Jun 22)39.8°C102.7°F54.5°C32.7°CBeyond Extreme
🇧🇩 Dhaka, BD (Jun 23)34.0°C113.6°F51.3°C35.2°C ⚠Extreme
🇳🇬 Lagos, NG (Jun 18)30.9°C103.8°F45.5°C31.9°CVery Strong
🇲🇽 Oaxaca, MX (Jun 15)29.0°C85.2°F46.7°C30.1°CExtreme

⚠ WBGT ≥35°C = ISO 7243 stop-work threshold  ·  UTCI scale: >54°C Beyond Extreme · 46–54°C Extreme · 38–46°C Very Strong

🏜️ The Dry Heat Illusion — Phoenix

Heat Index: 102°F — sounds survivable. UTCI: 62.3°C — beyond any physiological safety scale. Low humidity keeps HI modest while solar radiation loads soar. 7 of 17 counties simultaneously exceeded UTCI 54°C.

🌊 Wet Heat at the Limit — Dhaka

Bangladesh's combination of high humidity and heat pushes WBGT to 35.2°C — the ISO threshold where all outdoor work must stop. 3 districts exceeded this; 26 of 34 exceeded the moderate-work limit.

📊 Why UTCI + WBGT? HI alone misses this

Oaxaca HI: 85°F — looks mild. But UTCI: 46.7°C — extreme heat stress, driven by elevated radiation and humidity in highland valleys. Single-metric analysis leads to under-response.

Architecture

Under the Hood

Built on serverless AWS infrastructure — no servers to maintain, scales automatically, and costs nearly zero when idle.

AWS Lambda

Four functions handle API requests, daily updates, WMO computation, and async jobs. Each runs on demand — no servers to manage.

🗄️
Aurora PostgreSQL

Serverless relational database. Stores all project data, metrics, and vulnerability tables. Scales to zero when idle.

📦
Amazon S3

Object storage for GeoJSON files, LandScan, and vulnerability rasters. Pre-loaded once, read at project initialization.

🕕
EventBridge

Scheduled trigger fires every morning at 06:00 UTC to kick off the daily ERA5 update pipeline for all active projects.

📬
SQS Queues

Message queues for async jobs — daily updates per project, WMO computation units. Handles failures and retries automatically.

🔐
Secrets Manager

Stores ERA5 API keys, database credentials, and LLM API keys securely. Functions retrieve them at runtime — no hardcoded secrets.

💡 Serverless means: no provisioning, no patching, no scaling decisions. Infrastructure exists only while a request is processed — then returns to zero. You interact only through the API.

In the Field

Heat Response Agents — Who Uses This & How

These are live running projects in the API right now — real ERA5 data with vulnerability layers. Peak ERA5 day shown for each city, June 2026.

🇺🇸 Phoenix, AZ — USA
Emergency management · 17 AZ counties · 7M+ population
"Which counties sustained dangerous UTCI and have inadequate cooling infrastructure?"
→ UTCI + WBGT + Healthsites + VIIRS energy access
Jun 17 peak: UTCI 62.3°C (Beyond Extreme) · HI 102.5°F
7 of 17 counties simultaneously above 54°C
🇲🇽 Oaxaca — Mexico
Agricultural extension · 36 municipios · smallholder farming
"How many UTCI degree-days of heat stress did highland corn communities accumulate this season?"
→ UTCI seasonal accumulation + HDI (0.709) + RWI (-0.30)
Jun 15 peak: UTCI 46.7°C (Extreme) · HI 85.2°F
HI looks mild — UTCI reveals highland radiation loading
🇪🇸 Seville — Europe
Civil protection · 120 municipios · high healthcare access
"Was last week's heatwave anomalous? Which municipios exceeded 95th-percentile historical UTCI?"
→ UTCI/WBGT + WMO 10-yr baseline + HDI 0.889
Jun 22 peak: UTCI 54.5°C (Beyond Extreme) · HI 102.7°F 🔥
35 of 36 municipios simultaneously in Extreme+ UTCI
🇳🇬 Lagos — Africa
Public health targeting · 21 LGAs · dense urban core
"Which LGAs combine peak WBGT exposure with lowest Meta RWI wealth scores?"
→ HI + WBGT + Meta RWI (0.24 avg) + VIIRS (6.5)
Jun 18 peak: UTCI 45.5°C (Very Strong) · HI 103.8°F
Urban density amplifies WBGT — 31.9°C across core LGAs
🇧🇩 Dhaka — Asia
Disaster planning & outdoor labor protection · 34 districts
"Which districts crossed the WBGT 35°C stop-work threshold? Who lacks healthcare access to respond?"
→ WBGT + UTCI + health/10k (0.30) + HDI 0.679
Jun 23 peak: WBGT 35.2°C ⚠ · UTCI 51.3°C · HI 113.6°F 🔥
3 districts crossed stop-work threshold · 26/34 above moderate limit
🗺️
Same API. Any geography.
5 projects · 253 polygons · 6 vulnerability layers · near-real-time updates
Data already flowing.

Takeaways

Summary

🗺️

Submit any geography — get daily heat data automatically

A GeoJSON map is all you need. The system initializes in ~15 minutes and updates every day without further action from you.

🏛️

Built on the same climate data used by the IPCC and WMO

ERA5 is the global scientific standard for atmospheric reanalysis. Your heat exposure estimates use the same underlying data as the world's leading climate agencies.

📊

Exposure plus context — heat metrics and vulnerability together

Physical exposure alone doesn't predict risk. The vulnerability layer, WMO baseline, and AI narrative help translate raw metrics into actionable public health insights.

Get Access

Contact balsari@hsph.harvard.edu to request API credentials. We'll set up your account and walk through your first project.

CrisisReady