```json
{
"tests": [
{
"name": "test_assets_endpoint",
"endpoint": "/public/assets",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns list of tradeable assets/cryptocurrencies",
"metrics": ["latency", "status_code", "response_size"],
"validation": {
"field": "data",
"type": "array",
"min_length": 5,
"required_fields": ["symbol", "name"]
}
},
{
"name": "test_markets_endpoint",
"endpoint": "/public/markets",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns trading pairs and market information",
"metrics": ["latency", "status_code", "accuracy"],
"validation": {
"field": "data",
"type": "array",
"min_length": 3,
"required_fields": ["symbol", "base_asset", "quote_asset"]
}
},
{
"name": "test_ticker_all_markets",
"endpoint": "/public/ticker",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns 24h price statistics for all markets",
"metrics": ["latency", "accuracy", "consistency"],
"validation": {
"field": "data",
"type": "array",
"min_length": 1,
"required_fields": ["symbol", "last_price", "volume"]
}
},
{
"name": "test_ticker_specific_pair",
"endpoint": "/public/ticker?symbol=BTCBRL",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns ticker data for BTC/BRL trading pair",
"metrics": ["latency", "accuracy"],
"validation": {
"field": "symbol",
"expected_value": "BTCBRL",
"required_fields": ["last_price", "high_24h", "low_24h", "volume"]
}
},
{
"name": "test_orderbook",
"endpoint": "/public/orderbook?symbol=BTCBRL&limit=20",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns order book depth for BTC/BRL",
"metrics": ["latency", "accuracy", "consistency"],
"validation": {
"required_fields": ["bids", "asks"],
"bids_structure": "array_of_price_quantity_pairs",
"asks_structure": "array_of_price_quantity_pairs"
}
},
{
"name": "test_recent_trades",
"endpoint": "/public/trades?symbol=BTCBRL&limit=10",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns recent trades for BTC/BRL pair",
"metrics": ["latency", "accuracy"],
"validation": {
"field": "data",
"type": "array",
"max_length": 10,
"required_fields": ["price", "quantity", "timestamp", "side"]
}
},
{
"name": "test_invalid_trading_pair",
"endpoint": "/public/ticker?symbol=INVALID",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 404,
"expected_behavior": "Returns error for non-existent trading pair",
"metrics": ["error_handling", "latency"],
"validation": {
"check_error_format": true,
"expect_error_message": true
}
},
{
"name": "test_rate_limit_compliance",
"endpoint": "/public/ticker",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Respects 600 RPM rate limit with proper headers",
"metrics": ["rate_limit_headers"],
"validation": {
"check_headers": ["X-RateLimit-Limit", "X-RateLimit-Remaining"],
"max_requests_per_minute": 600
}
}
],
"pricing_probes": [
{
"name": "verify_public_endpoints_free",
"description": "Confirm public endpoints work without API key and don't charge",
"endpoint": "/public/markets",
"method": "GET",
"payload": {},
"check": "Should return 200 without X-API-Key header, confirming free access"
},
{
"name": "verify_trading_fees_visibility",
"description": "Check if trading fee information is available in market data",
"endpoint": "/public/markets",
"method": "GET",
"payload": {},
"check": "Response should include maker/taker fee information or fee schedule"
},
{
"name": "verify_brl_fiat_support",
"description": "Confirm BRL (Brazilian Real) is supported as quote currency",
"endpoint": "/public/markets",
"method": "GET",
"payload": {},
"check": "Should find trading pairs with BRL as quote currency (e.g., BTCBRL, ETHBRL)"
}
],
"stress_profile": {
"concurrent_requests": 3,
"duration_seconds": 8,
"ramp_up": true,
"target_endpoint": "/public/ticker",
"respect_rate_limit": true,
"max_rpm": 600