Climate Dashboard API
Retrieve climate risk analysis data for projects and sites.
Project Climate Summary
Retrieves the Climate Analysis summary for a specific project.
HTTP request
GET https://api.darukaa.com/api/v1/projects/{project_id}/climate/summary
Path parameters
| Parameter |
Type |
Required |
Description |
| project_id |
string (UUID) |
Yes |
Unique project identifier to fetch climate analysis summary |
| Header |
Value |
Required |
| Authorization |
Bearer |
Yes |
Example request
Status codes
| Code |
Description |
| 200 |
Success - Climate summary retrieved successfully |
| 401 |
Unauthorized - Invalid or missing access token |
| 404 |
Not Found - Project with the specified ID does not exist |
Response body
Success (200)
{
"overall_risk_score": 6.5,
"overall_risk_category": "Medium",
"value_at_risk": 2500000.0,
"chronic_risks": {
"risk_scenarios": [
{
"scenario": "RCP4.5-2030",
"years": {
"2030": {
"sectors": {
"agriculture": {
"heat": {
"days>20C": 120,
"days>25C": 85,
"days>30C": 45,
"days>35C": 15,
"absolute_loss_days": 12.5,
"additional_loss_days": 3.2,
"asset_damage_var_percent": 5.5,
"productivity_var_percent": -8.2,
"risk_category": "Medium",
"risk_increase_percent": 15.3
},
"drought": {
"days>1.0SPEI": 45,
"days>1.5SPEI": 25,
"days>2.0SPEI": 10,
"absolute_loss_days": 8.5,
"additional_loss_days": 2.1,
"asset_damage_var_percent": 3.2,
"productivity_var_percent": -5.8,
"risk_category": "Low",
"risk_increase_percent": 8.5
},
"pluvial_flood_rain": {
"max_1day_ppt_mm": 125.5,
"pluvial_flood_depth_m": 0.35,
"absolute_loss_days": 5.2,
"additional_loss_days": 1.5,
"asset_damage_var_percent": 2.8,
"productivity_var_percent": -4.2,
"risk_category": "Low",
"risk_increase_percent": 6.2
}
}
}
}
}
}
]
},
"acute_risks": {},
"calculated_at": "2025-12-04T13:30:00Z",
"project_id": "3fa8-xxxx-xxxx-xxxx-afa6"
}
Failure (401)
{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or missing access token",
"details": "Please provide a valid Bearer token in the Authorization header",
"request_id": "req_abc123",
"timestamp": "2025-12-04T13:30:00Z"
}
}
Failure (404)
{
"error": {
"code": "PROJECT_NOT_FOUND",
"message": "Project not found",
"details": "No project exists with the ID: 3fa8-xxxx-xxxx-xxxx-afa6",
"request_id": "req_abc123",
"timestamp": "2025-12-04T13:30:00Z"
}
}
| Field |
Type |
Description |
| overall_risk_score |
number |
Aggregate numeric risk score for the project (higher = greater risk) |
| overall_risk_category |
string |
Human-readable category (e.g., Low, Medium, High) |
| value_at_risk |
number |
Monetary or other quantified value exposed to climate hazards |
| chronic_risks |
object |
Object containing chronic (long-term) risk scenario results |
| chronic_risks.risk_scenarios |
array[object] |
Array of scenario objects (one per scenario / RCP / timeframe, etc.) |
| chronic_risks.risk_scenarios[].scenario |
string |
Scenario name/identifier (e.g., RCP4.5-2030) |
| chronic_risks.risk_scenarios[].years |
object |
Map keyed by year or time-bucket → sector risk summary |
| chronic_risks.risk_scenarios[].years..sectors |
object |
Map keyed by sector name → hazard breakdown object |
| chronic_risks...sectors..heat |
object |
Heat hazard metrics for that sector & year |
| heat.days>20C |
integer |
Number of days in period exceeding 20°C |
| heat.days>25C |
integer |
Number of days >25°C |
| heat.days>30C |
integer |
Number of days >30°C |
| heat.days>35C |
integer |
Number of days >35°C |
| heat.absolute_loss_days |
number |
Estimated absolute loss days due to heat (units: days) |
| heat.additional_loss_days |
number |
Additional loss days attributable to scenario change |
| heat.asset_damage_var_percent |
number |
Percent variance in asset damage vs baseline |
| heat.productivity_var_percent |
number |
Percent productivity variance (loss) vs baseline |
| heat.risk_category |
string |
Risk category for heat (Low/Medium/High) |
| heat.risk_increase_percent |
number |
Percent increase in heat risk vs baseline |
| chronic_risks...sectors..drought |
object |
Drought hazard metrics (same pattern as heat but with SPEI thresholds) |
| drought.days>1.0SPEI |
integer |
Number of days below SPEI -1.0 (moderate drought threshold) |
| drought.days>1.5SPEI |
integer |
Number of days below SPEI -1.5 (severe) |
| drought.days>2.0SPEI |
integer |
Number of days below SPEI -2.0 (extreme) |
| drought.absolute_loss_days |
number |
Absolute loss days due to drought |
| drought.additional_loss_days |
number |
Additional loss days attributable to scenario change |
| drought.asset_damage_var_percent |
number |
Percent variance in asset damage from drought |
| drought.productivity_var_percent |
number |
Percent productivity variance due to drought |
| drought.risk_category |
string |
Risk category for drought |
| drought.risk_increase_percent |
number |
Percent increase in drought risk vs baseline |
| chronic_risks...sectors..pluvial_flood_rain |
object |
Pluvial flood metrics for intense rainfall & depth |
| pluvial_flood_rain.max_1day_ppt_mm |
number |
Maximum 1-day precipitation (mm) |
| pluvial_flood_rain.pluvial_flood_depth_m |
number |
Estimated flood depth (meters) |
| pluvial_flood_rain.absolute_loss_days |
number |
Absolute loss days due to pluvial flood |
| pluvial_flood_rain.additional_loss_days |
number |
Additional loss days attributable to scenario change |
| pluvial_flood_rain.asset_damage_var_percent |
number |
Percent asset damage variance from pluvial flooding |
| pluvial_flood_rain.productivity_var_percent |
number |
Percent productivity variance from pluvial flooding |
| pluvial_flood_rain.risk_category |
string |
Risk category for pluvial flooding |
| pluvial_flood_rain.risk_increase_percent |
number |
Percent increase in pluvial flood risk vs baseline |
| acute_risks |
object |
Object containing acute (short-term) risk scenario results |
| calculated_at |
datetime |
Timestamp when the climate summary was calculated |
| project_id |
UUID string |
Echo of the project identifier for which the summary applies |
Site Climate Analysis
Retrieves Climate Analysis details for a specific site.
HTTP request
GET https://api.darukaa.com/api/v1/sites/{site_id}/climate
Path parameters
| Parameter |
Type |
Required |
Description |
| site_id |
string (UUID) |
Yes |
Unique site identifier to retrieve climate analysis |
| Header |
Value |
Required |
| Authorization |
Bearer |
Yes |
Example request
Status codes
| Code |
Description |
| 200 |
Success - Site climate analysis retrieved successfully |
| 401 |
Unauthorized - Invalid or missing access token |
| 404 |
Not Found - Site with the specified ID does not exist |
Response body
Success (200)
{
"overall_risk_score": 6.5,
"overall_risk_category": "Medium",
"value_at_risk": 2500000.0,
"chronic_risks": {
"risk_scenarios": [
{
"scenario": "RCP4.5-2030",
"years": {
"2030": {
"sectors": {
"agriculture": {
"heat": {
"days>20C": 120,
"days>25C": 85,
"days>30C": 45,
"days>35C": 15,
"absolute_loss_days": 12.5,
"additional_loss_days": 3.2,
"asset_damage_var_percent": 5.5,
"productivity_var_percent": -8.2,
"risk_category": "Medium",
"risk_increase_percent": 15.3
},
"drought": {
"days>1.0SPEI": 45,
"days>1.5SPEI": 25,
"days>2.0SPEI": 10,
"absolute_loss_days": 8.5,
"additional_loss_days": 2.1,
"asset_damage_var_percent": 3.2,
"productivity_var_percent": -5.8,
"risk_category": "Low",
"risk_increase_percent": 8.5
},
"pluvial_flood_rain": {
"max_1day_ppt_mm": 125.5,
"pluvial_flood_depth_m": 0.35,
"absolute_loss_days": 5.2,
"additional_loss_days": 1.5,
"asset_damage_var_percent": 2.8,
"productivity_var_percent": -4.2,
"risk_category": "Low",
"risk_increase_percent": 6.2
}
}
}
}
}
}
]
},
"acute_risks": {},
"calculated_at": "2025-12-04T13:30:00Z",
"site_id": "aac7-xxxx-xxxx-xxxx-0b9",
"project_id": "3fa-xxxx-xxxx-xxxx-afa6"
}
Failure (401)
{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or missing access token",
"details": "Please provide a valid Bearer token in the Authorization header",
"request_id": "req_abc123",
"timestamp": "2025-12-04T13:30:00Z"
}
}
Failure (404)
{
"error": {
"code": "SITE_NOT_FOUND",
"message": "Site not found",
"details": "No site exists with the ID: aac71ba6-bd8d-4xx-b4xx-8edxxxx0b9",
"request_id": "req_abc123",
"timestamp": "2025-12-04T13:30:00Z"
}
}
| Field |
Type |
Description |
| overall_risk_score |
number |
Aggregate numeric risk score for the site (higher = greater risk) |
| overall_risk_category |
string |
Human-readable category (e.g., Low, Medium, High) |
| value_at_risk |
number |
Monetary or other quantified value exposed to climate hazards |
| chronic_risks |
object |
Object containing chronic (long-term) risk scenario results |
| chronic_risks.risk_scenarios |
array[object] |
Array of scenario objects (one per scenario / RCP / timeframe, etc.) |
| chronic_risks.risk_scenarios[].scenario |
string |
Scenario name/identifier (e.g., RCP4.5-2030) |
| chronic_risks.risk_scenarios[].years |
object |
Map keyed by year or time-bucket → sector risk summary |
| chronic_risks.risk_scenarios[].years..sectors |
object |
Map keyed by sector name → hazard breakdown object |
| chronic_risks...sectors..heat |
object |
Heat hazard metrics for that sector & year |
| heat.days>20C |
integer |
Number of days in period exceeding 20°C |
| heat.days>25C |
integer |
Number of days >25°C |
| heat.days>30C |
integer |
Number of days >30°C |
| heat.days>35C |
integer |
Number of days >35°C |
| heat.absolute_loss_days |
number |
Estimated absolute loss days due to heat (units: days) |
| heat.additional_loss_days |
number |
Additional loss days attributable to scenario change |
| heat.asset_damage_var_percent |
number |
Percent variance in asset damage vs baseline |
| heat.productivity_var_percent |
number |
Percent productivity variance (loss) vs baseline |
| heat.risk_category |
string |
Risk category for heat (Low/Medium/High) |
| heat.risk_increase_percent |
number |
Percent increase in heat risk vs baseline |
| chronic_risks...sectors..drought |
object |
Drought hazard metrics (same pattern as heat but with SPEI thresholds) |
| drought.days>1.0SPEI |
integer |
Number of days below SPEI -1.0 (moderate drought threshold) |
| drought.days>1.5SPEI |
integer |
Number of days below SPEI -1.5 (severe) |
| drought.days>2.0SPEI |
integer |
Number of days below SPEI -2.0 (extreme) |
| drought.absolute_loss_days |
number |
Absolute loss days due to drought |
| drought.additional_loss_days |
number |
Additional loss days attributable to scenario change |
| drought.asset_damage_var_percent |
number |
Percent variance in asset damage from drought |
| drought.productivity_var_percent |
number |
Percent productivity variance due to drought |
| drought.risk_category |
string |
Risk category for drought |
| drought.risk_increase_percent |
number |
Percent increase in drought risk vs baseline |
| chronic_risks...sectors..pluvial_flood_rain |
object |
Pluvial flood metrics for intense rainfall & depth |
| pluvial_flood_rain.max_1day_ppt_mm |
number |
Maximum 1-day precipitation (mm) |
| pluvial_flood_rain.pluvial_flood_depth_m |
number |
Estimated flood depth (meters) |
| pluvial_flood_rain.absolute_loss_days |
number |
Absolute loss days due to pluvial flood |
| pluvial_flood_rain.additional_loss_days |
number |
Additional loss days attributable to scenario change |
| pluvial_flood_rain.asset_damage_var_percent |
number |
Percent asset damage variance from pluvial flooding |
| pluvial_flood_rain.productivity_var_percent |
number |
Percent productivity variance from pluvial flooding |
| pluvial_flood_rain.risk_category |
string |
Risk category for pluvial flooding |
| pluvial_flood_rain.risk_increase_percent |
number |
Percent increase in pluvial flood risk vs baseline |
| acute_risks |
object |
Object containing acute (short-term) risk scenario results |
| calculated_at |
datetime |
Timestamp when the climate analysis was calculated |
| site_id |
UUID string |
Unique identifier of the site |
| project_id |
UUID string |
Associated project identifier |
All Sites Climate Analysis
Retrieves Climate Analysis details for all sites within a project.
HTTP request
GET https://api.darukaa.com/api/v1/projects/{project_id}/climate/sites
Path parameters
| Parameter |
Type |
Required |
Description |
| project_id |
string (UUID) |
Yes |
Unique project identifier to fetch climate analysis summary |
| Header |
Value |
Required |
| Authorization |
Bearer |
Yes |
Example request
Status codes
| Code |
Description |
| 200 |
Success - All sites climate analysis retrieved successfully |
| 401 |
Unauthorized - Invalid or missing access token |
| 404 |
Not Found - Project with the specified ID does not exist |
Response body
Success (200)
[
{
"overall_risk_score": 6.5,
"overall_risk_category": "Medium",
"value_at_risk": 2500000.0,
"chronic_risks": {
"risk_scenarios": [
{
"scenario": "RCP4.5-2030",
"years": {
"2030": {
"sectors": {
"agriculture": {
"heat": {
"days>20C": 120,
"days>25C": 85,
"days>30C": 45,
"days>35C": 15,
"absolute_loss_days": 12.5,
"additional_loss_days": 3.2,
"asset_damage_var_percent": 5.5,
"productivity_var_percent": -8.2,
"risk_category": "Medium",
"risk_increase_percent": 15.3
},
"drought": {
"days>1.0SPEI": 45,
"days>1.5SPEI": 25,
"days>2.0SPEI": 10,
"absolute_loss_days": 8.5,
"additional_loss_days": 2.1,
"asset_damage_var_percent": 3.2,
"productivity_var_percent": -5.8,
"risk_category": "Low",
"risk_increase_percent": 8.5
},
"pluvial_flood_rain": {
"max_1day_ppt_mm": 125.5,
"pluvial_flood_depth_m": 0.35,
"absolute_loss_days": 5.2,
"additional_loss_days": 1.5,
"asset_damage_var_percent": 2.8,
"productivity_var_percent": -4.2,
"risk_category": "Low",
"risk_increase_percent": 6.2
}
}
}
}
}
}
]
},
"acute_risks": {},
"calculated_at": "2025-12-04T13:30:00Z",
"site_id": "aac71ba6-bd8d-4xx-b4xx-8edxxxx0b9",
"project_id": "3fa-xxxx-xxxx-xxxx-a6"
}
]
Failure (401)
{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or missing access token",
"details": "Please provide a valid Bearer token in the Authorization header",
"request_id": "req_abc123",
"timestamp": "2025-12-04T13:30:00Z"
}
}
Failure (404)
{
"error": {
"code": "PROJECT_NOT_FOUND",
"message": "Project not found",
"details": "No project exists with the ID: 3fa85f64-5717-4562-b3fc-2c963f66afa6",
"request_id": "req_abc123",
"timestamp": "2025-12-04T13:30:00Z"
}
}
| Field |
Type |
Description |
| overall_risk_score |
number |
Aggregate numeric risk score for the site (higher = greater risk) |
| overall_risk_category |
string |
Human-readable category (e.g., Low, Medium, High) |
| value_at_risk |
number |
Monetary or other quantified value exposed to climate hazards |
| chronic_risks |
object |
Object containing chronic (long-term) risk scenario results |
| chronic_risks.risk_scenarios |
array[object] |
Array of scenario objects (one per scenario / RCP / timeframe, etc.) |
| chronic_risks.risk_scenarios[].scenario |
string |
Scenario name/identifier (e.g., RCP4.5-2030) |
| chronic_risks.risk_scenarios[].years |
object |
Map keyed by year or time-bucket → sector risk summary |
| chronic_risks.risk_scenarios[].years..sectors |
object |
Map keyed by sector name → hazard breakdown object |
| chronic_risks...sectors..heat |
object |
Heat hazard metrics for that sector & year |
| heat.days>20C |
integer |
Number of days in period exceeding 20°C |
| heat.days>25C |
integer |
Number of days >25°C |
| heat.days>30C |
integer |
Number of days >30°C |
| heat.days>35C |
integer |
Number of days >35°C |
| heat.absolute_loss_days |
number |
Estimated absolute loss days due to heat (units: days) |
| heat.additional_loss_days |
number |
Additional loss days attributable to scenario change |
| heat.asset_damage_var_percent |
number |
Percent variance in asset damage vs baseline |
| heat.productivity_var_percent |
number |
Percent productivity variance (loss) vs baseline |
| heat.risk_category |
string |
Risk category for heat (Low/Medium/High) |
| heat.risk_increase_percent |
number |
Percent increase in heat risk vs baseline |
| chronic_risks...sectors..drought |
object |
Drought hazard metrics (same pattern as heat but with SPEI thresholds) |
| drought.days>1.0SPEI |
integer |
Number of days below SPEI -1.0 (moderate drought threshold) |
| drought.days>1.5SPEI |
integer |
Number of days below SPEI -1.5 (severe) |
| drought.days>2.0SPEI |
integer |
Number of days below SPEI -2.0 (extreme) |
| drought.absolute_loss_days |
number |
Absolute loss days due to drought |
| drought.additional_loss_days |
number |
Additional loss days attributable to scenario change |
| drought.asset_damage_var_percent |
number |
Percent variance in asset damage from drought |
| drought.productivity_var_percent |
number |
Percent productivity variance due to drought |
| drought.risk_category |
string |
Risk category for drought |
| drought.risk_increase_percent |
number |
Percent increase in drought risk vs baseline |
| chronic_risks...sectors..pluvial_flood_rain |
object |
Pluvial flood metrics for intense rainfall & depth |
| pluvial_flood_rain.max_1day_ppt_mm |
number |
Maximum 1-day precipitation (mm) |
| pluvial_flood_rain.pluvial_flood_depth_m |
number |
Estimated flood depth (meters) |
| pluvial_flood_rain.absolute_loss_days |
number |
Absolute loss days due to pluvial flood |
| pluvial_flood_rain.additional_loss_days |
number |
Additional loss days attributable to scenario change |
| pluvial_flood_rain.asset_damage_var_percent |
number |
Percent asset damage variance from pluvial flooding |
| pluvial_flood_rain.productivity_var_percent |
number |
Percent productivity variance from pluvial flooding |
| pluvial_flood_rain.risk_category |
string |
Risk category for pluvial flooding |
| pluvial_flood_rain.risk_increase_percent |
number |
Percent increase in pluvial flood risk vs baseline |
| acute_risks |
object |
Object containing acute (short-term) risk scenario results |
| calculated_at |
datetime |
Timestamp when the climate analysis was calculated |
| site_id |
UUID string |
Unique identifier of the site |
| project_id |
UUID string |
Associated project identifier |