Overview
The ClimateNest Enterprise API provides programmatic access to AI-powered climate risk assessments for any Australian residential address. Integrate climate intelligence directly into your property platforms, buyer portals, mortgage tools, and risk dashboards.
Base URL: https://api.climatenest.org/v1
All requests and responses use application/json. All monetary values are in AUD.
Authentication
Authenticate using your API key in the x-api-key request header. Generate keys from Dashboard → Enterprise tab after purchasing an Enterprise pack.
POST /v1/risk-assessment HTTP/1.1
Host: api.climatenest.org
Content-Type: application/json
x-api-key: cn_live_YOUR_API_KEYKeep your API key confidential. Do not expose it in client-side code or public repositories. Rotate compromised keys immediately from your dashboard.
Endpoints
/v1/risk-assessmentGenerates a full climate risk assessment for the provided address. Consumes 1 credit per successful request.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
address | string | Yes | Full Australian residential address (street, suburb, state, postcode). |
include_pdf | boolean | No | If true, a PDF download URL is included in the response. Default: false. |
white_label_id | string | No | White-label configuration ID. Enterprise only. Applies your custom branding to the PDF. |
Response
Returns a risk assessment object with scores for each climate risk category.
{
"address": "14 River Street, Lismore NSW 2480",
"overall_risk_score": 84,
"risk_level": "EXTREME",
"risks": {
"flood": {
"score": 97,
"level": "EXTREME",
"summary": "Property located in a high-frequency riverine flood zone. Flooded in 2017 and 2022."
},
"bushfire": {
"score": 12,
"level": "LOW",
"summary": "Low vegetation proximity. No significant bushfire history."
},
"heat_stress": {
"score": 61,
"level": "HIGH",
"summary": "Projected 38+ days above 35°C annually by 2050."
},
"coastal_erosion": {
"score": 5,
"level": "LOW",
"summary": "Inland location. Coastal erosion risk negligible."
},
"cyclone": {
"score": 8,
"level": "LOW",
"summary": "Outside primary cyclone track corridors."
}
},
"recommendations": [
"Consider flood insurance as a priority.",
"Review flood mitigation works on the property.",
"Check council flood overlays before purchasing."
],
"generated_at": "2025-03-06T08:00:00Z",
"credits_used": 1,
"credits_remaining": 24
}Rate Limits
Each API key is limited to 10 requests per minute. Requests exceeding this limit receive a 429 response with a Retry-After header indicating when to retry.
To increase throughput, generate multiple API keys from your Enterprise dashboard. Each key has its own rate limit bucket. Contact enterprise@climatenest.org for custom rate limit arrangements.
Credits
Each successful POST /v1/risk-assessment request consumes 1 credit from your account balance. Failed requests (4xx/5xx responses) are not charged.
| Pack | Credits | Price (AUD) | Validity |
|---|---|---|---|
| Enterprise 10-Pack | 10 | $349 | 12 months |
| Enterprise 25-Pack | 25 | $699 | 12 months |
| Enterprise 30-Pack | 30 | $799 | 12 months |
Check your credit balance at any time in your dashboard or inspect the credits_remaining field in each API response.
White-Label
Enterprise customers can apply custom branding to PDF reports. Upload your logo and configure brand colors from Dashboard → Enterprise → White-Label Settings. This generates a white_label_id you can pass in API requests.
{
"address": "42 Warrandyte Road Warrandyte VIC 3113",
"include_pdf": true,
"white_label_id": "wl_acme_realty_001"
}White-labeled PDFs replace all ClimateNest branding with your own logo and colors, suitable for delivering directly to your clients.
Code Examples
cURL
curl -X POST https://api.climatenest.org/v1/risk-assessment \
-H "Content-Type: application/json" \
-H "x-api-key: cn_live_YOUR_KEY" \
-d '{
"address": "14 River Street Lismore NSW 2480"
}'Python
import requests
response = requests.post(
"https://api.climatenest.org/v1/risk-assessment",
headers={
"x-api-key": "cn_live_YOUR_KEY",
"Content-Type": "application/json",
},
json={"address": "14 River Street Lismore NSW 2480"},
)
data = response.json()
print(data["overall_risk_score"]) # e.g. 84JavaScript / TypeScript
const response = await fetch(
"https://api.climatenest.org/v1/risk-assessment",
{
method: "POST",
headers: {
"x-api-key": "cn_live_YOUR_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
address: "14 River Street Lismore NSW 2480",
}),
}
);
const data = await response.json();
console.log(data.overall_risk_score); // e.g. 84Try these examples live in the API Playground.
Error Reference
All errors return a JSON body with error and message fields.
| Code | Status | Description |
|---|---|---|
| 400 | Bad Request | Missing or invalid address field. |
| 401 | Unauthorized | Missing or invalid API key. |
| 402 | Payment Required | Insufficient credits to complete the request. |
| 429 | Too Many Requests | Rate limit exceeded. Retry after the specified delay. |
| 500 | Internal Error | Unexpected server error. Contact support if it persists. |
{
"error": "unauthorized",
"message": "Missing or invalid API key. Pass your key in the x-api-key header."
}