14
/100
prowl
Benchmarked May 22, 2026

OpenWeatherMap Verified

Global weather data API — current conditions, 5-day forecasts, historical data, and weather alerts. Free tier: 60 calls/min. REST API with JSON responses, API key auth.

weatherclimate api_benchmark api_key
Benchmark Your API

Score Breakdown

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

Benchmark Analysis Log

Full LLM thinking from the 4-phase benchmark pipeline.

Analyze
```json
{
  "service_type": "rest_api",
  "base_url": "https://api.openweathermap.org",
  "auth_method": "query_param",
  "auth_config": {
    "header": null,
    "prefix": null
  },
  "endpoints": [
    {
      "path": "/weather",
      "method": "GET",
      "purpose": "Get current weather data",
      "params": {
        "q": {
          "type": "string",
          "required": true
        },
        "appid": {
          "type": "string",
          "required": true
        }
      },
      "response_format": "json",
      "is_primary": true
    }
  ],
  "pricing_model": {
    "type": "free_tier",
    "details": {},
    "free_tier": {
      "requests": 60,
      "period": "minute"
    },
    "paid_tiers": []
  },
  "rate_limits": {
    "rpm": 60,
    "tpm": null,
    "daily": null,
    "concurrent": null
  },
  "capabilities": [
    "current_weather",
    "5-day_forecast",
    "historical_data",
    "weather_alerts"
  ],
  "agent_readiness": {
    "supports_x402": false,
    "supports_streaming": false,
    "has_sandbox": false,
    "sdks": [],
    "agent_auth_methods": ["api_key"]
  }
}
```
Plan
```json
{
  "tests": [
    {
      "name": "basic_connectivity_and_auth",
      "endpoint": "/weather",
      "method": "GET",
      "headers": {},
      "payload": {},
      "params": {
        "q": "London",
        "appid": "your_api_key"
      },
      "expected_status": 200,
      "expected_behavior": "Returns current weather data for London",
      "metrics": ["latency", "status_code"],
      "validation": {"field": "weather", "type": "array", "min_length": 1}
    },
    {
      "name": "current_weather_existing_city",
      "endpoint": "/weather",
      "method": "GET",
      "headers": {},
      "payload": {},
      "params": {
        "q": "New York",
        "appid": "your_api_key"
      },
      "expected_status": 200,
      "expected_behavior": "Returns current weather data for New York",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {"field": "weather", "type": "array", "min_length": 1}
    },
    {
      "name": "error_handling_missing_param",
      "endpoint": "/weather",
      "method": "GET",
      "headers": {},
      "payload": {},
      "params": {
        "appid": "your_api_key"
      },
      "expected_status": 400,
      "expected_behavior": "Returns error for missing location parameter",
      "metrics": ["latency", "status_code"],
      "validation": {"field": "message", "type": "string"}
    },
    {
      "name": "error_handling_invalid_api_key",
      "endpoint": "/weather",
      "method": "GET",
      "headers": {},
      "payload": {},
      "params": {
        "q": "Berlin",
        "appid": "invalid_api_key"
      },
      "expected_status": 401,
      "expected_behavior": "Returns error for invalid API key",
      "metrics": ["latency", "status_code"],
      "validation": {"field": "message", "type": "string"}
    },
    {
      "name": "rate_limit_check",
      "endpoint": "/weather",
      "method": "GET",
      "headers": {},
      "payload": {},
      "params": {
        "q": "Tokyo",
        "appid": "your_api_key"
      },
      "expected_status": 200,
      "expected_behavior": "Handles the maximum rate limit correctly",
      "metrics": ["latency", "status_code"]
    }
  ],
  "pricing_probes": [],
  "stress_profile": {
    "concurrent_requests": 5,
    "duration_seconds": 10,
    "ramp_up": true
  }
}
```
Execute

0/5 tests passed

TestEndpointStatusLatency
basic_connectivity_and_authGET /weather404130ms
current_weather_existing_cityGET /weather40441ms
error_handling_missing_paramGET /weather40441ms
error_handling_invalid_api_keyGET /weather40441ms
rate_limit_checkGET /weather40440ms
Interpret
{"multi_model": true, "models_used": ["openai", "claude_cli"], "model_scores": {"GPT-4o": {"overall": 0, "dimensions": {"token_efficiency": 2.0, "first_try_success": 2.0, "response_parseability": 2.0, "error_clarity": 2.0, "doc_quality": 5.0, "auth_simplicity": 8.0, "latency": 7.0, "consistency": 2.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
None
Agent Auth
api_key
SDKs
None listed
MCP Support
No

Want the full interactive view?

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

Open in Dashboard