Full LLM thinking from the 4-phase benchmark pipeline.
{
"service_type": "crypto_app",
"base_url": "https://glide.finance",
"auth_method": "api_key_header",
"auth_config": {},
"endpoints": [
{"path": "/api/v1/rates", "method": "GET", "purpose": "get exchange rates for supported assets"},
{"path": "/api/v1/quotes", "method": "POST", "purpose": "request a quote for a swap"},
{"path": "/api/v1/trades", "method": "POST", "purpose": "execute a swap"},
{"path": "/api/v1/status", "method": "GET", "purpose": "check API status and system health"}
],
"pricing_model": {"type": "free", "details": {}},
"rate_limits": {"rpm": 60},
"capabilities": ["swap", "bridge", "deposit"],
"crypto_specifics": {
"supported_chains": ["ethereum", "bsc", "polygon", "avalanche", "fantom", "arbitrum", "optimism", "base"],
"token_count": 50000,
"has_websocket": false,
"has_orderbook": false,
"fee_structure": "liquidity provider fees",
"security_features": ["api_key", "rate_limiting"]
}
}{
"tests": [
{
"name": "api_status_health",
"endpoint": "/api/v1/status",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns system status and health information",
"metrics": ["latency", "status_code"],
"validation": {"field": "status", "type": "string", "min_length": 1}
},
{
"name": "get_rates_supported_assets",
"endpoint": "/api/v1/rates",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns exchange rates for supported assets",
"metrics": ["latency", "status_code", "accuracy"],
"validation": {"field": "rates", "type": "object", "min_length": 1}
},
{
"name": "get_rates_invalid_auth_missing",
"endpoint": "/api/v1/rates",
"method": "GET",
"headers": {"X-API-Key": "invalid_key"},
"payload": {},
"expected_status": 401,
"intent": "auth",
"expected_behavior": "Returns 401 unauthorized when API key is missing or invalid",
"metrics": ["status_code", "latency"],
"validation": {"field": "error", "type": "string", "min_length": 1}
},
{
"name": "get_rates_invalid_asset",
"endpoint": "/api/v1/rates",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns rates for all assets; this test is intentionally broad to check structure",
"metrics": ["latency", "status_code"],
"validation": {"field": "rates", "type": "object", "min_length": 1}
},
{
"name": "get_rates_specific_asset",
"endpoint": "/api/v1/rates",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns rates for a specific asset if supported",
"metrics": ["latency", "status_code"],
"validation": {"field": "rates", "type": "object", "min_length": 1}
},
{
"name": "quotes_valid_swap_request",
"endpoint": "/api/v1/quotes",
"method": "POST",
"headers": {"Content-Type": "application/json"},
"payload": {
"source_asset": "ETH",
"destination_asset": "USDC",
"amount": "0.1",
"chain": "ethereum"
},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns a quote for a swap between ETH and USDC",
"metrics": ["latency", "status_code", "accuracy"],
"validation": {"field": "quote", "type": "object", "min_length": 1}
},
{
"name": "quotes_missing_required_fields",
"endpoint": "/api/v1/quotes",
"method": "POST",
"headers": {"Content-Type": "application/json"},
"payload": {
"source_asset": "ETH"
},
"expected_status": 400,
"intent": "validation",
"expected_behavior": "Returns 400 when destination_asset or amount is missing",
"metrics": ["status_code", "latency"],
"validation": {"field": "error", "type": "string", "min_length": 1}
},
{
"name": "quotes_invalid_token",
"endpoint": "/api/v1/quotes",
"method": "POST",
"headers": {"Content-Type": "application/json"},
"payload": {
"source_asset": "INVALID",
"destination_asset": "USDC",
"amount": "0.1",
"chain": "ethereum"
},
"expected_status": 400,
"intent": "validation",
"expected_behavior": "Returns 400 for unsupported token or invalid chain",
"metrics": ["status_code", "latency"],
"validation": {"field": "error", "type": "string", "min_length": 1}
},
{
"name": "quotes_invalid_amount",
"endpoint": "/api/v1/quotes",
"method": "POST",
"headers": {"Content-Type": "application/json"},
"payload": {
"source_asset": "ETH",
"destination_asset": "USDC",
"amount": "-5",
"chain": "ethereum"
},
"expected_status": 400,
"intent": "validation",
"expected_behavior": "Returns 400 for negative or zero amount",
"metrics": ["status_code", "latency"],
"validation": {"field": "error", "type": "string", "min_length": 1}
},
{
"name": "quotes_invalid_content_type",
"endpoint": "/api/v1/quotes",
"method": "POST",
"headers": {"Content-Type": "text/plain"},
"payload": "not json",
"expected_status": 415,
"intent": "validation",
"expected_behavior": "Returns 415 when content type is not JSON",
"metrics": ["status_code", "latency"],
"validation": {"field": "error", "type": "string", "min_length": 1}
},
{
"name": "trades_invalid_quote",
"endpoint": "/api/v1/trades",
"method": "POST",
"headers": {"Content-Type": "application/json"},
"payload"0/13 tests passed
| Test | Endpoint | Status | Latency |
|---|---|---|---|
| api_status_health | GET /api/v1/status | None | 20ms |
| get_rates_supported_assets | GET /api/v1/rates | None | 15ms |
| get_rates_invalid_auth_missing | GET /api/v1/rates | None | 15ms |
| get_rates_invalid_asset | GET /api/v1/rates | None | 14ms |
| get_rates_specific_asset | GET /api/v1/rates | None | 20ms |
| quotes_valid_swap_request | POST /api/v1/quotes | None | 24ms |
| quotes_missing_required_fields | POST /api/v1/quotes | None | 17ms |
| quotes_invalid_token | POST /api/v1/quotes | None | 18ms |
| quotes_invalid_amount | POST /api/v1/quotes | None | 19ms |
| quotes_invalid_content_type | POST /api/v1/quotes | None | 14ms |
{
"overall": 0,
"dimensions": {
"token_efficiency": 0.0,
"first_try_success": 0.0,
"response_parseability": 0.0,
"error_clarity": 0.0,
"doc_quality": 1.0,
"auth_simplicity": 5.0,
"latency": 0.0,
"consistency": 0.0
},
"pricing_normalized": {
"maker_fee_bps": null,
"taker_fee_bps": null,
"withdrawal_fee_usd": null,
"free_tier_requests": null
},
"issues": [
"All 13 benchmark tests failed with DNS resolution error: '[Errno -2] Name or service not known'. Service is entirely unreachable.",
"No endpoint responded with a valid HTTP status code, all were null.",
"No security headers were returned for any endpoint.",
"No response previews available due to connection failures.",
"Unable to verify rate data correctness, parseability, error clarity, or consistency because the service is down."
],
"recommendations": [
"Critical: Ensure the DNS name resolves correctly and the service is deployed and running.",
"Verify domain configuration and server uptime.",
"Once reachable, run comprehensive API tests to validate endpoints and data quality.",
"Add proper error handling and rate limit information in responses.",
"Provide clear API documentation including endpoint schemas, error codes, and authentication requirements."
]
}Show your live agent-readiness score on your own site. Free, no auth — it updates as your score changes.
<a href="https://prowl.world/service/glide">
<img src="https://prowl.world/badge/glide.svg" height="56" alt="Agent-readiness on Prowl">
</a>
See operational metrics, LLM evaluations, agent readiness, and more.
Open in Dashboard