BrainResearchHub
Independent research on prediction markets, perpetual futures, and trading infrastructure

Reduce-Only Orders and Time-in-Force on Polymarket Perps: GTC, IOC, FOK Explained

Ais Fang· perps · Updated October 2026

Order types are risk controls wearing API syntax. The differences sound academic until a fill partially completes, or a “close” order opens new exposure, or your maker order accidentally takes — each preventable by one flag you didn’t set. Here’s the complete execution vocabulary on Polymarket Perps: three time-in-force values, two behavior tags, and when each earns its place.

What order types does Polymarket Perps support?

Limit and market-style orders with three time-in-force values: GTC (good-till-cancelled — rests until filled or cancelled), IOC (immediate-or-cancel — fills what it can now, cancels the rest), and FOK (fill-or-kill — fills entirely now or not at all). Two behavior tags on top: post-only (GTC orders — rejected if they would take liquidity, guaranteeing maker status) and reduce-only (closing orders that cannot increase exposure). The official behavior docs cover the flags; the maker/taker economics behind them are in maker vs taker.

What each one is actually for

GTC — the default for making: resting liquidity at your price. Risk: stale orders linger (see worst-case margin — resting orders count toward margin). Pairs with post-only when maker status matters.

IOC — entries where partial fill is acceptable: take what’s at your price now, drop the rest. The default for urgency without desperation. Partial fills need position-size accounting in your bot (see the execution component).

FOK — all-or-nothing exits and arbitrage legs: the cross-venue arb needs both legs or neither — a half-filled arb leg is an unhedged position. FOK prices that guarantee in.

Post-only — maker-fee economics and queue position without accidental taker fills: rejected outright if it would match now. The tool for quote bots (see maker strategy).

Reduce-only — the safety tag for closes: a reduce-only sell on a 3- contract long cannot sell more than 3 — it can never flip you short. Use it on every automated close; the kill switch design assumes it (flatten loops re-submitting reduce-only orders are idempotent because of this flag).

The bot-use-case matrix

Action TIF Tag Why
Market-making quote GTC post-only maker status guaranteed, accidental takes impossible
Urgent entry, partial ok IOC — take available liquidity, don’t chase
Arb leg / exact exit FOK — both legs or neither; all-or-nothing exits
Automated close GTC/IOC reduce-only can never open new exposure
Laddered accumulation GTC — rests at levels; mind the margin worst-case

The two classic mistakes

Market order into a thin book. Market-style orders walk levels without a price cap — the slippage is in the book-reading guide. Prefer IOC/FOK with a limit price: same urgency, bounded damage.

Closing without reduce-only. A close order sized from stale position data (reconnect gap, partial fill elsewhere — see the websocket pattern) can over-close into a flip. Reduce-only makes the flag the guard, not your data freshness.

FAQ

What time-in-force options exist on Polymarket Perps? GTC (rests until cancelled), IOC (fills what it can immediately, cancels the rest), and FOK (fills entirely or not at all) — with post-only (maker-guaranteed) and reduce-only (close-capped) tags on top.

When should I use FOK instead of IOC? When partial fills break the trade’s logic: arbitrage legs (one leg without the other is unhedged risk — see the arb guide) and exact-size exits. IOC suits entries where partial exposure is fine.

What does post-only do? Rejects a GTC order if it would execute immediately against existing liquidity — guaranteeing you’re a maker. Quote bots use it to protect maker economics: see maker strategy.

Why use reduce-only for closing orders? It caps the order at your current position size — no data-staleness or double-close bug can flip you into a new position. Automated closes and kill-switch flatten loops should always carry it (see kill switch design).

Do resting orders affect my margin? Yes — the worst-case margin check counts position plus all resting orders (see why orders get rejected), so GTC ladders consume margin headroom until cancelled.

Educational content, not financial advice. Not affiliated with Polymarket. Last updated October 2026.