OKX Retail Price Improvement Program
Introduction
The OKX Retail Price Improvement Program (RPI) adds a separate layer of post-only liquidity from dedicated market makers alongside the organic order book, giving eligible app, web, and opted-in OpenAPI orders access to additional executable prices while organic orders retain priority at the same price. This additional depth may improve execution prices and reduce slippage.
RPI succeeds the Enhanced Liquidity Program (ELP). Existing ELP integrations must migrate to the RPI field names, order type, and market-data channel by 2026-10-31. Refer to the API changelog for the migration mapping and rollout schedule.
Market participants
Maker
Dedicated market makers place RPI orders through OpenAPI with ordType: rpi. The rpi field returned by GET /api/v5/account/instruments indicates maker access for each instrument. A value of 0 means RPI is disabled. A value of 1 means RPI is enabled, but the account cannot place RPI orders. A value of 2 means RPI is enabled and the account can place RPI orders. A value of 1 or 2 does not mean that RPI liquidity is currently available. RPI maker orders are post-only. Makers can retrieve their rpiMaker fee rate from GET /api/v5/account/trade-fee.
Taker
Eligible taker orders can trade against both organic and RPI liquidity:
- App and web users are eligible for all supported order types.
- OpenAPI users must set rpiTakerAccess: true.
- rpiTakerAccess applies to limit, market, FOK, and IOC orders.
- The parameter is supported for place, batch-place, amend, and batch-amend operations over REST and WebSocket.
- No notification is sent when rpiTakerAccess is omitted on an amendment; the amended order trades against organic liquidity only, and the system does not alert you that RPI access has been lost.
Eligible flows include app and web orders, OpenAPI limit, market, FOK, and IOC orders with rpiTakerAccess: true, and supported algo orders.
Speed bump protection
The RPI speed bump is currently set to 5 milliseconds. It applies only to eligible taker flow on RPI-enabled instruments.
| Speed bump | Flows and actions |
|---|---|
| Applied | App or web create, modify, or cancel actions on an RPI-enabled instrument. OpenAPI placement or amendment with rpiTakerAccess: true, regardless of ordType, including post_only. |
| Not applied | OpenAPI cancel actions. Any OpenAPI action when rpiTakerAccess is false or omitted. Any flow on a non-RPI instrument. |
Matching rules
- If a non-RPI order crosses a resting RPI order, the RPI order is hidden from books-rpi and the web and app order book but remains tradeable.
- A hidden RPI order can execute outside the organic BBO. The organic BBO remains unchanged.
- At the same price, non-RPI liquidity has priority over RPI liquidity. Eligible taker orders match against RPI liquidity only after the non-RPI liquidity at that price has been matched.
Hidden RPI Order Example
An incoming organic ask at 102 × 1 crosses a resting RPI bid at 102 × 10,000. The RPI bid is then hidden from books-rpi and the web and app order book but remains tradeable and may execute outside the organic BBO.
Order visibility
OpenAPI order book
The public books-rpi feed combines organic quantity with currently tradeable RPI quantity at each price level. It requires no authentication and is available through:
- WebSocket: books-rpi on /ws/v5/public.
- REST: GET /api/v5/market/books-rpi.
Each level is returned as [price, totalQty, nonRpiQty, count].
Tradeable RPI quantity is totalQty - nonRpiQty. A taker with RPI access can execute against totalQty. A taker without access can execute only against nonRpiQty, even when both use the same feed.
books-rpi includes only RPI quantity that is currently available for execution. RPI orders hidden under the matching rules above are excluded.
The existing books, books-full, books5, bbo-tbt, books-l2-tbt, and books50-l2-tbt channels are unchanged.
Web and app order book
The web and app order book shows the same consolidated depth as books-rpi, including tradeable RPI liquidity. It does not identify which quantity is RPI or organic. RPI orders hidden after an organic cross are omitted from both views but remain tradeable.
Reference prices
RPI fills are included in the last-traded price and candlestick (K-line) data. Because a hidden RPI order can execute outside the organic BBO, the last-traded price can temporarily move outside that BBO. Users should account for this when using the last-traded price to set or trigger stop, trailing-stop, or other conditional orders.
The BBO and mark price are calculated from the organic order book only.
Trading rules
Order behavior
Every RPI maker order is post-only. OKX rejects an RPI maker order that would cross a non-RPI order.
Every accepted RPI order is matchable, and no organic order needs to exist first. RPI orders can trade once accepted, so makers must actively manage all live RPI orders.
Spacing rules
An RPI maker order must satisfy at least one of two independent spacing conditions:
- Level spacing: The gap between the RPI bid and RPI ask contains at least rpiMinLevel organic price levels.
- Price band: The order is more than rpiMinPxBand from the opposite-side organic BBO.
Only organic price levels count toward rpiMinLevel. OKX configures rpiMinLevel and rpiMinPxBand for each business line and instrument. Retrieve the applicable values from GET /api/v5/public/instruments. The rule is checked when an order is placed or amended. Resting orders are not rechecked as the market moves.
Price rounding
rpiPxRound is an optional RPI maker-order parameter for placement and amendment. When set to true, OKX adjusts a bid down or an ask up to the best price that satisfies the spacing rules. The adjusted price is never more aggressive than the submitted price. The API response and order display show the adjusted price. OKX rejects the order if the adjusted price violates the instrument's price limit. The applicable highest buy limit (buyLmt) and lowest sell limit (sellLmt) are available from GET /api/v5/public/price-limit.
Example
Assume rpiMinLevel = 4 and rpiMinPxBand = 20 bps. The resting book is:
| Side | Price | Organic quantity | RPI quantity |
|---|---|---|---|
| Ask | 104 | — | 10,000 |
| Ask | 103 | — | — |
| Ask | 102 | 1 | — |
| Ask | 101 | 1 | — |
| — | — | — | — |
| Bid | 99 | 1 | — |
| Bid | 98 | 1 | — |
| Bid | 97 | 1 | 10,000 |
| Bid | 96 | 1 | — |
| Bid | 95 | 1 | — |
The organic BBO is 99 / 101, and the RPI orders rest at 97 / 104.
The example satisfies both conditions:
- Level spacing: Four organic price levels, 98, 99, 101, and 102, separate the RPI bid at 97 from the RPI ask at 104. This equals the assumed rpiMinLevel of four.
- Price band: A proposed bid at 100 is approximately 99 bps below the organic best ask at 101. The required minimum is 20 bps.
Only one condition is required.
If an RPI bid for 10,000 is submitted at 101, OKX rejects it when rpiPxRound is false because the bid crosses the organic best ask. When rpiPxRound is true, OKX adjusts the bid down to 100 and places it at that price.
Disclaimer
OKX reserves the right to adjust the mechanics of the Retail Price Improvement Program at any time, including but not limited to matching rules, speed bump parameters, spacing thresholds, and order-state notification behavior. This document reflects the program as currently designed and will be updated to reflect any material changes. Users should monitor the API changelog and this documentation for updates.
This document is provided for informational purposes only. It is not intended to provide any investment, tax, or legal advice, nor should it be considered an offer to purchase, sell, hold or offer any services relating to digital assets. Digital asset holdings, including stablecoins, involve a high degree of risk, can fluctuate greatly, and can even become worthless. Leveraged trading in digital assets magnifies both potential gains and potential losses and could result in the loss of your entire investment. Past performance is not indicative of future results. You should carefully consider whether trading or holding digital assets is suitable for you in light of your financial condition, particularly if considering the use of leverage. You are solely responsible for your trading strategies and decisions, and OKX is not responsible for any potential losses. Not all products and promotions are available in all regions. For more details, please refer to the OKX Terms of Service and Risk & Compliance Disclosure.
© 2026 OKX. All rights reserved.