curl --request POST \
--url https://whitebit.com/api/v4/oco-orders \
--header 'Content-Type: application/json' \
--header 'X-TXC-APIKEY: <api-key>' \
--header 'X-TXC-PAYLOAD: <api-key>' \
--header 'X-TXC-SIGNATURE: <api-key>' \
--data '
{
"market": "BTC_USDT",
"offset": 0,
"limit": 100
}
'import requests
url = "https://whitebit.com/api/v4/oco-orders"
payload = {
"market": "BTC_USDT",
"offset": 0,
"limit": 100
}
headers = {
"X-TXC-APIKEY": "<api-key>",
"X-TXC-PAYLOAD": "<api-key>",
"X-TXC-SIGNATURE": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-TXC-APIKEY': '<api-key>',
'X-TXC-PAYLOAD': '<api-key>',
'X-TXC-SIGNATURE': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({market: 'BTC_USDT', offset: 0, limit: 100})
};
fetch('https://whitebit.com/api/v4/oco-orders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://whitebit.com/api/v4/oco-orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'market' => 'BTC_USDT',
'offset' => 0,
'limit' => 100
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-TXC-APIKEY: <api-key>",
"X-TXC-PAYLOAD: <api-key>",
"X-TXC-SIGNATURE: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://whitebit.com/api/v4/oco-orders"
payload := strings.NewReader("{\n \"market\": \"BTC_USDT\",\n \"offset\": 0,\n \"limit\": 100\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-TXC-APIKEY", "<api-key>")
req.Header.Add("X-TXC-PAYLOAD", "<api-key>")
req.Header.Add("X-TXC-SIGNATURE", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://whitebit.com/api/v4/oco-orders")
.header("X-TXC-APIKEY", "<api-key>")
.header("X-TXC-PAYLOAD", "<api-key>")
.header("X-TXC-SIGNATURE", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"market\": \"BTC_USDT\",\n \"offset\": 0,\n \"limit\": 100\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://whitebit.com/api/v4/oco-orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-TXC-APIKEY"] = '<api-key>'
request["X-TXC-PAYLOAD"] = '<api-key>'
request["X-TXC-SIGNATURE"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"market\": \"BTC_USDT\",\n \"offset\": 0,\n \"limit\": 100\n}"
response = http.request(request)
puts response.read_body[
{
"id": 117703764513,
"stop_loss": {
"orderId": 117703764514,
"clientOrderId": "",
"market": "BTC_USDT",
"side": "buy",
"type": "margin stop limit",
"timestamp": 1594605801.49815,
"dealMoney": "0",
"dealStock": "0",
"amount": "2.241379",
"left": "2.241379",
"dealFee": "0",
"post_only": false,
"status": "OPEN",
"stp": "no",
"reduceOnly": false,
"mtime": 1662478154.941582,
"price": "19928.79",
"activation_price": "29928.79",
"activation_condition": "gte",
"activated": 0
},
"take_profit": {
"orderId": 117703764515,
"clientOrderId": "",
"market": "BTC_USDT",
"side": "buy",
"type": "margin limit",
"timestamp": 1662478154.941582,
"dealMoney": "0",
"dealStock": "0",
"amount": "0.635709",
"left": "0.635709",
"dealFee": "0",
"post_only": false,
"status": "OPEN",
"stp": "no",
"reduceOnly": false,
"mtime": 1662478154.941582,
"price": "9928.79"
}
}
]{
"code": 30,
"message": "Validation failed",
"errors": {}
}{
"code": 30,
"message": "Validation failed",
"errors": {}
}Query unexecuted (active) OCO orders
The endpoint returns active (unexecuted) OCO orders for the authenticated account. Each OCO order contains a stop_loss and take_profit leg. When one leg executes, the system cancels the other automatically. Use the optional market parameter to filter results.
Rate limit: 12000 requests/10 sec.
This endpoint supports pagination. Use limit (default: 50) and offset (default: 0) to page through results. The response does not include a total field — detect the last page when fewer than limit OCO orders are returned. An empty array means you have paged past the end; receiving exactly limit orders does not guarantee that another page exists.
curl --request POST \
--url https://whitebit.com/api/v4/oco-orders \
--header 'Content-Type: application/json' \
--header 'X-TXC-APIKEY: <api-key>' \
--header 'X-TXC-PAYLOAD: <api-key>' \
--header 'X-TXC-SIGNATURE: <api-key>' \
--data '
{
"market": "BTC_USDT",
"offset": 0,
"limit": 100
}
'import requests
url = "https://whitebit.com/api/v4/oco-orders"
payload = {
"market": "BTC_USDT",
"offset": 0,
"limit": 100
}
headers = {
"X-TXC-APIKEY": "<api-key>",
"X-TXC-PAYLOAD": "<api-key>",
"X-TXC-SIGNATURE": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-TXC-APIKEY': '<api-key>',
'X-TXC-PAYLOAD': '<api-key>',
'X-TXC-SIGNATURE': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({market: 'BTC_USDT', offset: 0, limit: 100})
};
fetch('https://whitebit.com/api/v4/oco-orders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://whitebit.com/api/v4/oco-orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'market' => 'BTC_USDT',
'offset' => 0,
'limit' => 100
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-TXC-APIKEY: <api-key>",
"X-TXC-PAYLOAD: <api-key>",
"X-TXC-SIGNATURE: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://whitebit.com/api/v4/oco-orders"
payload := strings.NewReader("{\n \"market\": \"BTC_USDT\",\n \"offset\": 0,\n \"limit\": 100\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-TXC-APIKEY", "<api-key>")
req.Header.Add("X-TXC-PAYLOAD", "<api-key>")
req.Header.Add("X-TXC-SIGNATURE", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://whitebit.com/api/v4/oco-orders")
.header("X-TXC-APIKEY", "<api-key>")
.header("X-TXC-PAYLOAD", "<api-key>")
.header("X-TXC-SIGNATURE", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"market\": \"BTC_USDT\",\n \"offset\": 0,\n \"limit\": 100\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://whitebit.com/api/v4/oco-orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-TXC-APIKEY"] = '<api-key>'
request["X-TXC-PAYLOAD"] = '<api-key>'
request["X-TXC-SIGNATURE"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"market\": \"BTC_USDT\",\n \"offset\": 0,\n \"limit\": 100\n}"
response = http.request(request)
puts response.read_body[
{
"id": 117703764513,
"stop_loss": {
"orderId": 117703764514,
"clientOrderId": "",
"market": "BTC_USDT",
"side": "buy",
"type": "margin stop limit",
"timestamp": 1594605801.49815,
"dealMoney": "0",
"dealStock": "0",
"amount": "2.241379",
"left": "2.241379",
"dealFee": "0",
"post_only": false,
"status": "OPEN",
"stp": "no",
"reduceOnly": false,
"mtime": 1662478154.941582,
"price": "19928.79",
"activation_price": "29928.79",
"activation_condition": "gte",
"activated": 0
},
"take_profit": {
"orderId": 117703764515,
"clientOrderId": "",
"market": "BTC_USDT",
"side": "buy",
"type": "margin limit",
"timestamp": 1662478154.941582,
"dealMoney": "0",
"dealStock": "0",
"amount": "0.635709",
"left": "0.635709",
"dealFee": "0",
"post_only": false,
"status": "OPEN",
"stp": "no",
"reduceOnly": false,
"mtime": 1662478154.941582,
"price": "9928.79"
}
}
]{
"code": 30,
"message": "Validation failed",
"errors": {}
}{
"code": 30,
"message": "Validation failed",
"errors": {}
}Authorizations
The public WhiteBIT API key.
Base64-encoded JSON request body.
HMAC-SHA512 signature of the payload, hex-encoded. Computed as hex(HMAC-SHA512(payload, api_secret)).
Body
Filter by specific market. Example: BTC_USDT
If not specified, returns OCO orders for all markets.
"BTC_USDT"
Number of records to skip for pagination.
0 <= x <= 42949672950
Maximum number of records to return per page.
1 <= x <= 100100
"{{request}}"
1594297865000
Response
Successful response - returns array of active OCO orders
OCO order identifier
117703764513
Stop loss order details. Includes the activation_price / activation_condition / activated trigger fields.
Show child attributes
Show child attributes
Take profit order details. The trigger fields are omitted on this leg.
Show child attributes
Show child attributes
Was this page helpful?