---
title: "Margin Account New OTO (TRADE)"
method: POST
path: "/sapi/v1/margin/order/oto"
tags: ["Margin"]
---

# Margin Account New OTO (TRADE)

`POST /sapi/v1/margin/order/oto`

Post a new `OTO` order for margin account:
- An `OTO` (One-Triggers-the-Other) is an order list comprised of 2 orders
- The first order is called the working order and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.
- The second order is called the pending order. It can be any order type except for `MARKET` orders using parameter `quoteOrderQty`. The pending order is only placed on the order book when the working order gets fully filled.
- If either the working order or the pending order is cancelled individually, the other order in the order list will also be canceled or expired.
- When the order list is placed, if the working order gets immediately fully filled, the placement response will show the working order as `FILLED` but the pending order will still appear as `PENDING_NEW`. You need to query the status of the pending order again to see its updated status.
- OTOs add 2 orders to the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.

Weight(UID): 6

## Query parameters

- `symbol` string, required
- `isIsolated` 'TRUE' | 'FALSE'
- `listClientOrderId` string
- `newOrderRespType` 'ACK' | 'RESULT' | 'FULL'
- `sideEffectType` 'NO_SIDE_EFFECT' | 'MARGIN_BUY'
- `selfTradePreventionMode` 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'NONE'
- `autoRepayAtCancel` boolean
- `workingType` 'LIMIT' | 'LIMIT_MAKER', required
- `workingSide` 'BUY' | 'SELL', required
- `workingClientOrderId` string
- `workingPrice` number, double, required
- `workingQuantity` number, double, required
- `workingIcebergQty` number, double, required
- `workingTimeInForce` 'GTC' | 'IOC' | 'FOK'
- `pendingType` 'LIMIT' | 'MARKET' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT' | 'LIMIT_MAKER', required
- `pendingSide` 'BUY' | 'SELL', required
- `pendingClientOrderId` string
- `pendingPrice` number, double
- `pendingStopPrice` number, double
- `pendingTrailingDelta` number, double
- `pendingQuantity` number, double, required
- `pendingIcebergQty` number, double
- `pendingTimeInForce` 'GTC' | 'IOC' | 'FOK'
- `timestamp` integer, required
- `signature` string, required

## Response `200`

OTO order

- object
  - `orderListId` integer, required
  - `contingencyType` string, required
  - `listStatusType` string, required
  - `listOrderStatus` string, required
  - `listClientOrderId` string, required
  - `transactionTime` integer, required
  - `symbol` string, required
  - `isIsolated` boolean, required
  - `orders` object[], required
    - `symbol` string, required
    - `orderId` integer, required
    - `clientOrderId` string, required
  - `orderReports` object[], required
    - `symbol` string, required
    - `orderId` integer, required
    - `orderListId` integer, required
    - `clientOrderId` string, required
    - `transactTime` integer, required
    - `price` string, required
    - `origQty` string, required
    - `executedQty` string, required
    - `cummulativeQuoteQty` string, required
    - `status` string, required
    - `timeInForce` string, required
    - `type` string, required
    - `side` string, required
    - `selfTradePreventionMode` string, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized Request

---

[API](https://skmtc.net/binance/apis/binance-public-spot-api.md) · [All operations](https://skmtc.net/binance/apis/binance-public-spot-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/binance/binance-public-spot-api/revisions/0dd2f133e12d/schema)
