Your Maximum Leverage Is a Staircase, Not a Number: 35 Rungs on One Exchange, 99 on the Other — Both Straight From the API
Every exchange landing page sells leverage as a single number. "Up to 150x" is easy to print and easy to remember. But the venue's own public API dissolves that number into a ladder: each rung pairs a position-size boundary with a lower leverage ceiling and a higher maintenance-margin rate. On 2026-10-29 (06:51 UTC) I fetched the complete ladders for the BTCUSD perpetual from two exchanges — no API key needed — and counted the steps: 35 rungs at one venue, 99 at the other. Same asset, same concept, two very different staircases.
Quick disclosures: AI-assisted content: this article was researched and drafted with AI assistance, and every number below was re-checked against the official endpoints and documentation cited at the end. #ad — affiliate disclosure: this post carries no affiliate or referral links; if future posts in this series do, they will be labelled right where they appear. This article is not financial advice — it is a measurement of published contract specifications.
The advertised ceiling belongs to your smallest possible position
Bybit's public risk-limit endpoint (GET /v5/market/risk-limit?category=linear&symbol=BTCUSDT on api.bybit.com) returns exactly 35 tiers for the BTCUSDT linear perpetual. The very first rung reads: riskLimitValue 300,000, maxLeverage 150.00, maintenanceMargin 0.0033. In plain words: the headline 150x is reserved for positions under $300,000 of notional. Here are selected rungs of that staircase, verbatim from the wire:
| Rung | Notional boundary | Max leverage | Maintenance margin |
|---|---|---|---|
| 1 | up to $300,000 | 150x | 0.33% |
| 2 | up to $2,000,000 | 100x | 0.50% |
| 5 | up to $3,800,000 | 75x | 0.67% |
| 10 | up to $10,000,000 | 45x | 1.30% |
| 20 | up to $75,000,000 | 15x | 4.00% |
| 25 | up to $100,000,000 | 10x | 6.50% |
| 30 | up to $150,000,000 | 5x | 12.00% |
| 35 | up to $1,200,000,000 | 1x | 60.00% |
A $10 million position does not get 150x — it gets 45x. The final rung is not leverage at all: 1x with a 60% maintenance-margin rate. From first rung to last, the ceiling falls by a factor of 150 while the margin rate rises by a factor of 182 (0.33% → 60%) — less leverage and a thinner buffer to liquidation, tightening together at every step.
The other exchange counts its staircase in contracts — and it has 99 rungs
OKX publishes the same idea at GET /api/v5/public/position-tiers?uly=BTC-USDT&instType=SWAP&tdMode=cross on okx.com. One live observation worth flagging: on the capture date this endpoint rejected every request that omitted instType with code 50014 ("Parameter instType can not be empty") — the ladder itself is unchanged from earlier measurements, but required parameters on public endpoints can tighten without notice, so your own clients should be re-checked against the current spec.
This ladder is expressed in contracts, not dollars. The instruments endpoint (GET /api/v5/public/instruments?instType=SWAP&instId=BTC-USDT-SWAP) gives ctVal = 0.01, so one contract is 0.01 BTC. Selected rungs from the live response:
| Rung | Position size | Max leverage | MMR |
|---|---|---|---|
| 1 | up to 1,000 contracts (= 10 BTC) | 100x | 0.40% |
| 2 | up to 5,000 contracts | 66.66x | 0.50% |
| 3 | up to 20,000 contracts | 50x | 0.75% |
| 4 | up to 40,000 contracts | 40x | 1.25% |
| 5 | up to 60,000 contracts | 33.33x | 1.75% |
| 6 | up to 80,000 contracts | 28.57x | 2.25% |
| 99 | up to 1,940,000 contracts (= 19,400 BTC) | 2x | 48.75% |
To give the dollars some anchor: at the venue's own BTC-USDT-SWAP last price of 79,899.4 (same minute, 06:51 UTC; Binance's BTCUSDT quoted 79,936.45 in parallel, agreeing within 5 bps), the first rung's 10 BTC is roughly $799,000. So 100x on OKX lives below about $0.8 million of notional — the same physics Bybit encodes as "150x below $300,000".
Same physics, different bookkeeping
Put the two ladders side by side and three neutral observations fall out:
-
The units are not comparable at face value. Bybit's boundaries are USD notional; OKX's are contract counts that need
ctValand a live price before any number means anything. Comparing "300,000" against "1,000" is a category error. - The granularity is wildly different: 35 steps versus 99. Bybit drops 50 leverage points in a single step (150 → 100). OKX near the bottom of its ladder steps down in increments only visible to two decimals: rungs 96–99 run 2.06x → 2.04x → 2.02x → 2x. One staircase descends in leaps, the other in millimetres.
- The floors disagree. Bybit's last rung is 1x at $1.2 billion with 60% MMR; OKX's is 2x at 19,400 BTC — roughly $1.55 billion at the same snapshot — with 48.75% MMR. Both say "at whale size, leverage stops being borrowable", but they stop at different rungs, and either table can change without announcement.
What this changes for anyone who builds or measures
- Treat headline leverage as a floor-tier spec value. The advertised number belongs to the smallest position on the book.
- Compute margin from the tier you actually sit in. A tool that divides notional by the first-tier rate while your size sits on the tenth rung can be off by more than 3x (1.30% vs 0.33%).
- Liquidation distance is set by your rung's MMR, not the advertised one. Any model that hard-codes 0.33% will systematically underestimate how close large positions run to the edge.
- Refetch, do not cache forever. Both ladders here were byte-stable across two fetches seconds apart on the capture date — a property of this week, not of the endpoint contract.
None of this ranks one venue against the other. The point is smaller and more useful: "maximum leverage" is not one number, it is a table, and both exchanges hand you the whole table for free if you ask.
Numbers move — verify official sources
Every figure here is a snapshot from 2026-10-29 06:51–06:52 UTC, captured twice within seconds of each other (the two Bybit fetches agreed on all 35 rungs; the two OKX fetches were byte-identical). Re-run the calls yourself: api.bybit.com GET /v5/market/risk-limit?category=linear&symbol=BTCUSDT, okx.com GET /api/v5/public/position-tiers?uly=BTC-USDT&instType=SWAP&tdMode=cross and GET /api/v5/public/instruments?instType=SWAP&instId=BTC-USDT-SWAP. For the written field definitions: the risk-limit page on bybit-exchange.github.io/docs/v5/market and the position-tiers section of okx.com/docs-v5 — both reachable (HTTP 200) at capture time. Verify official sources before you hard-code any of this into your own code.
Not financial advice. This post reports published contract parameters from public APIs only; it recommends no exchange, no leverage level, no strategy, and no trade. Leverage magnifies losses as fast as gains.
AI-assisted content disclosure: researched and drafted with AI assistance on 2026-10-29 against the cited official sources. #ad: no affiliate or referral links are present in this post.
Top comments (0)