Hyperliquid limits
Hyperliquid documents a shared REST limit of 1,200 weight per minute per IP. Exchange requests cost1 + floor(batch_length / 40); address-based limits count each batched action separately. orderStatus and clearinghouse-state reads cost 2; metadata reads generally cost 20. Some history reads also charge according to response size.
Address allowance is venue-managed. Exhausted addresses normally receive one action every ten seconds; cancellations have a larger allowance. See Hyperliquid’s rate-limit documentation for the authoritative rules and congestion limits.
Legend behavior
- A shared PostgreSQL rolling window allows 1,000 ordinary request weight and reserves another 100 for cancellations. Cancellation prerequisite reads can use that reserve.
- Market metadata is cached for 60 seconds per API process, and concurrent identical reads are coalesced within that process. New instances can still need fresh metadata reads.
- Address allowance is shared per account and refreshed from Hyperliquid every 10 seconds as needed. Each submitted action conservatively reserves five address units because expired actions can consume five times the normal allowance.
- The current per-key API throttle is 120 requests per minute.
- Exhaustion returns
429withRetry-Afterin seconds. A confirmed upstream HTTP429activates a shared cooldown. Signed writes are not automatically retried or placed in an unbounded queue.
Retry-After, then retry the same logical action with the same idempotency key. Use bounded backoff and jitter when multiple clients resume together.
Other services sharing an outbound IP and other tools trading the same account can consume exchange capacity. Headroom cannot guarantee that Hyperliquid never returns 429; both admission and explicit rejection handling are required.
