The complete Climate Risk API reference
Authentication, the async batch flow, sandbox mode, rate limits, and every response field, with copy-paste cURL, Python, and Node examples and a worked end-to-end walkthrough from coordinate to risk score.
API Endpoints
/api/v1/climate-risk/analyze/
Assess physical climate risk for a single location. Returns hazard ratings, composite score, and scenario projections.
/api/v1/climate-risk/batch/analyze/
Process multiple coordinates in a single request. Optimized for portfolio-level risk assessment.
Request & Response Examples
A single-location assessment runs asynchronously, just like the batch flow below: submit the coordinate, poll for status, then retrieve the full result. A typical run completes in 1 to 2 minutes. Adding "dry_run": true returns a deterministic mock through the same three-step flow.
/climate-risk/analyze/Send the coordinate. Returns 202 Accepted with a job_id right away.
/climate-risk/jobs/{job_id}/Check status: PENDING → RUNNING → COMPLETED.
/climate-risk/results/{job_id}/Fetch the full assessment once the job completes.
Submit & queue
POST /api/v1/climate-risk/analyze/ Content-Type: application/json X-API-Key: YOUR_API_KEY { "lat": 19.0760, "lon": 72.8777, "scenarios": ["ssp245", "ssp585"], "horizons": ["baseline", "2030", "2050"] } → 202 Accepted { "job_id": "climate_a1b2c3d4e5f6", "status": "PENDING", "message": "Climate risk assessment queued for processing" }
Retrieve the result
GET /api/v1/climate-risk/results/{job_id}/ → 200 OK (trimmed to 4 of 12 hazards; live payload returns all 12) { "job_id": "climate_a1b2c3d4e5f6", "status": "COMPLETED", "input": { "lat": 19.0760, "lon": 72.8777, "scenarios": ["ssp245", "ssp585"], "horizons": ["baseline", "2030", "2050"] }, "location_context": { "elevation_m": 11.0, "distance_to_coast_km": 2.3, "terrain_type": "flat", "land_cover": "built_area", "climate_zone": "tropical" }, "composite_score": { "ssp245": { "baseline": { "score": 2.1, "rating": "Moderate", "confidence": "High" }, "2030": { "score": 2.6, "rating": "High", "confidence": "High" }, "2050": { "score": 3.0, "rating": "High", "confidence": "High" } }, "ssp585": { "baseline": { "score": 2.1, "rating": "Moderate", "confidence": "High" }, "2030": { "score": 2.8, "rating": "High", "confidence": "High" }, "2050": { "score": 3.5, "rating": "Severe", "confidence": "High" } } }, "hazards": { "sea_level_rise": { "metric": "freeboard", "metric_unit": "meters", "risk_matrix": { "ssp245": { "baseline": "Moderate", "2030": "High", "2050": "High" }, "ssp585": { "baseline": "Moderate", "2030": "High", "2050": "Severe" } }, "values": { "ssp245": { "baseline": 3.0, "2030": 2.7, "2050": 2.3 }, "ssp585": { "baseline": 3.0, "2030": 2.6, "2050": 2.0 } }, "status": "OK" }, "heat_wave": { "metric": "additional_heat_wave_days", "metric_unit": "days/year", "risk_matrix": { "ssp245": { "baseline": "Low", "2030": "High", "2050": "Severe" }, "ssp585": { "baseline": "Low", "2030": "High", "2050": "Extreme" } }, "values": { "ssp245": { "baseline": 0.0, "2030": 16.0, "2050": 34.0 }, "ssp585": { "baseline": 0.0, "2030": 20.0, "2050": 48.0 } }, "status": "OK" }, "river_flood": { "metric": "high_discharge_days", "metric_unit": "days/year", "risk_matrix": { "ssp245": { "baseline": "Moderate", "2030": "High", "2050": "High" }, "ssp585": { "baseline": "Moderate", "2030": "High", "2050": "Severe" } }, "values": { "ssp245": { "baseline": 5.0, "2030": 12.0, "2050": 18.0 }, "ssp585": { "baseline": 5.0, "2030": 14.0, "2050": 24.0 } }, "status": "OK" }, "water_stress": { "metric": "water_stress_score", "metric_unit": "score (0-5)", "risk_matrix": { "ssp245": { "baseline": "Moderate", "2030": "High", "2050": "High" }, "ssp585": { "baseline": "Moderate", "2030": "High", "2050": "High" } }, "values": { "ssp245": { "baseline": 2.8, "2030": 3.1, "2050": 3.4 }, "ssp585": { "baseline": 2.8, "2030": 3.3, "2050": 3.7 } }, "status": "OK" } }, "top_risks": [ { "hazard": "heat_wave", "scenario": "ssp585", "horizon": "2050", "rating": "Extreme" }, { "hazard": "sea_level_rise", "scenario": "ssp585", "horizon": "2050", "rating": "Severe" } ], "metadata": { "baseline_period": "1980-2010", "method_version": "climate_risk_v1.0" }, "error": null }
Batch Processing for Portfolios
Assess up to 5,000 coordinates in a single asynchronous request. Submit your locations, poll for progress, then page through results once the batch completes. One bad coordinate never sinks the run, the batch returns every location that succeeded. The same wave-dispatch pattern powers batch geocoding, LULC, and biodiversity.
/climate-risk/batch/analyze/Send your locations array. Returns 202 Accepted with a batch_id right away.
/climate-risk/batch/{batch_id}/Check progress: completed, running, and percent_complete.
/climate-risk/batch/{batch_id}/results/Fetch paginated results, filterable by status.
POST /api/v1/climate-risk/batch/analyze/ Content-Type: application/json X-API-Key: YOUR_API_KEY { "locations": [ { "lat": 19.0760, "lon": 72.8777, "label": "Mumbai DC" }, { "lat": 1.3521, "lon": 103.8198, "label": "Singapore Hub" } ], "scenarios": ["ssp245", "ssp585"], "horizons": ["baseline", "2030", "2050"] } → 202 Accepted { "batch_id": "batch_climate_a1b2c3d4", "status": "PROCESSING", "total_count": 2, "status_url": "/api/v1/climate-risk/batch/batch_climate_a1b2c3d4/", "results_url": "/api/v1/climate-risk/batch/batch_climate_a1b2c3d4/results/" }
Batch processing maps physical climate risk across an entire facility or supplier list in one pass, the input layer for portfolio- and value-chain-level disclosures under TCFD, IFRS S2, CSRD/ESRS E1, and AASB S2.
Handle 5,000 locations at once
Assess an entire portfolio or supplier list in a single batch request. Drop your email and we will send your API key and the docs.
Test Free with Dry Run
Add "dry_run": true to any POST request and the API returns a deterministic mock response: no quota consumed, no analysis run. The same input always returns the same output, so you can wire up and test your entire integration before processing a single real location.
POST /api/v1/climate-risk/analyze/ { "lat": 19.0760, "lon": 72.8777 } → live assessment, consumes quota
POST /api/v1/climate-risk/analyze/ { "lat": 19.0760, "lon": 72.8777, "dry_run": true } → mock result, tagged "[DRY RUN]", free
The response mirrors the live schema exactly, with a [DRY RUN] marker in its metadata so mock data is never mistaken for real results.
Prefer a dedicated sandbox? Set SANDBOX_MODE=true at the environment level to force every request into dry-run mode for your whole integration.
12 Physical Climate Hazards
Coastal Flood
Riverine Flood
Extreme Heat
Tropical Cyclone
Extreme Wind
Drought
Water Stress
Wildfire
Extreme Cold
Hail
Landslide
Lightning
Key Response Fields
composite_score |
Overall risk per scenario × horizon on a 1.0–5.0 scale, each with a rating (Low, Moderate, High, Severe, Extreme) and a confidence level |
hazards |
Each of the 12 climate hazards with a risk_matrix (rating per scenario/horizon), numeric values, the underlying metric and metric_unit, and a status |
location_context |
Geographic context: elevation_m, distance_to_coast_km, terrain_type, land_cover, and climate_zone |
metadata |
Provenance for the run: source datasets, baseline_period, and method_version |
Technical Specifications
Common Use Cases
Real Estate Due Diligence
Screen property acquisitions for climate exposure. Assess flood, heat, and storm risk before investment decisions.
TCFD Reporting
Generate climate risk data for TCFD disclosures. Scenario analysis ready data for regulatory compliance.
Insurance Underwriting
Enrich underwriting workflows with location-level climate risk scores. Improve pricing accuracy with hazard-specific data.
Put climate risk in your stack
Drop your email and we will send your API key and the integration docs.
Prefer a Web Interface?
Try our Climate Risk tool for instant physical risk assessment with no coding required.
Questions About Climate Risk API Integration?
Book a call to discuss your climate risk assessment requirements and integration approach.
Frequently Asked Questions
How do I authenticate?
Include your API key in the X-API-Key header on every request: X-API-Key: YOUR_API_KEY. There is no Bearer token, OAuth flow, or query-parameter authentication. Only the header is supported. See /docs/#authentication for the full reference.
How do I get an API key?
Sign up at tools.continuuiti.com and generate your API key from the dashboard. API access is available immediately after registration.
Is there a sandbox or free tier?
All POST endpoints accept a dry_run: true flag that validates your request without consuming quota or running the full analysis. New accounts include free credits to test integration. See /docs/#sandbox for the full sandbox pattern.
Can I pass an address instead of coordinates?
The Climate Risk API accepts lat/lon coordinates only. Use the Geocoder API to convert addresses to coordinates first. It batches up to 5,000 addresses per request and returns quality-validated results. See /docs/ for an end-to-end Python example combining both APIs.
What climate scenarios does the API support?
The API supports two IPCC SSP scenarios: SSP2-4.5 (moderate emissions, ~2.7°C warming by 2100) and SSP5-8.5 (high emissions, ~4.4°C warming by 2100). You can request projections under either or both.
What time horizons are available?
The API provides risk projections for baseline (current), 2030, 2040, and 2050. Request specific horizons or receive all in the response. See /docs/ for the full request payload format.
What geographic resolution does the API use?
Resolution varies by hazard type, from 10-30 m (land cover and bare-earth terrain) to ~25 km (climate model output). The API synthesizes all sources into a single assessment per coordinate. See /methodology/climate-risk/ for the per-hazard breakdown.
How does this align with TCFD, IFRS S2, and CSRD?
The API outputs (scenario analysis, hazard categorization, time-horizon projections) support physical-risk disclosures across major frameworks: TCFD (now subsumed by ISSB), IFRS S2, CSRD/ESRS E1, and AASB S2. We don’t certify reports (that’s an auditor’s role), but the underlying data structure aligns with each framework’s physical-risk requirements. See comparison guide.
Related APIs
Start Assessing Climate Risk Today
Create your account and start building with TCFD-aligned climate risk data today.

