Exit a position
sell_tradeExit an open position at the bid (current_bid_cents), or rest a limit exit that holds no money. No bid: a market sell cannot. A closed trade answers its terminal state. route=best may split: fills lists each leg. route=kalshi sells at Kalshi's bid. contract_note on every exit of a non-Kalshi fill. dry_run=true sells nothing (a limit exit shows crosses_now). Selling is never gated by a membership. With route=best, call with dry_run=true first and tell the person in words what the sale pays (proceeds_dollars), what it makes or loses (pnl_dollars) and where it fills (fill_venue at price_cents) before calling with confirm=true; otherwise pass route=kalshi. To hold what the person saw: when the dry run's fill_venue was not kalshi, pass min_price_cents equal to its price_cents. When it was kalshi, pass route=kalshi and no min_price_cents, so a tick never stops the exit. confirm=true and a fresh idempotency_key, except dry_run. live=true sells on Kalshi. poly_intl=true sells on Polymarket International (not US). Pass one. Default is paper. This server places paper trades only: a call with live or poly_intl is refused (live_not_hosted).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| live | No | Kalshi sell. Not poly_intl. | |
| side | No | ||
| route | No | Default best. | |
| ticker | No | ||
| confirm | No | REQUIRED to sell: true. Not with dry_run. | |
| dry_run | No | Preview; sells nothing. | |
| token_id | No | poly_intl CLOB token. | |
| trade_id | No | From get_positions. | |
| contracts | No | ||
| poly_intl | No | Polymarket International sell. Not live, not US. | |
| expires_at | No | ISO time a gtc order stops resting. | |
| time_in_force | No | gtc (default) rests up to 365 days; ioc and fok fill now or come back canceled. | |
| idempotency_key | No | REQUIRED to sell: a fresh UUID v4. Not with dry_run. | |
| min_price_cents | No | Market sells: refuse a bid below this (server-enforced). | |
| limit_price_cents | No | A LIMIT exit at this price or better. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fills | No | ||
| notes | No | ||
| order | No | ||
| route | No | ||
| trade | No | ||
| filled | No | ||
| placed | No | ||
| status | No | ||
| venues | No | ||
| dry_run | No | ||
| web_url | No | ||
| trade_id | No | ||
| contracts | No | ||
| rule_note | No | ||
| expires_at | No | ||
| fill_venue | No | ||
| order_type | No | ||
| route_note | No | ||
| crosses_now | No | ||
| pnl_dollars | No | ||
| price_cents | No | ||
| route_reason | No | ||
| contract_note | No | ||
| time_in_force | No | ||
| already_closed | No | ||
| proceeds_dollars | No | ||
| limit_price_cents | No | ||
| kalshi_price_cents | No | ||
| price_improvement_cents | No |