30
/100
prowl
Benchmarked Apr 06, 2026

Gemini

Cryptocurrencies Exchange

crypto crypto_app
Benchmark Your API

Score Breakdown

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

Benchmark Analysis Log

Full LLM thinking from the 4-phase benchmark pipeline.

Analyze
```json
{
  "service_type": "crypto_app",
  "base_url": "https://api.exchange.com",
  "auth_method": "api_key_header",
  "auth_config": {},
  "endpoints": [
    {"path": "/v1/markets", "method": "GET", "purpose": "list trading pairs"},
    {"path": "/v1/ticker", "method": "GET", "purpose": "price data"}
  ],
  "pricing_model": {"type": "per_request", "details": {}},
  "rate_limits": {"rpm": 120},
  "capabilities": ["spot_trading", "futures", "staking", "bridge", "portfolio"],
  "crypto_specifics": {
    "supported_chains": ["ethereum", "bitcoin", "solana"],
    "token_count": 500,
    "has_websocket": true,
    "has_orderbook": true,
    "fee_structure": "maker/taker",
    "security_features": ["2fa", "withdrawal_whitelist", "cold_storage"]
  }
}
```
Plan
```json
{
  "tests": [
    {
      "name": "test_list_trading_pairs",
      "endpoint": "/v1/markets",
      "method": "GET",
      "headers": {
        "Authorization": "Bearer <api_key>"
      },
      "payload": {},
      "expected_status": 200,
      "expected_behavior": "Returns list of trading pairs",
      "metrics": ["latency", "status_code"],
      "validation": {"field": "data", "type": "array", "min_length": 1}
    },
    {
      "name": "test_price_data",
      "endpoint": "/v1/ticker",
      "method": "GET",
      "headers": {
        "Authorization": "Bearer <api_key>"
      },
      "payload": {},
      "expected_status": 200,
      "expected_behavior": "Returns price data for trading pairs",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {"field": "data", "type": "object"}
    },
    {
      "name": "test_invalid_authentication",
      "endpoint": "/v1/markets",
      "method": "GET",
      "headers": {
        "Authorization": "Bearer invalid_key"
      },
      "payload": {},
      "expected_status": 401,
      "expected_behavior": "Returns unauthorized error for invalid API key",
      "metrics": ["status_code"],
      "validation": {"field": "error", "type": "string"}
    },
    {
      "name": "test_missing_authentication",
      "endpoint": "/v1/markets",
      "method": "GET",
      "headers": {},
      "payload": {},
      "expected_status": 401,
      "expected_behavior": "Returns unauthorized error for missing API key",
      "metrics": ["status_code"],
      "validation": {"field": "error", "type": "string"}
    },
    {
      "name": "test_rate_limit_headers",
      "endpoint": "/v1/markets",
      "method": "GET",
      "headers": {
        "Authorization": "Bearer <api_key>"
      },
      "payload": {},
      "expected_status": 200,
      "expected_behavior": "Includes rate limit headers",
      "metrics": ["status_code"],
      "validation": {"field": "headers", "type": "object", "required_fields": ["X-RateLimit-Limit", "X-RateLimit-Remaining"]}
    },
    {
      "name": "test_invalid_trading_pair_error",
      "endpoint": "/v1/ticker",
      "method": "GET",
      "headers": {
        "Authorization": "Bearer <api_key>"
      },
      "payload": {
        "symbol": "INVALID_PAIR"
      },
      "expected_status": 400,
      "expected_behavior": "Returns error for invalid trading pair",
      "metrics": ["status_code"],
      "validation": {"field": "error", "type": "string"}
    }
  ],
  "pricing_probes": [
    {
      "name": "verify_request_pricing",
      "description": "Ensuring each request is logged as per pricing model",
      "endpoint": "/v1/ticker",
      "method": "GET",
      "headers": {
        "Authorization": "Bearer <api_key>"
      },
      "payload": {},
      "check": "response.headers['X-Request-Count'] should increment with each call"
    }
  ],
  "stress_profile": {
    "concurrent_requests": 5,
    "duration_seconds": 10,
    "ramp_up": true
  }
}
```
Execute

0/6 tests passed

TestEndpointStatusLatency
test_list_trading_pairsGET /v1/marketsNone12ms
test_price_dataGET /v1/tickerNone11ms
test_invalid_authenticationGET /v1/marketsNone10ms
test_missing_authenticationGET /v1/marketsNone10ms
test_rate_limit_headersGET /v1/marketsNone11ms
test_invalid_trading_pair_errorGET /v1/tickerNone16ms
Interpret
```json
{
  "overall": 20,
  "dimensions": {
    "token_efficiency": 5.0,
    "first_try_success": 0.0,
    "response_parseability": 0.0,
    "error_clarity": 2.0,
    "doc_quality": 4.0,
    "auth_simplicity": 10.0,
    "latency": 10.0,
    "consistency": 0.0
  },
  "pricing_normalized": {
    "maker_fee_bps": null,
    "taker_fee_bps": null,
    "withdrawal_fee_usd": null,
    "free_tier_requests": null
  },
  "issues": ["service_unreachable", "missing_security_headers"],
  "recommendations": ["Ensure domain and service are correctly configured and accessible.", "Provide detailed error messages for better diagnostics."]
}
```

Agent Readiness

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

Want the full interactive view?

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

Open in Dashboard