0
/100
prowl
Benchmarked May 22, 2026

ClimateIQ Verified

AI-powered climate risk analytics API. Property-level flood/fire/storm risk, 30-year projections, and adaptation recommendations. Free tier: 1000 calls/month. REST API, API key auth.

weatherclimateanalytics api_benchmark Sandbox api_keyemail_signup
Benchmark Your API

Score Breakdown

Latency 0/10
Consistency 0/10
Documentation 0/10
Error Clarity 0/10
Auth Simplicity 0/10
Token Efficiency 0/10
First-Try Success 0/10
Parseability 0/10

Benchmark Analysis Log

Full LLM thinking from the 4-phase benchmark pipeline.

Analyze
Looking at the ClimateIQ service based on the vendor benchmark guide:

```json
{
  "service_type": "rest_api",
  "base_url": "https://climateiq.io/v1",
  "auth_method": "api_key_header",
  "auth_config": {"header": "X-API-Key", "prefix": null},
  "endpoints": [
    {
      "path": "/risk",
      "method": "GET",
      "purpose": "Climate risk score for a location",
      "params": {
        "lat": {"type": "number", "required": true},
        "lon": {"type": "number", "required": true}
      },
      "response_format": "json",
      "is_primary": true
    },
    {
      "path": "/projections", 
      "method": "GET",
      "purpose": "30-year climate projections",
      "params": {
        "lat": {"type": "number", "required": true},
        "lon": {"type": "number", "required": true}
      },
      "response_format": "json",
      "is_primary": false
    },
    {
      "path": "/batch",
      "method": "POST", 
      "purpose": "Batch risk for multiple locations",
      "params": {
        "locations": {"type": "array", "required": true}
      },
      "response_format": "json",
      "is_primary": false
    }
  ],
  "pricing_model": {
    "type": "unknown",
    "details": {},
    "free_tier": null,
    "paid_tiers": []
  },
  "rate_limits": {"rpm": 60, "tpm": null, "daily": null, "concurrent": null},
  "capabilities": ["climate_risk_assessment", "flood_zone_analysis", "fire_risk_evaluation", "storm_probability", "climate_projections", "batch_processing", "geospatial_analysis"],
  "agent_readiness": {
    "supports_x402": false,
    "supports_streaming": false,
    "has_sandbox": true,
    "sdks": [],
    "agent_auth_methods": ["api_key"]
  }
}
```
Plan
```json
{
  "tests": [
    {
      "name": "test_risk_endpoint_san_francisco",
      "endpoint": "/risk",
      "method": "GET",
      "headers": {},
      "payload": {},
      "params": {"lat": 37.7749, "lon": -122.4194},
      "expected_status": 200,
      "expected_behavior": "Returns climate risk assessment for San Francisco",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "risk_score",
        "type": "number",
        "min_value": 0,
        "max_value": 100
      }
    },
    {
      "name": "test_risk_endpoint_miami",
      "endpoint": "/risk",
      "method": "GET", 
      "headers": {},
      "payload": {},
      "params": {"lat": 25.7617, "lon": -80.1918},
      "expected_status": 200,
      "expected_behavior": "Returns climate risk assessment for Miami (high hurricane/flood risk area)",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "risk_score",
        "type": "number",
        "min_value": 0,
        "max_value": 100
      }
    },
    {
      "name": "test_projections_endpoint",
      "endpoint": "/projections",
      "method": "GET",
      "headers": {},
      "payload": {},
      "params": {"lat": 40.7128, "lon": -74.0060},
      "expected_status": 200,
      "expected_behavior": "Returns 30-year climate projections for New York",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "projections",
        "type": "array",
        "min_length": 1
      }
    },
    {
      "name": "test_batch_endpoint",
      "endpoint": "/batch",
      "method": "POST",
      "headers": {"Content-Type": "application/json"},
      "payload": {
        "locations": [
          {"lat": 37.7749, "lon": -122.4194},
          {"lat": 25.7617, "lon": -80.1918},
          {"lat": 40.7128, "lon": -74.0060}
        ]
      },
      "expected_status": 200,
      "expected_behavior": "Returns batch climate risk scores for multiple locations",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "results",
        "type": "array",
        "min_length": 3
      }
    },
    {
      "name": "test_invalid_coordinates",
      "endpoint": "/risk",
      "method": "GET",
      "headers": {},
      "payload": {},
      "params": {"lat": 999, "lon": 999},
      "expected_status": 400,
      "expected_behavior": "Returns error for invalid coordinates",
      "metrics": ["latency", "status_code"],
      "validation": {
        "field": "error",
        "type": "string"
      }
    },
    {
      "name": "test_missing_lat_parameter",
      "endpoint": "/risk",
      "method": "GET",
      "headers": {},
      "payload": {},
      "params": {"lon": -122.4194},
      "expected_status": 400,
      "expected_behavior": "Returns error when latitude parameter is missing",
      "metrics": ["latency", "status_code"],
      "validation": {
        "field": "error",
        "type": "string"
      }
    },
    {
      "name": "test_missing_lon_parameter",
      "endpoint": "/risk",
      "method": "GET",
      "headers": {},
      "payload": {},
      "params": {"lat": 37.7749},
      "expected_status": 400,
      "expected_behavior": "Returns error when longitude parameter is missing",
      "metrics": ["latency", "status_code"],
      "validation": {
        "field": "error",
        "type": "string"
      }
    },
    {
      "name": "test_unauthenticated_request",
      "endpoint": "/risk",
      "method": "GET",
      "headers": {},
      "payload": {},
      "params": {"lat": 37.7749, "lon": -122.4194},
      "expected_status": 401,
      "expected_behavior": "Returns unauthorized error without API key",
      "metrics": ["latency", "status_code"],
      "validation": {
        "field": "error",
        "type": "string"
      },
      "skip_auth": true
    }
  ],
  "pricing_probes": [
    {
      "name": "verify_request_usage",
      "description": "Check if API returns usage metrics or rate limit headers",
      "endpoint": "/risk",
      "method": "GET",
      "payload": {"lat": 37.7749, "lon": -122.4194},
      "check": "response.headers should contain rate limit or usage information"
    },
    {
      "name": "verify_batch_vs_individual_cost",
      "description": "Compare batch request cost vs individual requests",
      "endpoint": "/batch",
      "method": "POST", 
      "payload": {
        "locations": [
          {"lat": 37.7749, "lon": -122.4194},
          {"lat": 25.7617, "lon": -80.1918}
        ]
      },
      "check": "batch request should be more efficient than 2 individual requests"
    }
  ],
  "stress_profile": {
    "concurrent_requests": 3,
    "duration_seconds": 15,
    "ramp_up": true,
    "notes": "Respecting 60 RPM rate limit (1 req/sec), using 3 concurrent for brief periods"
  }
}
```
Execute

