curl --request POST \
--url https://whitebit.com/api/v4/trade-account/order \
--header 'Content-Type: application/json' \
--header 'X-TXC-APIKEY: <api-key>' \
--header 'X-TXC-PAYLOAD: <api-key>' \
--header 'X-TXC-SIGNATURE: <api-key>' \
--data '
{
"orderId": 3134995325,
"request": "{{request}}",
"nonce": 1594297865000,
"offset": 0,
"limit": 50
}
'import requests
url = "https://whitebit.com/api/v4/trade-account/order"
payload = {
"orderId": 3134995325,
"request": "{{request}}",
"nonce": 1594297865000,
"offset": 0,
"limit": 50
}
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({
orderId: 3134995325,
request: '{{request}}',
nonce: 1594297865000,
offset: 0,
limit: 50
})
};
fetch('https://whitebit.com/api/v4/trade-account/order', 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/trade-account/order",
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([
'orderId' => 3134995325,
'request' => '{{request}}',
'nonce' => 1594297865000,
'offset' => 0,
'limit' => 50
]),
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/trade-account/order"
payload := strings.NewReader("{\n \"orderId\": 3134995325,\n \"request\": \"{{request}}\",\n \"nonce\": 1594297865000,\n \"offset\": 0,\n \"limit\": 50\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/trade-account/order")
.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 \"orderId\": 3134995325,\n \"request\": \"{{request}}\",\n \"nonce\": 1594297865000,\n \"offset\": 0,\n \"limit\": 50\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://whitebit.com/api/v4/trade-account/order")
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 \"orderId\": 3134995325,\n \"request\": \"{{request}}\",\n \"nonce\": 1594297865000,\n \"offset\": 0,\n \"limit\": 50\n}"
response = http.request(request)
puts response.read_body{
"records": [
{
"time": 1593342324.613711,
"fee": "0.00000419198",
"price": "0.00000701",
"amount": "598",
"id": 149156519,
"dealOrderId": 3134995325,
"clientOrderId": "customId11",
"role": 2,
"deal": "0.00419198",
"feeAsset": "USDT",
"rpi": true
}
],
"offset": 0,
"limit": 100
}{
"code": 30,
"message": "Validation failed",
"errors": {}
}{
"code": 30,
"message": "Validation failed",
"errors": {}
}Query executed order deals
The endpoint retrieves individual trade fills (deals) for a specific order, which may belong to a spot, margin, or futures market. Each deal represents a partial or full execution of the order against a counterparty. The response includes pagination and returns deal details such as price, amount, fee, and execution role (maker or taker).
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 records.length < limit. An empty records array means you have paged past the end; receiving exactly limit records does not guarantee that another page exists.
An unknown or not-owned orderId is not an error. The endpoint always returns HTTP 200 with the paged-list envelope; a non-matching orderId simply filters down to an empty records array.
The endpoint can retrieve data not older than 6 months from the current month. For older data, use the Report on the History page. An order older than this window returns an empty records array even when the order was filled.
curl --request POST \
--url https://whitebit.com/api/v4/trade-account/order \
--header 'Content-Type: application/json' \
--header 'X-TXC-APIKEY: <api-key>' \
--header 'X-TXC-PAYLOAD: <api-key>' \
--header 'X-TXC-SIGNATURE: <api-key>' \
--data '
{
"orderId": 3134995325,
"request": "{{request}}",
"nonce": 1594297865000,
"offset": 0,
"limit": 50
}
'import requests
url = "https://whitebit.com/api/v4/trade-account/order"
payload = {
"orderId": 3134995325,
"request": "{{request}}",
"nonce": 1594297865000,
"offset": 0,
"limit": 50
}
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({
orderId: 3134995325,
request: '{{request}}',
nonce: 1594297865000,
offset: 0,
limit: 50
})
};
fetch('https://whitebit.com/api/v4/trade-account/order', 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/trade-account/order",
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([
'orderId' => 3134995325,
'request' => '{{request}}',
'nonce' => 1594297865000,
'offset' => 0,
'limit' => 50
]),
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/trade-account/order"
payload := strings.NewReader("{\n \"orderId\": 3134995325,\n \"request\": \"{{request}}\",\n \"nonce\": 1594297865000,\n \"offset\": 0,\n \"limit\": 50\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/trade-account/order")
.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 \"orderId\": 3134995325,\n \"request\": \"{{request}}\",\n \"nonce\": 1594297865000,\n \"offset\": 0,\n \"limit\": 50\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://whitebit.com/api/v4/trade-account/order")
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 \"orderId\": 3134995325,\n \"request\": \"{{request}}\",\n \"nonce\": 1594297865000,\n \"offset\": 0,\n \"limit\": 50\n}"
response = http.request(request)
puts response.read_body{
"records": [
{
"time": 1593342324.613711,
"fee": "0.00000419198",
"price": "0.00000701",
"amount": "598",
"id": 149156519,
"dealOrderId": 3134995325,
"clientOrderId": "customId11",
"role": 2,
"deal": "0.00419198",
"feeAsset": "USDT",
"rpi": true
}
],
"offset": 0,
"limit": 100
}{
"code": 30,
"message": "Validation failed",
"errors": {}
}{
"code": 30,
"message": "Validation failed",
"errors": {}
}Used in these guides
- Copy Trading — mirror a lead trader’s orders into followers’ own accounts via OAuth-issued keys.
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
Identifier of the order to retrieve deals for.
3134995325
"{{request}}"
1594297865000
Number of records to skip. Default: 0.
x >= 00
Maximum number of records to return. Default: 50.
x >= 150
Was this page helpful?