Immediate-or-cancel and fill-or-kill (t=ioc, t=fok), by exchange
An immediate-or-cancel order fills what it can right away and cancels the rest. A fill-or-kill order fills the whole quantity right away or cancels all of it. Neither one rests on the book. In an Autoview command you ask for them with t=ioc or t=fok:
b=buy t=ioc fp=64000 q=0.01What actually goes to the exchange depends on the connection. On most it is a limit order at your price with that time in force. On a few it becomes a market order, and on a few it is a normal limit order that stays on the book. This page lists each one. It comes from the Autoview integrations code that runs on our servers today. We read the code; we did not send these orders live for this guide.
A limit order at your price, with IOC or FOK
These send your limit price together with the exchange's own immediate-or-cancel or fill-or-kill setting, so nothing fills at a worse price than yours:
- Alpaca.
- Binance spot, Binance USD-M futures, Binance COIN-M futures and Binance US.
- Bitfinex. Sent as Bitfinex's IOC or FOK order type.
- Bitget, spot and futures. On futures, only for a plain limit order (see the trigger section below).
- Bybit.
- Charles Schwab.
- Crypto.com.
- Deribit.
- Gemini. Sent as an exchange limit order with the immediate-or-cancel or fill-or-kill option.
- Kraken spot.
- Kraken Futures. Sent as Kraken's ioc or fok order type with your limit price.
- KuCoin spot.
- OKX. If your
t=list holds bothmarketandioc, OKX gets its optimal-limit IOC type with no price instead. - TradeStation.
- Tradovate. On a single order. On an
&bracket line the entry goes out without a time in force, so IOC or FOK is dropped there.
Only immediate-or-cancel works
- Hyperliquid.
t=iocis a limit order with Hyperliquid's IOC. There is no fill-or-kill path, sot=fokgoes out as a normal good-til-cancelled limit order that can rest on the book. - KuCoin futures.
t=iocis a limit order with IOC.t=fokis refused before anything is sent, with the error "Fill or Kill is not supported".
Exchanges where t=ioc and t=fok become market orders
- Gate.io, spot and futures. Autoview sets the time in force and then switches the order to market. The price field is still filled in, but treat the order as a market order: your price is not a limit you can count on. On a spot buy, the quantity is converted to the quote currency as for any market buy.
- OANDA. Sent as a market order with FOK or IOC and no price. A
dt=on the same line replaces that time in force with good-til-date (see order expiry with dt=).
If you want a price cap on these, use a plain limit order with fp= or p= instead of t=ioc or t=fok.
Exchanges where t=ioc and t=fok are ignored
These connections have no immediate-or-cancel or fill-or-kill path. The order goes out as an ordinary limit order and rests on the book until it fills or you cancel it:
- BitMEX.
- Capital.com (a limit working order).
- Coinbase Advanced (a good-til-cancelled limit, or good-til-date with
dt=).
This is the case to watch. You expect the unfilled part to disappear, and instead it waits. Pair the order with a cleanup alert, for example cancel the oldest or newest orders, or use dt= where it is supported.
With a px= trigger
- Bitfinex. A
px=line becomes a stop limit, which replaces the IOC or FOK type. - Bitget futures. A
px=orts=plan order carries no IOC or FOK setting. - Hyperliquid. A
px=trigger order has no time in force. - Gate.io. A
px=trigger order keepst=iocon the order it places.t=fokis not carried, so that order is a good-til-cancelled limit. - Gemini. A
px=line becomes an exchange stop limit and Autoview still attaches the immediate-or-cancel or fill-or-kill option. Gemini's API documentation says "No options can be applied to stop-limit orders at this time" and that an unsupported option gets the order rejected. We did not send this live, so leavet=iocandt=fokoff apx=line on Gemini.
The trigger orders (px=) by exchange page lists what a px= line sends on each connection and which settings stay on it. Run the line with d=1 first to see what Autoview would send.
The tif= parameter
On Alpaca, Bybit, Crypto.com, Kraken spot and OANDA, a tif=ioc or tif=fok sets the time in force directly and wins over t=. An unknown tif= value is refused before anything is sent. On Alpaca, a fractional share quantity can only go out as a day order, so tif=ioc, tif=fok, t=ioc or t=fok on a fractional stock quantity is refused before anything is sent. Use a whole-share quantity for IOC or FOK on Alpaca stocks. The command reference explains how tif= combines with the order type.
Test it once before you rely on it
Add d=1 to see how Autoview reads your line without sending it, then place one small order on a test account and check the exchange's order history for the time in force it shows. For maker-only orders, see the companion page on post-only orders by exchange, and for orders that show only part of their size, hidden and iceberg orders by exchange. Your log shows what the exchange answered.