---
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'
- `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-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`
- **2021-10-25** `a484ce871a72` — 3 breaking, 36 info
  - for the `query` request parameter `recvWindow`, the format changed from no format to `int64`
  - for the `query` request parameter `timestamp`, the format changed from no format to `int64`
  - the `orders/items/` response's property type changed from no type to `object` for status `200`
  - for the `query` request parameter `limitIcebergQty`, the format was generalized from `float` to `double`
  - …35 more

[Change 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/042dad2ebffe/schema)
