Physical Risk Intensity API: Flood Depth Projections via REST

Compute scenario-adjusted flood depths for any coordinate. Riverine + coastal estimates, 4 return periods, 2 SSP scenarios, 3 time horizons. Batch up to 500 locations per request.

How the Physical Risk Intensity API Works

Three steps to integrate flood depth projections into your platform using peer-reviewed JRC GloFAS and WRI Aqueduct datasets.

1

Send Request

POST latitude and longitude with optional coastal parameters (SLR percentile, subsidence). Single analysis returns synchronously in ~2 seconds. Batch processes asynchronously.

2

Dual Flood Analysis

JRC GloFAS baseline multiplied by Aqueduct climate ratio for riverine depth. Aqueduct inuncoast for coastal depth. 5-GCM ensemble with quality flags on every data point.

3

Parse Response

Structured JSON with riverine (baseline + 6 scenario/horizon combos), coastal (same structure), and metadata (method version, datasets, processing time).

API Features

Single & Batch

Single analysis returns synchronously in ~2 seconds. Batch up to 500 locations asynchronously with progress tracking and paginated results.

Riverine + Coastal

Two independent flood types in one response. Riverine uses JRC GloFAS + Aqueduct ratio method. Coastal uses Aqueduct inuncoast with configurable SLR percentile and subsidence.

5-GCM Uncertainty

Every riverine data point reports model_count (how many GCMs had data) and model_spread (max minus min depth across models). Median projection for robustness.

7 Quality Flags

Each data point carries a flag: normal, no_flood, new_flood_zone, no_data, no_jrc_data, jrc_artifact, or flood_disappears. Full audit trail for regulatory compliance.

Physical risk intensity API: quality flags, return periods, SSP scenarios, and coastal parameters reference

Built-in Reference Documentation

The API docs panel provides a complete reference for quality flags with color-coded badges, return period probabilities, SSP scenario descriptions, and coastal parameter options. Everything your integration team needs in one place.

7 quality flags with priority ordering

4 return periods with annual probabilities

Coastal: projection percentile + subsidence toggle

Physical risk intensity API: full results JSON showing riverine baseline, projections, and coastal data

Structured Response with Full Transparency

The results endpoint returns a structured JSON with riverine baseline (JRC depth + Aqueduct historical per return period), scenario projections (ratio, projected depth, model count, spread), coastal data, and analysis metadata including datasets and processing time.

Riverine: baseline + 6 scenario/horizon combinations

Coastal: baseline + 6 scenario/horizon combinations

Metadata: method version, datasets, processing time

Endpoints

Single Analysis

POST /api/v1/flood-depth/analyze/

{
  "lat": 38.63,
  "lon": -90.18,
  "label": "St. Louis property",
  "coastal_projection": 50,
  "coastal_subsidence": "wtsub"
}
Field Type Required Description
lat decimal Yes Latitude (-90 to 90)
lon decimal Yes Longitude (-180 to 180)
label string No User-provided label (e.g., property ID)
dry_run boolean No Return deterministic mock data (default: false)
coastal_projection integer No SLR percentile: 5, 50 (default), or 95
coastal_subsidence string No “nosub” or “wtsub” (default, with subsidence)

Full Results

GET /api/v1/flood-depth/results/{job_id}/

// Response (abbreviated)
{
  "job_id": "fd_abc123def456",
  "status": "COMPLETED",
  "input": { "lat": 38.63, "lon": -90.18, "label": "St. Louis" },
  "riverine": {
    "baseline": {
      "RP10":  { "jrc_depth_m": 8.147, "aq_historical_m": 1.128 },
      "RP100": { "jrc_depth_m": 10.148, "aq_historical_m": 1.978 }
    },
    "scenarios": {
      "ssp245_2030": {
        "RP100": {
          "aq_future_m": 2.21,
          "ratio": 1.117,
          "projected_depth_m": 11.34,
          "flag": "normal",
          "model_count": 5,
          "model_spread": 0.234
        }
      }
    }
  },
  "coastal": {
    "baseline": { "RP10": { "depth_m": 0.0 } },
    "scenarios": {
      "ssp245_2030": {
        "RP10": { "depth_m": null, "flag": "no_flood" }
      }
    }
  },
  "metadata": {
    "method_version": "flood_depth_v1.0",
    "processing_time_sec": 2.1,
    "band_count": 156,
    "datasets": {
      "jrc": "JRC/CEMS_GLOFAS/FloodHazard/v2_1",
      "aqueduct": "WRI/Aqueduct_Flood_Hazard_Maps/V2"
    }
  }
}

Batch Analysis

