58
/100
prowl
Benchmarked Apr 06, 2026

CryptoCompare

Cryptocurrencies Comparison

crypto crypto_app
Benchmark Your API

Score Breakdown

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

Benchmark Analysis Log

Full LLM thinking from the 4-phase benchmark pipeline.

Analyze
Looking at the CryptoCompare service, this appears to be a cryptocurrency data API provider rather than a traditional crypto app like an exchange or wallet. Based on the configuration and meta information, I can analyze their API structure:

```json
{
  "service_type": "crypto_app",
  "base_url": "https://min-api.cryptocompare.com",
  "auth_method": "api_key_header",
  "auth_config": {
    "header_name": "authorization",
    "param_name": "api_key"
  },
  "endpoints": [
    {"path": "/data/price", "method": "GET", "purpose": "current cryptocurrency prices"},
    {"path": "/data/pricehistorical", "method": "GET", "purpose": "historical price data"},
    {"path": "/data/pricemulti", "method": "GET", "purpose": "multiple currency prices"},
    {"path": "/data/histoday", "method": "GET", "purpose": "daily historical data"},
    {"path": "/data/histohour", "method": "GET", "purpose": "hourly historical data"},
    {"path": "/data/histominute", "method": "GET", "purpose": "minute historical data"},
    {"path": "/data/top/exchanges", "method": "GET", "purpose": "top exchanges by volume"},
    {"path": "/data/news", "method": "GET", "purpose": "cryptocurrency news"},
    {"path": "/data/social/coin/histo", "method": "GET", "purpose": "social sentiment data"}
  ],
  "pricing_model": {
    "type": "tiered",
    "details": {
      "free_tier": "limited requests per month",
      "paid_tiers": "increased rate limits and historical data"
    }
  },
  "rate_limits": {
    "rpm": 100
  },
  "capabilities": ["price_data", "historical_data", "news_aggregation", "social_sentiment", "exchange_data"],
  "crypto_specifics": {
    "supported_chains": ["bitcoin", "ethereum", "litecoin", "cardano", "polkadot"],
    "token_count": 4000,
    "has_websocket": true,
    "has_orderbook": false,
    "fee_structure": "subscription_based",
    "security_features": ["api_key_auth", "rate_limiting", "https_only"],
    "data_types": ["spot_prices", "historical_ohlcv", "volume_data", "market_cap", "social_metrics", "news_feeds"],
    "update_frequency": "real_time",
    "supported_exchanges": 200
  }
}
```
Plan
```json
{
  "tests": [
    {
      "name": "test_btc_usd_price",
      "endpoint": "/data/price",
      "method": "GET",
      "headers": {
        "authorization": "{{api_key}}"
      },
      "payload": {
        "fsym": "BTC",
        "tsyms": "USD"
      },
      "expected_status": 200,
      "expected_behavior": "Returns current BTC price in USD",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "USD",
        "type": "number",
        "min_value": 1000
      }
    },
    {
      "name": "test_multi_currency_prices",
      "endpoint": "/data/pricemulti",
      "method": "GET",
      "headers": {
        "authorization": "{{api_key}}"
      },
      "payload": {
        "fsyms": "BTC,ETH",
        "tsyms": "USD,EUR"
      },
      "expected_status": 200,
      "expected_behavior": "Returns multiple cryptocurrency prices in multiple fiat currencies",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "BTC.USD",
        "type": "number",
        "min_value": 1000
      }
    },
    {
      "name": "test_historical_daily_data",
      "endpoint": "/data/histoday",
      "method": "GET",
      "headers": {
        "authorization": "{{api_key}}"
      },
      "payload": {
        "fsym": "BTC",
        "tsym": "USD",
        "limit": "30"
      },
      "expected_status": 200,
      "expected_behavior": "Returns 30 days of daily OHLCV data for BTC/USD",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "Data",
        "type": "array",
        "min_length": 30
      }
    },
    {
      "name": "test_top_exchanges",
      "endpoint": "/data/top/exchanges",
      "method": "GET",
      "headers": {
        "authorization": "{{api_key}}"
      },
      "payload": {
        "fsym": "BTC",
        "tsym": "USD",
        "limit": "10"
      },
      "expected_status": 200,
      "expected_behavior": "Returns top 10 exchanges by BTC/USD volume",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "Data",
        "type": "array",
        "min_length": 5
      }
    },
    {
      "name": "test_crypto_news",
      "endpoint": "/data/news",
      "method": "GET",
      "headers": {
        "authorization": "{{api_key}}"
      },
      "payload": {
        "lang": "EN"
      },
      "expected_status": 200,
      "expected_behavior": "Returns recent cryptocurrency news articles",
      "metrics": ["latency", "accuracy", "status_code"],
      "validation": {
        "field": "Data",
        "type": "array",
        "min_length": 1
      }
    },
    {
      "name": "test_invalid_symbol_error",
      "endpoint": "/data/price",
      "method": "GET",
      "headers": {
        "authorization": "{{api_key}}"
      },
      "payload": {
        "fsym": "INVALID_COIN",
        "tsyms": "USD"
      },
      "expected_status": 200,
      "expected_behavior": "Returns error for invalid cryptocurrency symbol",
      "metrics": ["error_handling", "status_code"],
      "validation": {
        "field": "Response",
        "type": "string",
        "contains": "error"
      }
    },
    {
      "name": "test_no_auth_error",
      "endpoint": "/data/price",
      "method": "GET",
      "headers": {},
      "payload": {
        "fsym": "BTC",
        "tsyms": "USD"
      },
      "expected_status": 401,
      "expected_behavior": "Returns 401 when no API key provided",
      "metrics": ["error_handling", "status_code"],
      "validation": {
        "field": "Message",
        "type": "string",
        "contains": "auth"
      }
    }
  ],
  "pricing_probes": [
    {
      "name": "verify_rate_limit_headers",
      "description": "Check if rate limit information is provided in response headers",
      "endpoint": "/data/price",
      "method": "GET",
      "payload": {
        "fsym": "BTC",
        "tsyms": "USD"
      },
      "check": "response.headers should contain rate limit info (X-RateLimit-* headers)"
    },
    {
      "name": "verify_free_tier_limits",
      "description": "Test if free tier has expected limitations",
      "endpoint": "/data/histoday",
      "method": "GET", 
      "payload": {
        "fsym": "BTC",
        "tsym": "USD",
        "limit": "2000"
      },
      "check": "large historical data requests should be rate limited or require paid tier"
    }
  ],
  "stress_profile": {
    "concurrent_requests": 3,
    "duration_seconds": 15,
    "ramp_up": true
  }
}
```
Execute

