Perps API Overview
The Perps API is the same backend the HyperFlow app trades through. It gives you programmatic access to markets, order placement, account state, and transfers.
Base URL: https://perps-api.hyperflow.fun/api/v1 — mainnet only. No invite or allowlisting is required; any wallet can register a trading key and trade.
Integration at a glance
The pages in this section
Response envelope
Every endpoint wraps its payload in the same envelope:
Errors return success: false with an error object:
Batch and asynchronous routes return 200 with the outcome per item in data (status, reason); cancel-batch can return 200 with success: false. Read the items, not the envelope.
timestampis Unix milliseconds.- Prices, sizes, and amounts are decimal strings (
"0.00159","2000") — never floats. (Non-monetary ratios like/config’strader_shareare plain JSON numbers.)
Account format
Endpoints identify you by one of two values, and each endpoint’s reference states which one it takes:
Derive the account id by right-padding the wallet with a subaccount tail. Index 0 is your default account, so in practice the account id is the lowercase wallet followed by 24 hex zeros:
Derive it once and keep it. Every other page in this section refers to these two values by name only. Only index 0 is addressable today.
Authentication model
There is no transport-level auth — no API keys, no bearer tokens. Instead:
- Reads need no signature. They are keyed by wallet or account id, so you can query your own state without holding a key. Treat your account data as readable, not private.
- Writes are signed. Every state-changing request carries an EIP-712 signature in the body plus a single-use millisecond
nonce, and the server recovers the signer from it — see Authentication & Signing.
Market data
HyperFlow does not proxy market data — read it from Hyperliquid’s public API, which is the venue of execution:
Hyperliquid endpoints: https://api.hyperliquid.xyz (REST) and wss://api.hyperliquid.xyz/ws (WebSocket) — see the Hyperliquid API docs.
Join on hl_symbol or hl_asset_index, not symbol. The HyperFlow API does not serve mark prices. Hyperliquid funding is hourly.
GET /markets
Static per-market configuration. Live response (trimmed):
max_notional: "0"is the no-ceiling sentinel — treat it as “no maximum order value”, never as a zero cap.slippage_bpsis the default slippage bound the app applies to market orders; you are free to compute your own.sz_decimals/px_decimalsbound how many decimals a size and a price may carry;tick_sizeis the price increment and binds harder thanpx_decimals— see Price and size rules.
Practical limits
Fixed by the API:
Set per market, and returned by GET /markets — read them at runtime rather than hardcoding, because they change:
Not published: rate limits, the withdrawal ceilings behind ABOVE_MAX / DAILY_LIMIT_EXCEEDED, and a changelog — schema changes are announced on Discord.
Next: Authentication & Signing