ClimateNestClimateNest/Docs/API Reference

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.

http
POST /v1/risk-assessment HTTP/1.1
Host: api.climatenest.org
Content-Type: application/json
x-api-key: cn_live_YOUR_API_KEY

Keep your API key confidential. Do not expose it in client-side code or public repositories. Rotate compromised keys immediately from your dashboard.

Endpoints

POST/v1/risk-assessment

Generates a full climate risk assessment for the provided address. Consumes 1 credit per successful request.

Request Parameters

ParameterTypeRequiredDescription
addressstringYesFull Australian residential address (street, suburb, state, postcode).
include_pdfbooleanNoIf true, a PDF download URL is included in the response. Default: false.
white_label_idstringNoWhite-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.

json
{
  "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.

PackCreditsPrice (AUD)Validity
Enterprise 10-Pack10$34912 months
Enterprise 25-Pack25$69912 months
Enterprise 30-Pack30$79912 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.

json
{
  "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

bash
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

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. 84

JavaScript / TypeScript

javascript
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. 84

Try these examples live in the API Playground.

Error Reference

All errors return a JSON body with error and message fields.

CodeStatusDescription
400Bad RequestMissing or invalid address field.
401UnauthorizedMissing or invalid API key.
402Payment RequiredInsufficient credits to complete the request.
429Too Many RequestsRate limit exceeded. Retry after the specified delay.
500Internal ErrorUnexpected server error. Contact support if it persists.
json
{
  "error": "unauthorized",
  "message": "Missing or invalid API key. Pass your key in the x-api-key header."
}