---
title: "New OCO (TRADE)"
method: POST
path: "/api/v3/order/oco"
tags: ["Trade"]
---

# New OCO (TRADE)

`POST /api/v3/order/oco`

Send in a new OCO

- Price Restrictions:
  - `SELL`: Limit Price > Last Price > Stop Price
  - `BUY`: Limit Price < Last Price < Stop Price
- Quantity Restrictions:
    - Both legs must have the same quantity
    - `ICEBERG` quantities however do not have to be the same
- Order Rate Limit
    - `OCO` counts as 2 orders against the order rate limit.

Weight(IP): 1

## Query parameters

- `symbol` string, required
- `listClientOrderId` string
- `side` 'SELL' | 'BUY', required
- `quantity` number, double, required
- `limitClientOrderId` string
- `limitStrategyId` integer
- `limitStrategyType` integer
- `price` number, double, required
- `limitIcebergQty` number, double
- `trailingDelta` number, double
- `stopClientOrderId` string
- `stopPrice` number, double, required
- `stopStrategyId` integer
- `stopStrategyType` integer
- `stopLimitPrice` number, double
- `stopIcebergQty` number, double
- `stopLimitTimeInForce` 'GTC' | 'FOK' | 'IOC'
- `newOrderRespType` 'ACK' | 'RESULT' | 'FULL'
- `selfTradePreventionMode` 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'NONE'
- `recvWindow` integer
- `timestamp` integer, required
- `signature` string, required

## Response `200`

New OCO details

- object
  - `orderListId` integer, required
  - `contingencyType` string, required
  - `listStatusType` string, required
  - `listOrderStatus` string, required
  - `listClientOrderId` string, required
  - `transactionTime` integer, required
  - `symbol` string, 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
    - `stopPrice` string, required
    - `workingTime` string, required
    - `selfTradePreventionMode` string, required

## Other responses

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

## Changes

- **2023-09-02** `6622e0c15100` — 1 info
  - added the new optional `query` request parameter `selfTradePreventionMode`
- **2023-04-26** `042dad2ebffe` — 2 info
  - added the required property `orderReports/items/selfTradePreventionMode` to the response with the `200` status
  - added the required property `orderReports/items/workingTime` to the response with the `200` status
- **2022-08-15** `f9cbbeb40e31` — 4 info
  - added the new optional `query` request parameter `limitStrategyId`
  - added the new optional `query` request parameter `limitStrategyType`
  - added the new optional `query` request parameter `stopStrategyId`
  - added the new optional `query` request parameter `stopStrategyType`
- **2022-04-25** `f008d48ec623` — 1 info
  - added the new optional `query` request parameter `trailingDelta`
- **2022-03-04** `f1d8926e955a` — 1 warning
  - deleted the `query` request parameter `sideEffectType`

[Full history](https://skmtc.dev/binance/apis/binance-public-spot-api/changes/api/v3/order/oco/post.md)

---

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