POST /api/v1/flood-depth/batch/analyze/

{
  "locations": [
    { "lat": 38.63, "lon": -90.18, "label": "St. Louis" },
    { "lat": 19.05, "lon": 72.85, "label": "Mumbai Bandra" },
    // ... up to 500 locations
  ],
  "coastal_projection": 95,
  "coastal_subsidence": "wtsub"
}

Batch Status & Results

GET /api/v1/flood-depth/batch/{batch_id}/
// Returns: status, progress (total/completed/failed/running), percent_complete

GET /api/v1/flood-depth/batch/{batch_id}/results/?page=1&page_size=100
// Returns: paginated array of per-location results (same structure as single)

From Depth to Dollars
Pair with Climate Value at Risk API
Feed return-period depths into FEMA HAZUS and JRC damage curves to get monetary loss estimates.

Explore CVaR API

Integration Use Cases

Risk Platforms

Embed scenario-adjusted flood depth into climate risk dashboards and portfolio management tools. Add hazard intensity data alongside existing screening scores.

Financial Compliance

Automate IFRS S2 and TCFD physical risk quantification at portfolio scale. Model count, model spread, and quality flags provide the transparency regulators require.

Insurance & Lending

Return-period depths are the standard inputs for Expected Annual Damage calculations. Pair with the Climate Value at Risk API for complete depth-to-dollar loss estimation.

Explore More APIs

Climate Risk API

12 physical hazards, SSP scenarios, projections to 2050. TCFD-aligned composite risk scoring via REST.

Climate Value at Risk API

HAZUS and JRC damage curves for monetary loss estimation. Batch 5,000 buildings. Feeds from Physical Risk Intensity depths.

Geocoding API

Convert addresses to coordinates with quality validation. Batch up to 5,000 addresses before running flood depth analysis.

Technical Specifications

Base URL https://tools.continuuiti.com/api/v1/flood-depth/
Authentication X-API-Key header
Format JSON request and response
Single Endpoint POST /analyze/ (synchronous, ~2s)
Results Endpoint GET /results/{job_id}/
Batch Endpoint POST /batch/analyze/ (async, max 500 locations)
Batch Status GET /batch/{batch_id}/
Batch Results GET /batch/{batch_id}/results/ (paginated, max 500/page)
Riverine Model JRC GloFAS v2.1 + WRI Aqueduct V2, 5-GCM median
Coastal Model WRI Aqueduct inuncoast, SLR percentile (5/50/95)
Return Periods RP10, RP50, RP100, RP500
Scenarios SSP2-4.5, SSP5-8.5 at 2030, 2050, 2080
Output Fields depth_m, ratio, projected_depth_m, model_count, model_spread, flag
Rate Limits Per-plan (see API documentation for details)


Frequently Asked Questions

What authentication does the API require?

The API uses X-API-Key header authentication. Include your API key on every request: X-API-Key: YOUR_API_KEY. API keys are issued to enterprise customers and integration partners. Contact support@continuuiti.com to request access.

How long does a single analysis take?

A single analysis processes synchronously in approximately 2 seconds. The service queries 156 bands from Google Earth Engine in a single reduceRegion call, covering all 4 return periods, 2 scenarios, 3 time horizons, and both riverine and coastal flood types.

What is the difference between riverine and coastal results?

Riverine results use the ratio method: JRC GloFAS baseline depth multiplied by the Aqueduct future/historical ratio from a 5-GCM ensemble. Coastal results use Aqueduct inuncoast directly, which models storm surge combined with sea level rise and land subsidence. They represent different physical flood mechanisms and are reported independently.

What do the quality flags mean?

Each data point carries one of 7 quality flags in priority order: no_data (outside model coverage), jrc_artifact (tiling error), no_flood (dry location), new_flood_zone (currently dry but floods under climate change), no_jrc_data (Aqueduct-only fallback), flood_disappears (flooding ceases under climate change), and normal (standard computation).

Can I customize coastal parameters?

Yes. Two coastal parameters are configurable: coastal_projection (SLR percentile: 5 for optimistic, 50 for median default, 95 for stress testing) and coastal_subsidence (“nosub” to exclude land subsidence, “wtsub” default to include it). These apply uniformly across all locations in a batch.

How does batch processing work?

Submit up to 500 locations via POST /batch/analyze/. The batch processes asynchronously and returns a batch_id. Poll GET /batch/{batch_id}/ for progress. Retrieve results via GET /batch/{batch_id}/results/ with pagination (page_size up to 500). Each location result has the same structure as a single analysis.

Ready to Integrate Physical Risk Intensity?

Add scenario-adjusted flood depth projections to your platform with a single API call.