7/7 tests passed

TestEndpointStatusLatency
test_btc_usd_priceGET /data/price200163ms
test_multi_currency_pricesGET /data/pricemulti200140ms
test_historical_daily_dataGET /data/histoday200138ms
test_top_exchangesGET /data/top/exchanges200137ms
test_crypto_newsGET /data/news200120ms
test_invalid_symbol_errorGET /data/price200132ms
test_no_auth_errorGET /data/price200125ms
Interpret
```json
{
  "overall": 66,
  "dimensions": {
    "token_efficiency": 4.0,
    "first_try_success": 2.0,
    "response_parseability": 8.0,
    "error_clarity": 10.0,
    "doc_quality": 4.0,
    "auth_simplicity": 10.0,
    "latency": 8.0,
    "consistency": 7.0
  },
  "pricing_normalized": {
    "maker_fee_bps": null,
    "taker_fee_bps": null,
    "withdrawal_fee_usd": null,
    "free_tier_requests": null
  },
  "issues": [
    "All price endpoints failed due to missing required parameters (fsym/fsyms)",
    "News endpoint returns 'Path does not exist' error",
    "Poor parameter discoverability for agent automation",
    "No successful data retrieval in any test case"
  ],
  "recommendations": [
    "Document required parameters clearly with examples",
    "Fix the /data/news endpoint path",
    "Provide default parameter handling or better error guidance",
    "Add endpoint documentation with sample requests",
    "Consider optional parameters for common use cases (BTC/USD defaults)"
  ]
}
```

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