Skip to main content

Base URL

https://mcp.echozero.app/api
Download the OpenAPI spec: https://mcp.echozero.app/api/docs-json

Response envelope

Success:
{ "success": true, "data": { } }
Paginated lists:
{
  "success": true,
  "data": { "items": [], "meta": { "page": 1, "limit": 25, "total": 100 } }
}
Errors: see Error codes.

Pagination

Query parameters on list endpoints:
ParamDefaultMaxDescription
page1-1-based page index
limit25100Page size
orderdesc-asc or desc
orderBycreatedAt-Sort field (varies by endpoint)
Example paging loop:
PAGE=1
while true; do
  RESP=$(curl -sS "https://mcp.echozero.app/api/v1/trades?page=$PAGE&limit=100" \
    -H "x-api-key: $EZ_API_KEY")
  # process RESP.data.items
  TOTAL=$(echo "$RESP" | jq '.data.meta.total')
  LIMIT=$(echo "$RESP" | jq '.data.meta.limit')
  if [ "$((PAGE * LIMIT))" -ge "$TOTAL" ]; then break; fi
  PAGE=$((PAGE + 1))
done

Rate limits

TierLimit
free60 requests / minute
standard300 / minute
premium1000 / minute
Headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, Retry-After (on 429).

Idempotency

Write typeKey
Inbound signalsidempotencyKey on every signal (required for structured; strongly recommended for NL)
Developer API signalsidempotencyKey ≥ 8 chars → stable sig_api_{agentId}_{key}
MCP destructive toolsConfirmation flow with TTL

Authentication required

Unless documented as public (marketplace browse, inbound webhooks, OAuth authorize), all /api/v1/* routes require x-api-key or Authorization: Bearer.

Versioning

API paths are prefixed with /v1/. See Versioning policy.