API Documentation
Programmatic access to Continuuiti's geospatial intelligence platform
API Access
Programmatic access to Continuuiti's geospatial intelligence APIs is available for enterprise customers and integration partners.
Contact us at support@continuuiti.com to request API credentials.
Available APIs
Geocoder API
Convert addresses to geographic coordinates with quality validation and batch processing.
LULC+ API
Land use and land cover analysis with satellite imagery and change detection.
Climate Risk API
Physical climate hazard assessment with 12 risk factors across multiple scenarios.
Damage Estimation API
Flood damage estimates using HAZUS and JRC depth-damage curves for single or batch buildings.
Flood Depth API
Scenario-adjusted flood depths using JRC GloFAS and WRI Aqueduct climate projections.
Authentication
All API requests require an API key passed in the request header:
Authorization: Bearer YOUR_API_KEY
API keys are issued to approved enterprise customers and partners. Contact support to request access.
Pricing
API calls consume credits from your account balance.
| API | Credits per Request |
|---|---|
| Geocoder | 1 credit per address |
| LULC+ | 1 credit per location |
| Climate Risk | 1 credit per location |
| Damage Estimation | 1 credit per building |
| Flood Depth | 1 credit per location |
Contact support for enterprise pricing and volume discounts.
Base URL
https://api.continuuiti.com/v1/
Geocoder API
Convert addresses to geographic coordinates
Overview
The Geocoder API converts text addresses to geographic coordinates (latitude/longitude). It includes built-in quality validation to reject garbage inputs, saving API quota and providing immediate feedback on data quality. Supports both single address geocoding and batch processing for up to 5,000 addresses.
Endpoints
/api/v1/geocode/
Geocode a single address to coordinates.
{
"address": "1600 Amphitheatre Parkway, Mountain View, CA"
}
{
"id": 1,
"original_address": "1600 Amphitheatre Parkway, Mountain View, CA",
"formatted_address": "Google Building 41, 1600, Amphitheatre Parkway...",
"latitude": "37.4224857",
"longitude": "-122.0855846",
"quality": {
"score": 0.72,
"status": "PASSED",
"issues": [],
"match_type": "building"
}
}
/api/v1/geocode/history/
List all previously geocoded addresses.
/api/v1/geocode/{id}/
Retrieve a specific geocoded address by ID.
/api/v1/geocode/batch/
Submit a batch of addresses for geocoding (max 5,000 addresses).
{
"addresses": [
{"address": "1600 Amphitheatre Parkway, Mountain View, CA", "label": "Google HQ"},
{"address": "1 Infinite Loop, Cupertino, CA", "label": "Apple HQ"}
]
}
{
"batch_id": "batch_geocode_a1b2c3d4",
"status": "COMPLETED",
"total_count": 2,
"completed": 2,
"failed": 0,
"rejected": 0
}
/api/v1/geocode/batch/{batch_id}/
Get batch status and progress.
/api/v1/geocode/batch/{batch_id}/results/
Get paginated geocoding results.
Quality Validation
Addresses are validated before geocoding to reject clearly unusable inputs.
Rejected addresses are marked with status: "REJECTED"
and don't consume geocoding quota.
Need help? Contact us at support@continuuiti.com
LULC+ API
Land use and land cover analysis
Overview
The LULC+ API provides annual satellite composites and land cover classification for any geographic location. Processing is asynchronous - you submit a job, then poll for results. Returns RGB satellite imagery, land cover classification maps, and statistical analysis of land cover changes over time.
Imagery
Sentinel-2 Surface Reflectance
Classification
Dynamic World Land Cover
Endpoints
/api/v1/lulc/analyze/
Submit a new LULC analysis job.
{
"lat": 28.6139,
"lon": 77.2090,
"size_m": 1000,
"start_year": 2020,
"end_year": 2025
}
| Parameter | Type | Description |
|---|---|---|
| lat | number | Latitude (-90 to 90) |
| lon | number | Longitude (-180 to 180) |
| size_m | integer | AOI size in meters (100-10000, default: 1000) |
| start_year | integer | Start year (min: 2016, default: 2020) |
| end_year | integer | End year (max: 2025, default: 2025) |
{
"job_id": "lulc_a1b2c3d4e5f6",
"status": "PENDING",
"message": "Job queued for processing"
}
/api/v1/lulc/jobs/{job_id}/
Get the status of an LULC analysis job.
{
"job_id": "lulc_a1b2c3d4e5f6",
"status": "RUNNING",
"progress": {
"years_completed": 3,
"years_total": 6
}
}
/api/v1/lulc/results/{job_id}/
Get the full results of a completed LULC analysis including satellite imagery URLs, land cover classification maps, and statistics.
/api/v1/lulc/batch/analyze/
Submit a batch of locations for LULC analysis (max 5,000 locations).
{
"locations": [
{"lat": 28.6139, "lon": 77.2090, "label": "Delhi"},
{"lat": 19.0760, "lon": 72.8777, "label": "Mumbai"}
],
"size_m": 1000,
"start_year": 2022,
"end_year": 2024
}
/api/v1/lulc/batch/{batch_id}/
Get batch status and progress.
/api/v1/lulc/batch/{batch_id}/results/
Get paginated LULC results.
Land Cover Classes
Need help? Contact us at support@continuuiti.com
Climate Risk API
Physical climate hazard assessment
Overview
The Climate Risk API provides forward-looking climate hazard assessments based on CMIP6 climate model data. It evaluates 12 distinct climate hazards across multiple SSP scenarios and time horizons (baseline, 2030, 2040, 2050). Processing is asynchronous - you submit a job, then poll for results.
Climate Data
NASA NEX-GDDP-CMIP6
Water Stress
WRI Aqueduct 4.0
Endpoints
/api/v1/climate-risk/analyze/
Submit a new climate risk assessment job.
{
"lat": 28.6139,
"lon": 77.2090,
"scenarios": ["ssp245", "ssp585"],
"horizons": ["baseline", "2030", "2050"]
}
| Parameter | Type | Description |
|---|---|---|
| lat | number | Latitude (-90 to 90) |
| lon | number | Longitude (-180 to 180) |
| scenarios | array | SSP scenarios: ssp245, ssp585 |
| horizons | array | Time horizons: baseline, 2030, 2040, 2050 |
{
"job_id": "climate_a1b2c3d4e5f6",
"status": "PENDING",
"message": "Climate risk assessment queued for processing"
}
/api/v1/climate-risk/status/{job_id}/
Get the status of a climate risk assessment job.
{
"job_id": "climate_a1b2c3d4e5f6",
"status": "RUNNING",
"progress": {
"hazards_completed": 7,
"hazards_total": 12,
"current_hazard": "severe_storm"
}
}
/api/v1/climate-risk/results/{job_id}/
Get the full results of a completed climate risk assessment including composite scores, hazard ratings, location context, and water stress indicators.
Hazard Types
Temperature
Heat wave, Cold stress, Temperature change
Precipitation
Drought, Extreme rainfall, Precipitation change
Compound
Severe storm, Wildfire, Landslide
Hydrological
River flood, Sea level rise, Water stress
Risk Levels
Climate Scenarios (SSPs)
- SSP2-4.5: Middle-of-road scenario with moderate mitigation efforts (~2.7C warming by 2100)
- SSP5-8.5: High emissions scenario with fossil fuel development (~4.4C warming by 2100)
Need help? Contact us at support@continuuiti.com
Damage Estimation API
HAZUS & JRC flood damage curves
Overview
The Damage Estimation API computes building-level flood damage estimates using two independent, peer-reviewed depth-damage function datasets. Processing is synchronous — results are returned immediately. Both single-building and batch (up to 5,000 buildings) endpoints are available.
US Curves
FEMA HAZUS 4.0
Global Curves
JRC Huizinga et al. 2017
Endpoints
/api/v1/damage/estimate/
Compute flood damage for a single building. Both HAZUS and JRC are computed independently.
{
"depth_ft": 5.0,
"occupancy": "RES1",
"stories_int": "2",
"basement": false,
"flood_zone": "riverine",
"replacement_value": 350000,
"country_iso": "USA",
"floor_area_m2": 150,
"label": "Single Family Home"
}
Common Parameters (required)
| Parameter | Type | Description |
|---|---|---|
| depth_ft | float | Flood depth above grade (0–30 ft) |
| occupancy | string | HAZUS occupancy code (33 types) |
| label | string | Optional building label |
HAZUS Parameters (all 4 required together, or omit all)
| Parameter | Type | Description |
|---|---|---|
| stories_int | string | Story group (varies by occupancy) |
| basement | boolean | Whether building has a basement |
| flood_zone | string | riverine, coastal_a, or coastal_v |
| replacement_value | float | Building replacement cost |
| content_value | float | Optional. Auto-computed if omitted |
| first_floor_height_ft | float | Optional. Auto-computed if omitted |
JRC Parameters (both required together, or omit both)
| Parameter | Type | Description |
|---|---|---|
| country_iso | string | ISO 3166-1 alpha-3 code (e.g., USA, DEU) |
| floor_area_m2 | float | Building floor area in m² |
{
"status": "COMPLETED",
"hazus": {
"damage_ratio": 0.20,
"contents_ratio": 0.28,
"structural_loss": 70000.00,
"contents_loss": 49000.00,
"total_loss": 119000.00,
"depth_in_structure_ft": 4.0,
"first_floor_height_ft": 1.0,
"clamped": false
},
"jrc": {
"damage_ratio": 0.6265,
"total_loss_eur": 77901.57,
"std_dev": 0.1503,
"sector": "residential",
"continent": "north_america",
"depth_m": 1.2192,
"fallback_used": false
}
}
Response Status Values
- COMPLETED — Both HAZUS and JRC returned results
- PARTIAL — One source succeeded, the other failed (failed source is null)
- FAILED — Both sources failed
/api/v1/damage/batch/estimate/
Estimate damage for up to 5,000 buildings in a single request.
{
"buildings": [
{
"depth_ft": 3.0, "occupancy": "RES1",
"stories_int": "1", "basement": false,
"flood_zone": "riverine", "replacement_value": 200000,
"country_iso": "USA", "floor_area_m2": 100,
"label": "Building A"
},
{
"depth_ft": 5.0, "occupancy": "COM4",
"stories_int": "<4", "basement": false,
"flood_zone": "riverine", "replacement_value": 500000,
"country_iso": "DEU", "floor_area_m2": 300,
"label": "Building B"
}
]
}
{
"total_count": 2,
"succeeded": 2,
"failed": 0,
"results": [
{
"index": 0,
"label": "Building A",
"status": "COMPLETED",
"result": { "hazus": { ... }, "jrc": { ... } }
},
{
"index": 1,
"label": "Building B",
"status": "COMPLETED",
"result": { "hazus": { ... }, "jrc": { ... } }
}
]
}
Limit: Maximum 5,000 buildings per request. Each building uses the same field schema as the single /estimate/ endpoint.
/api/v1/damage/occupancy-types/
List all 33 HAZUS occupancy types with category and description.
{
"occupancy_types": [
{"code": "RES1", "category": "Single Family", "description": "Single Family Dwelling"},
{"code": "COM4", "category": "Professional/Technical", "description": "Professional/Technical Services"}
],
"total_count": 33
}
/api/v1/damage/occupancy-types/{code}/
Get detail for one occupancy type, including valid story groups, basement options, and flood zones.
{
"code": "RES1",
"category": "Single Family",
"description": "Single Family Dwelling",
"stories_options": [
{"value": "1", "label": "1 Story"},
{"value": "2", "label": "2 Story"},
{"value": ">2", "label": "3+ Story"},
{"value": "99", "label": "Split Level"}
],
"basement_options": [true, false],
"flood_zones_available": ["coastal_a", "coastal_v", "riverine"]
}
/api/v1/damage/countries/
List JRC countries with available damage data. Optional ?search= query param for filtering.
{
"countries": [
{
"iso_a3": "USA",
"country_name": "United States",
"sectors_available": ["residential", "commercial", "industrial", "agriculture"]
},
{
"iso_a3": "DEU",
"country_name": "Germany",
"sectors_available": ["residential", "commercial", "industrial"]
}
],
"total_count": 196
}
/api/v1/damage/curves/hazus/
Get the raw HAZUS depth-damage curve (29 data points, −4 to +24 ft) for chart visualization.
| Parameter | Type | Description |
|---|---|---|
| occupancy | string | HAZUS occupancy code |
| stories_int | string | Story group (URL-encode < and >) |
| basement | string | true or false |
| flood_zone | string | riverine, coastal_a, or coastal_v |
{
"curve_id": "R12N",
"occupancy": "RES1",
"depth_points_ft": [-4, -3, -2, ..., 23, 24],
"building_damage_pct": [0, 0, 0, ..., 63, 63],
"content_damage_pct": [0, 0, 0, ..., 73, 73],
"building_source": "FIA",
"default_first_floor_height_ft": 1.0
}
/api/v1/damage/curves/jrc/
Get the raw JRC depth-damage curve (9 data points, 0–6 m) for chart visualization.
| Parameter | Type | Description |
|---|---|---|
| sector | string | residential, commercial, industrial, agriculture, transport, infrastructure |
| country_iso | string | ISO A3 code. Derives continent. Takes priority over continent param. |
| continent | string | Alternative to country_iso: europe, north_america, asia, etc. |
{
"sector": "residential",
"continent": "north_america",
"country_iso": "USA",
"fallback_used": false,
"depth_points_m": [0, 0.5, 1.0, 1.5, 2.0, 3.0, 4.0, 5.0, 6.0],
"damage_ratios": [0.20, 0.44, 0.58, 0.68, 0.78, 0.85, 0.92, 0.96, 1.0],
"std_dev": [0.17, 0.14, 0.14, 0.17, 0.14, 0.13, 0.10, 0.06, 0.0],
"max_damage": {
"structure_per_m2": 552.65,
"content_per_m2": 276.32,
"total_per_m2": 828.97,
"currency": "EUR_2010"
}
}
Occupancy Categories
Residential (12)
RES1–RES6: Single family, multi-family, mobile home, hotel, dormitory, nursing home
Commercial (10)
COM1–COM10: Retail, wholesale, office, bank, hospital, clinic, entertainment, parking
Industrial (6)
IND1–IND6: Heavy, light, food/drugs, metals, high-tech, construction
Other (5)
AGR1, REL1, GOV1–2, EDU1–2: Agriculture, religious, government, education
HAZUS vs JRC
- HAZUS: US-focused, 33 building types, separate structural + contents curves, 196 curves, monetary loss in input currency
- JRC: Global (214 countries), 6 sectors, combined damage ratio, monetary loss in EUR 2010
Both are returned independently in every response and are not directly comparable.
Need help? Contact us at support@continuuiti.com
Flood Depth API
Scenario-adjusted riverine & coastal flood depths
Overview
The Flood Depth API computes scenario-adjusted flood depths for any geographic coordinate using JRC GloFAS (riverine baseline at 90m resolution) and WRI Aqueduct (climate projections). It returns depths for 4 return periods (RP10, RP50, RP100, RP500) under two SSP scenarios (SSP2-4.5 and SSP5-8.5) at three future horizons (2030, 2050, 2080). Single analysis is synchronous (~2 seconds). Batch processing supports up to 5,000 locations asynchronously.
Riverine Baseline
JRC CEMS GloFAS v2.1
Climate Projections
WRI Aqueduct Flood Hazard Maps V2
Endpoints
/api/v1/flood-depth/analyze/
Submit a single flood depth analysis. Processes synchronously (~2 seconds).
{
"lat": 13.599,
"lon": 100.5998,
"label": "Samut Prakan / Bangkok",
"coastal_projection": 50,
"coastal_subsidence": "wtsub"
}
| Parameter | 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) |
| coastal_projection | integer | No | SLR percentile: 5, 50 (default), or 95 |
| coastal_subsidence | string | No | "nosub" (without) or "wtsub" (with subsidence, default) |
{
"job_id": "fd_abc123def456",
"status": "COMPLETED",
"message": "Flood depth analysis completed"
}
/api/v1/flood-depth/jobs/{job_id}/
Get the status of a flood depth analysis job.
{
"job_id": "fd_abc123def456",
"status": "COMPLETED",
"lat": "13.5990000",
"lon": "100.5998000",
"label": "Samut Prakan / Bangkok",
"created_at": "2026-03-07T06:44:06Z",
"completed_at": "2026-03-07T06:44:24Z",
"error": null
}
Status values: PENDING, QUEUED, RUNNING, COMPLETED, FAILED
/api/v1/flood-depth/results/{job_id}/
Get full results including riverine depths, coastal depths, and metadata.
{
"job_id": "fd_abc123def456",
"status": "COMPLETED",
"input": { "lat": 13.599, "lon": 100.5998, "label": "Bangkok" },
"riverine": {
"baseline": {
"RP10": { "jrc_depth_m": 0.854, "aq_historical_m": 0.039 },
"RP50": { "jrc_depth_m": 0.690, "aq_historical_m": 0.101 },
"RP100": { "jrc_depth_m": 0.710, "aq_historical_m": 0.154 },
"RP500": { "jrc_depth_m": 0.707, "aq_historical_m": 0.272 }
},
"scenarios": {
"ssp245_2030": {
"RP100": {
"aq_future_m": 0.209,
"ratio": 1.354,
"projected_depth_m": 0.962,
"flag": "normal",
"model_count": 5,
"model_spread": 0.227
}
}
}
},
"coastal": {
"baseline": {
"RP10": { "depth_m": 0.0 },
"RP100": { "depth_m": 0.322 }
},
"scenarios": {
"ssp245_2030": {
"RP100": {
"depth_m": 0.420,
"ratio": 1.304,
"change_pct": 30.4,
"flag": "normal"
}
}
}
},
"metadata": {
"method_version": "flood_depth_v1.0",
"processing_time_sec": 14.89,
"riverine_model_mode": "median_5gcm",
"coastal_projection": 50,
"coastal_subsidence": "wtsub",
"datasets": {
"jrc": "JRC/CEMS_GLOFAS/FloodHazard/v2_1",
"aqueduct": "WRI/Aqueduct_Flood_Hazard_Maps/V2"
}
}
}
Riverine scenario fields:
| Field | Description |
|---|---|
| projected_depth_m | JRC baseline x ratio (meters) |
| ratio | Aqueduct future / historical |
| aq_future_m | Median Aqueduct future depth (meters) |
| model_count | Number of GCMs with data (0-5) |
| model_spread | Max - min across models (meters) |
| flag | Data quality flag (see below) |
Coastal scenario fields:
| Field | Description |
|---|---|
| depth_m | Aqueduct coastal depth (meters) |
| ratio | Future / historical ratio |
| change_pct | Percentage change from baseline |
| flag | Data quality flag (see below) |
/api/v1/flood-depth/batch/analyze/
Submit a batch of locations for flood depth analysis. Processes asynchronously.
{
"locations": [
{ "lat": 13.599, "lon": 100.5998, "label": "Bangkok" },
{ "lat": 19.05, "lon": 72.85, "label": "Mumbai" },
{ "lat": 51.92, "lon": 4.48, "label": "Rotterdam" }
],
"coastal_projection": 50,
"coastal_subsidence": "wtsub"
}
{
"batch_id": "batch_fd_abc123def456",
"status": "PROCESSING",
"total_count": 3,
"status_url": "/api/v1/flood-depth/batch/batch_fd_abc123def456/",
"results_url": "/api/v1/flood-depth/batch/batch_fd_abc123def456/results/"
}
Maximum 5,000 locations per batch. Coastal parameters apply to all locations in the batch.
/api/v1/flood-depth/batch/{batch_id}/
Get batch progress and status.
{
"batch_id": "batch_fd_abc123def456",
"status": "PROCESSING",
"progress": {
"total": 3,
"completed": 1,
"failed": 0,
"running": 1,
"pending": 1,
"percent_complete": 33.3
},
"created_at": "2026-03-07T06:44:06Z",
"completed_at": null
}
Batch status values: PROCESSING, COMPLETED, PARTIAL, FAILED
/api/v1/flood-depth/batch/{batch_id}/results/
Get paginated batch results. Each result contains the full riverine + coastal + metadata structure.
| Parameter | Default | Description |
|---|---|---|
| page | 1 | Page number |
| page_size | 100 | Items per page (max 500) |
| status | — | Optional filter: COMPLETED, FAILED |
Quality Flags
Each data point includes a quality flag indicating the data status. Listed in priority order:
Return Periods
Climate Scenarios (SSPs)
- SSP2-4.5: Middle-of-road scenario with moderate mitigation efforts (~2.7C warming by 2100)
- SSP5-8.5: High emissions scenario with fossil fuel development (~4.4C warming by 2100)
Horizons: 2030, 2050, 2080 — projected using median of 5 CMIP5 GCMs
Coastal Parameters
Need help? Contact us at support@continuuiti.com