What Is an RPI Order?
Disclaimer: This FAQ Page is for general information and educational purposes only. It does not constitute legal terms or any form of legal agreement between you and Binance. It should not be construed as financial, legal or other professional advice. The information on this page may be outdated. For legal terms applicable to Futures and Options Trading Services, please refer to the Terms of Use, the Exchange Rules (including the Exchange Procedures) and the Clearing Rules (including the Clearing Procedures) which come into effect on 5 January 2026. Additional terms and conditions will also be set out in the Contract Specifications applicable to the relevant Derivatives contract.
The RPI order (Retail Price Improvement Order) is a special type of order, which is designed to be matched exclusively with non-algorithmic orders. Thus, it provides targeted market liquidity and better execution price to retail users. It features:
- Targeted order matching: Match exclusively with non-algorithmic orders, and don't match with any orders submitted via API.
- Low execution priority in match engine: Be filled only after all non-RPI orders at the same price level have been executed.
- Post-Only: Passive maker order execution, never match with orders already on the book.
- Order book visibility: Shown on trading page, while hidden from API.
How to place RPI orders?
- All users can place RPI orders.
- RPI orders can be submitted via REST API or WebSocket API, along with order_type = "LIMIT" and time_in_force = "RPI". For detailed information, please refer to the documents:
- RPI orders are available for selected USDⓈ-M symbols only.
- If the values of key "PermissionSets" contain "RPI", RPI orders are supported for the symbol. The data could be fetched by Exchange Info via REST API.
- If attempting to submit RPI orders on an unsupported symbol, you will receive the following error code and message:
{
"code": -4188,
"msg": "This symbol is not in symbol white list."
}

- RPI orders are subject to a dedicated RPI commission rate.
- This additional commission is applied to each RPI execution and charged on top of the standard maker fee for the corresponding symbol.
- RPI commission rate (and Standard maker fees) can be retrieved using the User Commission Rate REST API for supported symbols.
Example: If Market Maker A’s standard maker fee is -0.005%, the final fee rate for an RPI order will be 0%.
- Binance reserves the right to adjust the RPI commission rate at its sole discretion based on market conditions.
Order matching
- In the match engine, RPI orders match exclusively with non-algorithmic orders, and don't match with any orders submitted via REST API or WebSocket API.
- RPI orders are filled only after all non-RPI orders at the same price level have been executed.
- RPI orders are post-only by default.
Trading rule
RPI orders are available to both classic trading account and Portfolio Margin Account. It's supported to place and cancel RPI orders.
- Order modification is not supported yet.
Other than different order matching rules, RPI orders function the same as normal limit orders, including margin requirements, minimum or maximum order size, price limits, etc.
RPI orders are not available to algo or strategy orders, including conditional, stop orders etc.
RPI orders cannot cross non-RPI orders on the other side. When there are only RPI orders on the other side, cross is allowed while they won't be matched against each other.
Example 1:
The order book is illustrated as below. When:
- A new RPI buy order is submitted whose price is 100, it'll be accepted.
- A new RPI buy order is submitted whose price is 101, it'll be accepted.
- A new RPI buy order is submitted whose price is 102, it'll be rejected. Because there is a non-RPI order at Ask2.
Order Book | ||
| Level | Price | Quantity |
| Ask2 | 102 | 25 |
| Ask1 | 100 (RPI) | 15 |
| Bid1 | 99 (RPI) | 10 |
| Bid2 | 98 | 20 |
Order book on the trading page:
- When there is a cross:
- Crossed RPI orders are hidden from the order book on the trading page. However, it's still active in the match engine and ready to be executed according to the rules.
- Non-crossed RPI orders are visible with no special tag.
Example 2:
The order book is illustrated as below. Crossed RPI orders are hidden and not executed against each other.
| Level | Price | Quantity | Visible |
| Ask4 | 1,005 | 20 | Yes |
| Ask3 | 1,003 (RPI) | 15 | Yes |
| Ask2 | 1,001 (RPI) | 10 | No |
| Ask1 | 999 (RPI) | 5 | No |
| Buy1 | 1,002 (RPI) | 10 | No |
| Buy2 | 1,000 (RPI) | 20 | No |
| Buy3 | 998 | 25 | Yes |
| Buy4 | 997 (RPI) | 30 | Yes |
In order book data/stream in API, all RPI orders are excluded.
Changes to endpoints and streams in API
Market data
REST API
| Name | HTTP Request | Change | Response |
| Order Book | GET /fapi/v1/depth | RPI orders are excluded | |
| Recent Trade List | GET /fapi/v1/trades | New column "IsRPITrade" = true | [ "isRPITrade": true } |
| Old Trades Lookup | GET /fapi/v1/historicalTrades | [ "isRPITrade": true } | |
| Compressed/Aggregate Trades List | GET /fapi/v1/aggTrades | RPI trades are aggregated, but no special tag | GET /fapi/v1/aggTrades |
| Symbol Order Book Ticker | GET /fapi/v1/ticker/bookTicker | RPI orders are excluded |
WebSocket API
| Name | Method | Change |
| Order Book | depth | RPI orders are excluded |
| Symbol Order Book Ticker | ticker.book |
WebSocket market streams
| Name | Stream Name | Change |
| Aggregate Trade Streams | <symbol>@aggTrade | RPI trades are aggregated, but no special tag |
| Individual Symbol Book Ticker Streams | <symbol>@bookTicker | RPI orders are excluded |
| All Book Tickers Stream | !bookTicker | |
| Partial Book Depth Streams | <symbol>@depth<levels> <symbol>@depth<levels>@500ms <symbol>@depth<levels>@100ms | |
| Different Book Depth Streams | <symbol>@depth <symbol>@depth@500ms <symbol>@depth@100ms |




























