### Overview Tradematic Cloud is a trading infrastructure for building investment services. It’s a trading engine + API + ready-made adapters to stock and forex brokers, crypto exchanges, and market
Full LLM thinking from the 4-phase benchmark pipeline.
{
"service_type": "crypto_app",
"base_url": "https://api.tradematic.com",
"auth_method": "api_key_header",
"auth_config": {
"header_name": "Authorization",
"header_format": "Bearer YOUR_API_KEY",
"key_management": "dashboard_token_rotation"
},
"endpoints": [
{"path": "/v1/accounts", "method": "GET", "purpose": "list trading accounts and balances"},
{"path": "/v1/orders", "method": "POST", "purpose": "place order (market/limit)"},
{"path": "/v1/orders/{id}", "method": "DELETE", "purpose": "cancel order"},
{"path": "/v1/orders", "method": "GET", "purpose": "list orders with filter by status/symbol"},
{"path": "/v1/positions", "method": "GET", "purpose": "get open positions"},
{"path": "/v1/market/instruments", "method": "GET", "purpose": "list tradable instruments across brokers/exchanges"},
{"path": "/v1/market/ticker/{symbol}", "method": "GET", "purpose": "current bid/ask and last price"},
{"path": "/v1/market/orderbook/{symbol}", "method": "GET", "purpose": "order book depth"},
{"path": "/v1/market/history/{symbol}", "method": "GET", "purpose": "historical candlestick data"},
{"path": "/v1/portfolio", "method": "GET", "purpose": "aggregated portfolio across connected accounts"}
],
"pricing_model": {
"type": "tiered",
"details": {
"tiers": [
{"name": "Developer", "price": "free", "limits": "1 API key, 1000 requests/day, delayed market data"},
{"name": "Professional", "price": "monthly_fee", "limits": "10 API keys, 100k requests/day, real-time data"},
{"name": "Enterprise", "price": "custom", "limits": "unlimited, SLA, dedicated support"}
],
"notes": "Additional costs may apply for broker/exchange connectivity and data feeds"
}
},
"rate_limits": {
"rpm": 60,
"burst": 100,
"notes": "Limits per API key, vary by tier; WebSocket connections have separate limit"
},
"capabilities": [
"spot_trading",
"futures",
"margin_trading",
"portfolio_management",
"order_management",
"market_data",
"multi_broker_connectivity",
"websocket_streaming",
"historical_data",
"algorithmic_trading"
],
"crypto_specifics": {
"supported_chains": ["ethereum", "bitcoin", "solana", "binance_smart_chain", "polygon"],
"token_count": 1000,
"has_websocket": true,
"has_orderbook": true,
"fee_structure": "maker/taker + broker/exchange commissions",
"security_features": [
"api_key_authentication",
"2fa_optional",
"withdrawal_whitelist",
"ip_whitelist",
"audit_logs",
"encrypted_storage"
],
"supported_exchanges": ["binance", "coinbase", "kraken", "bitfinex", "ftx", "huobi", "okx", "bybit"],
"supported_brokers": ["interactive_brokers", "alpaca", "oanda", "fxcm", "td_ameritrade", "etoro"]
}
}```json
{
"tests": [
{
"name": "auth_reject_missing_api_key",
"endpoint": "/v1/accounts",
"method": "GET",
"headers": {},
"payload": null,
"expected_status": 401,
"intent": "auth",
"expected_behavior": "Request without Authorization header is rejected with 401 and a structured error body",
"metrics": ["status_code", "latency"],
"validation": {"field": "error", "type": "object", "min_length": null}
},
{
"name": "auth_reject_invalid_api_key",
"endpoint": "/v1/accounts",
"method": "GET",
"headers": {"Authorization": "Bearer invalid_key_0000000000000000"},
"payload": null,
"expected_status": 401,
"intent": "auth",
"expected_behavior": "Invalid API key is rejected with 401/403, no account data leaked",
"metrics": ["status_code", "latency"],
"validation": {"field": "error", "type": "object", "min_length": null}
},
{
"name": "list_accounts_happy_path",
"endpoint": "/v1/accounts",
"method": "GET",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"payload": null,
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns list of trading accounts with balances",
"metrics": ["latency", "status_code", "accuracy"],
"validation": {"field": "data", "type": "array", "min_length": 0}
},
{
"name": "list_instruments_happy_path",
"endpoint": "/v1/market/instruments",
"method": "GET",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"payload": null,
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns tradable instruments across brokers/exchanges with symbol metadata",
"metrics": ["latency", "status_code", "accuracy"],
"validation": {"field": "data", "type": "array", "min_length": 1}
},
{
"name": "get_ticker_btcusdt_happy_path",
"endpoint": "/v1/market/ticker/BTCUSDT",
"method": "GET",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"payload": null,
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns bid/ask/last for BTCUSDT with plausible numeric values (bid <= ask)",
"metrics": ["latency", "status_code", "accuracy", "price_sanity"],
"validation": {"field": "last", "type": "number", "min_length": null}
},
{
"name": "get_orderbook_btcusdt_happy_path",
"endpoint": "/v1/market/orderbook/BTCUSDT?depth=10",
"method": "GET",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"payload": null,
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns order book depth with bids/asks arrays; best bid < best ask",
"metrics": ["latency", "status_code", "accuracy"],
"validation": {"field": "bids", "type": "array", "min_length": 1}
},
{
"name": "get_history_btcusdt_happy_path",
"endpoint": "/v1/market/history/BTCUSDT?interval=1h&limit=10",
"method": "GET",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"payload": null,
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns up to 10 hourly candles with OHLCV fields, chronological order",
"metrics": ["latency", "status_code", "accuracy"],
"validation": {"field": "data", "type": "array", "min_length": 1}
},
{
"name": "get_positions_happy_path",
"endpoint": "/v1/positions",
"method": "GET",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"payload": null,
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns open positions (possibly empty array)",
"metrics": ["latency", "status_code"],
"validation": {"field": "data", "type": "array", "min_length": 0}
},
{
"name": "get_portfolio_happy_path",
"endpoint": "/v1/portfolio",
"method": "GET",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"payload": null,
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns aggregated portfolio across accounts with totals",
"metrics": ["latency", "status_code", "accuracy"],
"validation": {"field": "data", "type": "object", "min_length": null}
},
{
"name": "list_orders_with_filters_happy_path",
"endpoint": "/v1/orders?status=open&symbol=BTCUSDT",
"method": "GET",
"headers": {"Authorization": "Bearer YOUR_API_KEY"},
"payload": null,
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns orders filtered by status/symbol",
"metrics": ["latency", "status_code"],
"validation": {"field": "data", "type": "array", "min_length": 0}
},
{
"name": "place_limit_order_happy_path",
"endpoint": "/v1/orders",
"method": "POST",
0/20 tests passed
| Test | Endpoint | Status | Latency |
|---|---|---|---|
| auth_reject_missing_api_key | GET /v1/accounts | 404 | 461ms |
| auth_reject_invalid_api_key | GET /v1/accounts | 404 | 114ms |
| list_accounts_happy_path | GET /v1/accounts | 404 | 115ms |
| list_instruments_happy_path | GET /v1/market/instruments | 404 | 114ms |
| get_ticker_btcusdt_happy_path | GET /v1/market/ticker/BTCUSDT | 404 | 115ms |
| get_orderbook_btcusdt_happy_path | GET /v1/market/orderbook/BTCUSDT?depth=10 | 404 | 114ms |
| get_history_btcusdt_happy_path | GET /v1/market/history/BTCUSDT?interval=1h&limit=10 | 404 | 116ms |
| get_positions_happy_path | GET /v1/positions | 404 | 114ms |
| get_portfolio_happy_path | GET /v1/portfolio | 404 | 114ms |
| list_orders_with_filters_happy_path | GET /v1/orders?status=open&symbol=BTCUSDT | 404 | 115ms |
{
"overall": 8,
"dimensions": {
"token_efficiency": 1.0,
"first_try_success": 0.0,
"response_parseability": 0.0,
"error_clarity": 1.0,
"doc_quality": 3.0,
"auth_simplicity": 2.0,
"latency": 2.0,
"consistency": 0.0
},
"pricing_normalized": {
"maker_fee_bps": null,
"taker_fee_bps": null,
"withdrawal_fee_usd": null,
"free_tier_requests": null
},
"issues": [
"All 20 endpoint probes returned 404/405 HTML (nginx default page) instead of JSON — the API base URL or path prefix is wrong; nothing is reachable.",
"Agent-facing efficiency is zero: no market data, ticker, orderbook, or instrument list can be retrieved at all.",
"Responses are text/html, not JSON — completely unparseable for automated agents.",
"No security headers returned on any response (missing HSTS, X-Content-Type-Options, CSP, etc.).",
"No rate-limit headers exposed; agents cannot detect or adapt to throttling.",
"Error bodies are nginx default HTML pages — zero actionable error clarity (no error codes, no hints on auth, invalid pairs, or insufficient funds).",
"Cancel order endpoint returns 405 Not Allowed, suggesting method routing is broken or wrong path.",
"Inconsistent/apparent non-existence of service across all tests — likely wrong base_url or API not deployed at advertised host.",
"Documentation lists 10 endpoints and rich capabilities (futures, margin, websockets) but zero are functional end-to-end.",
"No pricing/fee schedule discoverable; spread and fee data absent."
],
"recommendations": [
"Verify and publish the correct API base URL and version prefix; the current base resolves to an nginx static site returning HTML 404s.",
"Ensure all documented endpoints return application/json with proper HTTP status codes (200/400/401/404) instead of nginx HTML error pages.",
"Implement structured JSON error responses with machine-readable error codes (e.g., INVALID_SYMBOL, UNAUTHORIZED, INSUFFICIENT_FUNDS, RATE_LIMITED).",
"Add standard security headers (HSTS, X-Content-Type-Options, CSP, X-Frame-Options) and CORS policy.",
"Expose rate-limit headers (X-RateLimit-Limit/Remaining/Reset, Retry-After) for agent backoff logic.",
"Fix method routing so DELETE /v1/orders/{id} returns 200/404 rather than 405.",
"Provide public, unauthenticated market data endpoints (ticker, orderbook, history, instruments) so agents can bootstrap without keys.",
"Publish a machine-readable OpenAPI spec plus fee schedule and symbol metadata to enable low-token agent integration.",
"Add health/status endpoint (e.g., /v1/health or /v1/ping) so agents can validate base URL before issuing real calls.",
"Benchmark latency once JSON endpoints exist; current ~114-461ms reflects HTML error paths, not real market data, so freshness is unverifiable."
]
}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/tradematic-cloud-api">
<img src="https://prowl.world/badge/tradematic-cloud-api.svg" height="56" alt="Agent-readiness on Prowl">
</a>
See operational metrics, LLM evaluations, agent readiness, and more.
Open in Dashboard