7/8 tests passed

TestEndpointStatusLatency
test_risk_endpoint_san_franciscoGET /risk200108ms
test_risk_endpoint_miamiGET /risk20034ms
test_projections_endpointGET /projections20034ms
test_batch_endpointPOST /batch40534ms
test_invalid_coordinatesGET /risk20034ms
test_missing_lat_parameterGET /risk20034ms
test_missing_lon_parameterGET /risk20034ms
test_unauthenticated_requestGET /risk20034ms
Interpret
{"multi_model": true, "models_used": ["openai", "claude_cli"], "model_scores": {"GPT-4o": {"overall": 0, "dimensions": {"token_efficiency": 0.0, "first_try_success": 0.0, "response_parseability": 0.0, "error_clarity": 0.0, "doc_quality": 0.0, "auth_simplicity": 0.0, "latency": 0.0, "consistency": 0.0}}, "Claude CLI": {"overall": 0, "dimensions": {"token_efficiency": 0.0, "first_try_success": 0.0, "response_parseability": 0.0, "error_clarity": 0.0, "doc_quality": 0.0, "auth_simplicity": 0.0, "latency": 0.0, "consistency": 0.0}}}, "averaged": true}

Agent Readiness

x402 Payments
Not supported
Streaming
No
Sandbox
Available
Agent Auth
api_key, email_signup
SDKs
None listed
MCP Support
No

Vendor Profile

ClimateIQ helps AI agents assess climate risk for any location worldwide. Get flood zones, fire risk, storm probability, and 30-year projections in a single API call. Structured JSON responses optimized for low-token agent consumption.

Features

Property-level risk scores (0-100)Flood zone classification (FEMA)Fire risk index30-year climate projectionsBatch location analysisStructured JSON output

Embed your Prowl badge

Show your live agent-readiness score on your own site. Free, no auth — it updates as your score changes.

Prowl agent-readiness badge
<a href="https://prowl.world/service/climateiq">
  <img src="https://prowl.world/badge/climateiq.svg" height="56" alt="Agent-readiness on Prowl">
</a>

Options: ?style=light|dark · ?size=sm|md · ?variant=certified (claimed + DNS-verified only) · badge generator with preview

Want the full interactive view?

See operational metrics, LLM evaluations, agent readiness, and more.

Open in Dashboard