What you will accomplish
- Understand Quote.Trade’s built-in fill-or-kill behavior
- Submit one exact quantity without creating a resting order
- Know what happens when the full amount is unavailable
- Handle timeouts without sending a duplicate order
Before you begin
- An active Quote.Trade market
- The exact side, quantity, and price you are willing to trade
- Sufficient account margin or buying power
- The current app, API, or MCP order fields
You do not need to add a Binance timeInForce field. Quote.Trade applies fill-or-kill behavior to the order itself: the entire quantity fills immediately or nothing trades.
Choose the exact quantity and price
Enter the full quantity you want to trade and the price you are willing to accept. Because the order is fill-or-kill, Quote.Trade must be able to execute that entire quantity immediately at the accepted terms.
The order contains one exact side, quantity, and price.
Use the normal Quote.Trade order flow
Submit through the web app, POST /api/order, or the current MCP order tool. Use only the fields shown by the live interface or schema. Do not add timeInForce=FOK; fill-or-kill is already enforced by Quote.Trade.
The order reaches Quote.Trade as one normal order for the complete quantity.
Let Quote.Trade enforce fill-or-kill
If the full quantity can be executed immediately, the entire order fills. If the full quantity is unavailable, the order expires or rejects with no partial fill. The unfilled order does not remain open or rest on an exchange-side order book.
Either the complete quantity trades or the executed quantity is zero.
Do not split the order automatically
If a fill-or-kill order does not execute, do not silently break it into smaller child orders. A smaller quantity or different price is a new order decision and should be submitted only after the trader or strategy explicitly chooses the new terms.
One fill-or-kill instruction cannot turn into several unintended trades.
Verify the result
Check the order response and current position. A filled order should show the full requested quantity as executed. An expired or rejected order should show zero executed quantity and no position change from that request. This verification confirms the result; it is not what prevents a partial fill.
The final order and position state match either a full fill or no trade.
Resolve an unknown outcome before retrying
After a timeout or 5xx response, check the current order, position, account, and private events before sending another order. The original request may have filled even though the client did not receive the response.
No duplicate order is sent while the first result is still unknown.
Common problems and fixes
Why did the order not fill?
The full quantity may not have been available at the accepted price, the quote may have changed, or the account may not have had enough margin. Submit a new order only after choosing new terms.
Can a Quote.Trade order partially fill?
No. Quote.Trade orders are fill-or-kill: the entire quantity fills immediately or nothing trades.
Should I send timeInForce=FOK?
No. Use the documented Quote.Trade order fields. Fill-or-kill behavior is applied by the platform and does not require a caller-supplied timeInForce field.
The response timed out
Check the current order and position before retrying. Do not assume the order failed merely because the response was lost.
Answers before you continue
Can an unfilled order remain open?
No. An order that cannot fill completely does not remain as a resting exchange-side order.
What should I do if I still want to trade a smaller amount?
Choose the smaller quantity explicitly and submit it as a new fill-or-kill order.