tpslBook
Get a snapshot of all active TP/SL trigger orders.
Overview
The tpslBook endpoint returns a snapshot of all untriggered TP/SL orders (take profit, stop loss) across all markets. These are orders that exist on Hyperliquid but have not yet been triggered — they are not visible in the L4 orderbook.
Key details:
~110K trigger orders across ~330 markets (typical)
Updated in real-time (per-block)
Includes user address, trigger price, size, and order type for each order
Use with tpslUpdates WebSocket stream for real-time sync
Request
Endpoint: POST /info
All markets:
{
"type": "tpslBook"
}Specific coins:
{
"type": "tpslBook",
"coins": ["BTC", "ETH"]
}Parameters:
coins
string[]
No
Specific markets to fetch. Omit for all markets.
Response
Content-Type: application/octet-stream
The response is a binary multi-zstd payload (~4.2 MB for all markets, vs ~31 MB if served as JSON). Each market is compressed independently and concatenated with the same outer framing as l4Book. The SDK's TpslClient decodes this transparently — see Streaming sync below.
Response headers:
Content-Type
application/octet-stream
x-payload-format
multi-zstd
x-compression
inner-zstd
Logical content (after decode):
Response fields
height
int
Block height at the time of the snapshot
timestamp_ms
int
Block timestamp (ms since epoch)
markets
array
Array of markets with trigger orders
markets[].coin
string
Market symbol
markets[].orders
array
Trigger orders in this market
Order fields are the same as the tpslUpdates add diff — see that page for full field descriptions.
Streaming sync
To maintain a real-time view of trigger orders:
Subscribe to tpslUpdates WebSocket stream
Fetch
tpslBooksnapshot — note theheightApply buffered WS updates where
height > snapshot_heightContinue applying live updates
See the TP/SL heatmap streaming guide for details.
Rate limits
10 requests per 5 minutes
Common errors
403: Permission denied - check API key
429: Rate limit exceeded
503: Service unavailable - heatmap service is bootstrapping
Last updated