Full LLM thinking from the 4-phase benchmark pipeline.
```json
{
"service_type": "crypto_app",
"base_url": "https://block.io",
"auth_method": "api_key_header",
"auth_config": {},
"endpoints": [
{"path": "/api/v1/get_balance", "method": "GET", "purpose": "retrieve wallet balance"},
{"path": "/api/v1/create_wallet", "method": "POST", "purpose": "create a new wallet"},
{"path": "/api/v1/withdraw", "method": "POST", "purpose": "withdraw funds"}
],
"pricing_model": {"type": "per_request", "details": {}},
"rate_limits": {"rpm": 60},
"capabilities": ["wallet", "bitcoin_transactions", "data_provision"],
"crypto_specifics": {
"supported_chains": ["bitcoin"],
"token_count": 1,
"has_websocket": false,
"has_orderbook": false,
"fee_structure": "transaction_fee",
"security_features": ["2fa", "cold_storage"]
}
}
``````json
{
"tests": [
{
"name": "test_get_balance_basic",
"endpoint": "/api/v1/get_balance",
"method": "GET",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns balance data for a wallet",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "data.total_balance", "type": "number", "min_length": 0}
},
{
"name": "test_create_wallet",
"endpoint": "/api/v1/create_wallet",
"method": "POST",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"payload": {"label": "My new wallet"},
"expected_status": 201,
"expected_behavior": "Creates a new wallet and returns wallet details",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "data.wallet_id", "type": "string", "min_length": 1}
},
{
"name": "test_withdraw_funds",
"endpoint": "/api/v1/withdraw",
"method": "POST",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"payload": {
"amount": "0.01",
"to_address": "1BitcoinAddress..."
},
"expected_status": 200,
"expected_behavior": "Withdraws the specified amount from the wallet",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "data.transaction_id", "type": "string", "min_length": 1}
},
{
"name": "test_get_balance_invalid_auth",
"endpoint": "/api/v1/get_balance",
"method": "GET",
"headers": {"Authorization": "Bearer INVALID_API_KEY"},
"payload": {},
"expected_status": 401,
"expected_behavior": "Invalid authentication returns 401 status",
"metrics": ["latency", "status_code"],
"validation": {}
},
{
"name": "test_withdraw_funds_missing_field",
"endpoint": "/api/v1/withdraw",
"method": "POST",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"payload": {
"amount": "0.01"
},
"expected_status": 400,
"expected_behavior": "Missing 'to_address' field returns 400 status",
"metrics": ["latency", "status_code"],
"validation": {}
}
],
"pricing_probes": [
{
"name": "verify_pricing_per_request",
"description": "Count requests and verify they're billed appropriately",
"endpoint": "/api/v1/get_balance",
"method": "GET",
"payload": {},
"check": "response.headers should include 'X-Used-Requests': 1"
}
],
"stress_profile": {
"concurrent_requests": 5,
"duration_seconds": 10,
"ramp_up": true
}
}
```0/5 tests passed
| Test | Endpoint | Status | Latency |
|---|---|---|---|
| test_get_balance_basic | GET /api/v1/get_balance | 302 | 49ms |
| test_create_wallet | POST /api/v1/create_wallet | 302 | 15ms |
| test_withdraw_funds | POST /api/v1/withdraw | 302 | 14ms |
| test_get_balance_invalid_auth | GET /api/v1/get_balance | 302 | 14ms |
| test_withdraw_funds_missing_field | POST /api/v1/withdraw | 302 | 15ms |
```json
{
"overall": 48,
"dimensions": {
"token_efficiency": 5.0,
"first_try_success": 3.0,
"response_parseability": 2.0,
"error_clarity": 2.0,
"doc_quality": 5.0,
"auth_simplicity": 7.0,
"latency": 9.0,
"consistency": 1.0
},
"pricing_normalized": {
"maker_fee_bps": null,
"taker_fee_bps": null,
"withdrawal_fee_usd": null,
"free_tier_requests": null
},
"issues": [
"status_code_302_for_all_requests",
"lack_of_response_preview",
"missing_security_headers",
"inconsistent_response_handling"
],
"recommendations": [
"Ensure responses return appropriate status codes like 200 for successful requests.",
"Improve error messages to make debugging easier.",
"Enhance documentation to cover unexpected status codes and missing fields.",
"Implement and document consistent security headers across responses."
]
}
```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/block">
<img src="https://prowl.world/badge/block.svg" height="56" alt="Agent-readiness on Prowl">
</a>
See operational metrics, LLM evaluations, agent readiness, and more.
Open in Dashboard