Reduce-only protects the closing intent
A reduce-only order can decrease an existing position but cannot increase it. If a position has already closed, the remaining reduce-only order should not open a position in the opposite direction.
This is useful when multiple exit orders are active at the same time.
Post-only protects the liquidity intent
A post-only limit order must enter the order book as resting liquidity. If it would match immediately, the venue usually cancels or adjusts it according to its rules.
Post-only is used when receiving maker treatment matters more than immediate execution.
They solve different problems
Reduce-only controls the effect on your position. Post-only controls how the order enters the market. An order may use both instructions when supported.
Flags constrain intent but do not guarantee an outcome
Reduce-only should prevent an order from increasing exposure, but the exact behavior after another order fills can vary. A now-oversized reduce-only order may be resized, rejected, or cancelled. Post-only should avoid immediate execution as a taker, but it can be cancelled if it would cross the book.12
Treat both flags as safeguards around an order, not substitutes for checking current position size, side, price, and fill state. Automated clients should reconcile the remaining position after every partial fill.1
The race between related orders
Suppose a long position has both a take-profit sell and a stop sell. If one closes the position, the other must not open a short later. Reduce-only protection and linked-order cancellation can prevent that reversal, but an automated client should still verify that the sibling order was cancelled.1
Post-only has a different race. The market can move while the order travels to the venue, causing an order intended to rest to cross the book on arrival. The venue may cancel it rather than charge taker execution.2