Rate Limits
Rate limits are enforced per authenticated identity (Ethereum address or Telegram user ID). All limits are shared across your WebSocket connections - if you open multiple connections, they draw from the same pool.
Connections
Each identity can maintain a limited number of concurrent WebSocket connections. AlphaHype users can open up to 10 connections, while Telegram users can open up to 20 connections. This allows you to run multiple clients or services under the same identity without interference.
If you try to open a new connection after reaching the limit, it will be rejected with HTTP 429.
Subscriptions
You can have up to 100 active subscriptions across all your connections.
When you hit the limit, new subscribe requests will fail, but your existing subscriptions keep working. Unsubscribe
from channels you no longer need to free up slots.
Unique Users
For user-specific subscriptions (orderUpdates and userFills), there's a limit of 10 unique user addresses you
can track across all connections. This prevents any single client from monitoring too many accounts.
Subscribing to both orderUpdates and userFills for the same address counts as just one unique user. When you close a
connection, the user slots it was using become available again.
Messages
Inbound WebSocket messages are limited to 1,000 per minute with a small burst allowance for temporary spikes. This
includes all message types: subscribe, unsubscribe, ping, and post requests.
Under normal usage you won't hit this limit - it's primarily there to protect against runaway clients or bugs that might flood the server.
Inflight Posts
The post method for queries allows up to 100 concurrent requests awaiting response. This is a high limit that
accommodates heavy query workloads while preventing any single client from monopolizing server resources.
If you hit this limit, wait for some of your pending requests to complete before sending more.
HTTP Requests
The HTTP /info endpoint is limited to 30 requests per minute. For real-time data, prefer WebSocket subscriptions
which don't count against this limit.
Errors
When any rate limit is exceeded, the server responds with:
{
"channel": "error",
"data": {
"error": "rate limit exceeded"
}
}For connection limits, the WebSocket handshake is rejected with HTTP 403.
