REST API

Climate Risk API

Programmatic physical climate risk assessment across 12 hazards, multiple scenarios, and projections to 2050. TCFD- and ISSB-aligned, high-resolution data for any coordinate, with batch processing for portfolio-scale execution and a comprehensive, open methodology.



Get access to dry run mode. We will email your key and the docs.

Climate Risk API documentation showing hazard assessment endpoints and response formats
Interactive API documentation with request builder and response examples

Developer Documentation

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.

Read the docs →

API Endpoints

POST
/api/v1/climate-risk/analyze/

Assess physical climate risk for a single location. Returns hazard ratings, composite score, and scenario projections.

POST
/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.

Step 1 · Submit
POST/climate-risk/analyze/

Send the coordinate. Returns 202 Accepted with a job_id right away.

Step 2 · Poll
GET/climate-risk/jobs/{job_id}/

Check status: PENDINGRUNNINGCOMPLETED.

Step 3 · Retrieve
GET/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.

Step 1 · Submit
POST/climate-risk/batch/analyze/

Send your locations array. Returns 202 Accepted with a batch_id right away.

Step 2 · Poll
GET/climate-risk/batch/{batch_id}/

Check progress: completed, running, and percent_complete.

Step 3 · Retrieve
GET/climate-risk/batch/{batch_id}/results/

Fetch paginated results, filterable by status.

5,000
locations per request
20
concurrent jobs
auto-retry per job
500
results per page
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.

Production
POST /api/v1/climate-risk/analyze/
{
  "lat": 19.0760,
  "lon": 72.8777
}

→ live assessment,
  consumes quota

Dry run
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.

Deterministic
same input → same output
Zero quota
no cost, no analysis run
Identical schema
build against the real contract

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

Base URL https://api.continuuiti.com
Authentication X-API-Key header
Response Format JSON
Climate Hazards 12 physical hazards
Climate Scenarios SSP2-4.5, SSP5-8.5
Time Horizons Baseline, 2030, 2040, 2050
Risk Score Range 1.0 – 5.0 (Low / Moderate / High / Severe / Extreme)
Framework Alignment TCFD- and ISSB-aligned; supports IFRS S2, CSRD/ESRS E1 and AASB S2 physical-risk disclosure
Coverage Global
Full Reference Complete endpoint documentation at /docs/#climate-risk-api

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.

Try Climate Risk Tool →

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.