```json
{
"tests": [
{
"name": "list_assets",
"endpoint": "/v2/assets",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns list of cryptocurrencies with market data",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "data",
"type": "array",
"min_length": 1,
"required_fields": ["id", "rank", "symbol", "name", "priceUsd", "marketCapUsd"]
}
},
{
"name": "get_bitcoin_details",
"endpoint": "/v2/assets/bitcoin",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns Bitcoin market data and details",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "data",
"type": "object",
"required_fields": ["id", "symbol", "name", "priceUsd", "marketCapUsd", "volumeUsd24Hr"]
}
},
{
"name": "get_bitcoin_history",
"endpoint": "/v2/assets/bitcoin/history",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns historical price data for Bitcoin",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "data",
"type": "array",
"min_length": 1,
"required_fields": ["priceUsd", "time"]
}
},
{
"name": "list_exchanges",
"endpoint": "/v2/exchanges",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns list of cryptocurrency exchanges",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "data",
"type": "array",
"min_length": 1,
"required_fields": ["id", "name", "rank"]
}
},
{
"name": "get_markets",
"endpoint": "/v2/markets",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns trading pairs and market data",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "data",
"type": "array",
"min_length": 1,
"required_fields": ["exchangeId", "baseId", "quoteId", "priceUsd"]
}
},
{
"name": "get_exchange_rates",
"endpoint": "/v2/rates",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns exchange rates",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "data",
"type": "array",
"min_length": 1,
"required_fields": ["id", "symbol", "rateUsd"]
}
},
{
"name": "get_candles_data",
"endpoint": "/v2/candles",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns candlestick chart data",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "data",
"type": "array"
}
},
{
"name": "test_invalid_asset",
"endpoint": "/v2/assets/nonexistent-asset-xyz",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 404,
"expected_behavior": "Returns 404 for invalid asset ID",
"metrics": ["status_code", "error_handling"],
"validation": {
"field": "error",
"type": "string"
}
},
{
"name": "test_rate_limit_headers",
"endpoint": "/v2/assets",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns rate limit headers",
"metrics": ["status_code"],
"validation": {
"check_headers": ["X-RateLimit-Remaining", "X-RateLimit-Reset"]
}
},
{
"name": "test_authenticated_request",
"endpoint": "/v2/assets",
"method": "GET",
"headers": {
"Authorization": "Bearer {api_key}"
},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns data with API key authentication",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "data",
"type": "array",
"min_length": 1
}
}
],
"pricing_probes": [
{
"name": "verify_credit_consumption",
"description": "Make authenticated request to check credit usage",
"endpoint": "/v2/assets",
"method": "GET",
"payload": {},
"check": "response.headers should include credit usage information"
},
{
"name": "test_prepaid_endpoint",
"description": "Verify prepaid credit creation endpoint exists",
"endpoint": "/v3/prepaid/create",
"method": "POST",
"payload": {
"amount": 1,