Page cover

System Limits

Overview

Ethereal uses a time-weighted point system tracking both IP addresses and wallet addresses. Each API call consumes points from your available quota within a rolling time window. Point consumption varies by endpoint.

Current Limits and Shared Quotas

The system allows up to 20,000 points per 1-minute window for HTTP and 3500 points per 5-minute window for WS connections. HTTP API calls and WebSocket connections share different point pools, with WebSocket streams only consuming points upon connection and subscription. Use websockets for data retrieval - polling HTTP endpoints incurs more points.

RateLimit-*, Retry-After Headers

All rate-limited HTTP API endpoints return the following headers to provide insight into your remaining points:

RateLimit-Limit: <total points allowed in the time window>
RateLimit-Remaining: <points remaining in the current time window>
RateLimit-Reset: <seconds until rate limit resets>
Retry-After: <seconds until rate limit resets (only when rate limited)>
  • Retry-After/RateLimit-Reset: Indicates the number of seconds until the rate limit window resets. If you've exceeded your rate limit, this header tells you how long to wait before making additional requests.

  • RateLimit-Limit: Shows the total number of points available in your current time window (1 million points by default).

  • RateLimit-Remaining: Displays the number of points you have remaining in the current time window. This decreases with each API call according to the point cost of the specific endpoint.

RateLimit Response Body

When rate limited, the response body will include a type attribute indicating the cause:

  • RATE_LIMIT_IP - IP address exceeded rate limit

  • RATE_LIMIT_ACCOUNT - Account exceeded rate limit

  • RATE_LIMIT_WITHDRAW - Withdrawal rate limit exceeded

  • RATE_LIMIT_LINKED_SIGNER - Linked signer exceeded rate limit

If you exceed the maximum number of linked signers, rather than receiving a 429 rate limit, a 403 forbidden error and you must revoke your linked signer before linking a new signer.

Points

Each operation consumes rate limit units proportional to its computational cost: 1, 5, or 10.

  • 1: Minimal impact endpoints (simple reads, submit/cancels)

  • 5: Moderate impact endpoints (moderately complex reads)

  • 10: Elevated average impactful endpoints (moderately complex pagination)

All endpoints are classified into one of these categories to provide a straightforward understanding of their relative impact on your rate limit quota.

All websocket connections consume 10 points per connection and 5 point to subscribe to a message stream.

In an upcoming release the API will publicise points consumed per endpoint.

Account Limits

  • Maximum 50 open positions per subaccount (for efficient onchain verification)

  • No limit on number of subaccounts per trader

  • 10 withdrawals per day

  • 23 linked signers per 7 day window up to 101 maximum linked signers

Order Limits

  • A maximum of 200 orders

Last updated