55
/100
prowl
Benchmarked Apr 13, 2026

Finnhub

Real-Time RESTful APIs and Websocket for Stocks, Currencies, and Crypto

cryptoapi crypto_app
Benchmark Your API

Score Breakdown

Token Efficiency 7/10
Parseability 7/10
Error Clarity 6/10
Consistency 5/10
Documentation 5/10
Auth Simplicity 5/10
Latency 3/10
First-Try Success 3/10

Benchmark Analysis Log

Full LLM thinking from the 4-phase benchmark pipeline.

Analyze
```json
{
  "service_type": "crypto_app",
  "base_url": "https://finnhub.io/api/v1",
  "auth_method": "api_key_header",
  "auth_config": {
    "header_name": "X-Finnhub-Token",
    "param_name": "token"
  },
  "endpoints": [
    {
      "path": "/crypto/symbol",
      "method": "GET",
      "purpose": "list crypto trading pairs"
    },
    {
      "path": "/crypto/candle",
      "method": "GET",
      "purpose": "retrieve historical price data"
    }
  ],
  "pricing_model": {
    "type": "tiered",
    "details": {
      "free": {
        "limits": {
          "requests": 60
        }
      },
      "premium": {
        "limits": {
          "requests": 600
        }
      }
    }
  },
  "rate_limits": {
    "rpm": 60
  },
  "capabilities": ["spot_trading", "portfolio", "market_data"],
  "crypto_specifics": {
    "supported_chains": ["ethereum", "bitcoin", "solana"],
    "token_count": 200,
    "has_websocket": true,
    "has_orderbook": false,
    "fee_structure": "free|tiered",
    "security_features": ["api key"]
  }
}
```
Plan
```json
{
  "tests": [
    {
      "name": "test_connectivity_and_auth",
      "endpoint": "/crypto/symbol",
      "method": "GET",
      "headers": {"X-Finnhub-Token": "<API_KEY>"},
      "payload": {},
      "expected_status": 200,
      "expected_behavior": "Returns list of crypto trading pairs",
      "metrics": ["latency", "status_code"],
      "validation": {"field": "data", "type": "array", "min_length": 1}
    },
    {
      "name": "test_historical_data_retrieval",
      "endpoint": "/crypto/candle",
      "method": "GET",
      "headers": {"X-Finnhub-Token": "<API_KEY>"},
      "payload": {"symbol": "BINANCE:BTCUSDT", "resolution": "D", "from": 1609459200, "to": 1612137600},
      "expected_status": 200,
      "expected_behavior": "Returns historical price data",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {"field": "data", "type": "object", "min_length": 1}
    },
    {
      "name": "test_rate_limit_handling",
      "endpoint": "/crypto/symbol",
      "method": "GET",
      "headers": {"X-Finnhub-Token": "<API_KEY>"},
      "payload": {},
      "expected_status": 429,
      "expected_behavior": "Returns error on exceeding rate limit",
      "metrics": ["status_code"],
      "validation": {"field": "error", "type": "object", "min_length": 1}
    },
    {
      "name": "test_invalid_auth_token",
      "endpoint": "/crypto/symbol",
      "method": "GET",
      "headers": {"X-Finnhub-Token": "INVALID_API_KEY"},
      "payload": {},
      "expected_status": 401,
      "expected_behavior": "Returns authentication error",
      "metrics": ["status_code"],
      "validation": {"field": "error", "type": "object", "min_length": 1}
    },
    {
      "name": "test_error_handling_with_missing_params",
      "endpoint": "/crypto/candle",
      "method": "GET",
      "headers": {"X-Finnhub-Token": "<API_KEY>"},
      "payload": {"symbol": "BINANCE:BTCUSDT"},
      "expected_status": 400,
      "expected_behavior": "Returns error due to missing params",
      "metrics": ["status_code"],
      "validation": {"field": "error", "type": "object", "min_length": 1}
    }
  ],
  "pricing_probes": [],
  "stress_profile": {
    "concurrent_requests": 5,
    "duration_seconds": 10,
    "ramp_up": true
  }
}
```
Execute

0/5 tests passed

TestEndpointStatusLatency
test_connectivity_and_authGET /crypto/symbol40197ms
test_historical_data_retrievalGET /crypto/candle40147ms
test_rate_limit_handlingGET /crypto/symbol40115036ms
test_invalid_auth_tokenGET /crypto/symbol401174ms
test_error_handling_with_missing_paramsGET /crypto/candle40171ms
Interpret
```json
{
  "overall": 38,
  "dimensions": {
    "token_efficiency": 7.0,
    "first_try_success": 3.0,
    "response_parseability": 7.0,
    "error_clarity": 6.0,
    "doc_quality": 5.0,
    "auth_simplicity": 5.0,
    "latency": 3.0,
    "consistency": 5.0
  },
  "pricing_normalized": {
    "maker_fee_bps": null,
    "taker_fee_bps": null,
    "withdrawal_fee_usd": null,
    "free_tier_requests": null
  },
  "issues": [
    "High latency observed in one test (15036 ms)",
    "Consistent authentication errors across tests"
  ],
  "recommendations": [
    "Improve documentation on authentication to reduce errors",
    "Significantly reduce latency to improve market data freshness",
    "Ensure security headers are included in responses"
  ]
}
```

Agent Readiness

x402 Payments
Not supported
Streaming
No
Sandbox
None
Agent Auth
Unknown
SDKs
None listed
MCP Support
No

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/finnhub">
  <img src="https://prowl.world/badge/finnhub.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