curl --request POST \
--url https://whitebit.com/api/v4/trade-account/executed-history \
--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",
"clientOrderId": "customId11",
"startDate": 1593233939,
"endDate": 1593233939,
"offset": 0,
"limit": 50,
"request": "{{request}}",
"nonce": 1594297865000
}
'import requests
url = "https://whitebit.com/api/v4/trade-account/executed-history"
payload = {
"market": "BTC_USDT",
"clientOrderId": "customId11",
"startDate": 1593233939,
"endDate": 1593233939,
"offset": 0,
"limit": 50,
"request": "{{request}}",
"nonce": 1594297865000
}
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',
clientOrderId: 'customId11',
startDate: 1593233939,
endDate: 1593233939,
offset: 0,
limit: 50,
request: '{{request}}',
nonce: 1594297865000
})
};
fetch('https://whitebit.com/api/v4/trade-account/executed-history', 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/executed-history",
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',
'clientOrderId' => 'customId11',
'startDate' => 1593233939,
'endDate' => 1593233939,
'offset' => 0,
'limit' => 50,
'request' => '{{request}}',
'nonce' => 1594297865000
]),
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/executed-history"
payload := strings.NewReader("{\n \"market\": \"BTC_USDT\",\n \"clientOrderId\": \"customId11\",\n \"startDate\": 1593233939,\n \"endDate\": 1593233939,\n \"offset\": 0,\n \"limit\": 50,\n \"request\": \"{{request}}\",\n \"nonce\": 1594297865000\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/executed-history")
.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 \"clientOrderId\": \"customId11\",\n \"startDate\": 1593233939,\n \"endDate\": 1593233939,\n \"offset\": 0,\n \"limit\": 50,\n \"request\": \"{{request}}\",\n \"nonce\": 1594297865000\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://whitebit.com/api/v4/trade-account/executed-history")
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 \"clientOrderId\": \"customId11\",\n \"startDate\": 1593233939,\n \"endDate\": 1593233939,\n \"offset\": 0,\n \"limit\": 50,\n \"request\": \"{{request}}\",\n \"nonce\": 1594297865000\n}"
response = http.request(request)
puts response.read_bodyQuery executed order history
The endpoint retrieves executed order history for all trading types — spot, margin, and futures — across all markets. Can be filtered by a single market if needed. Results are ordered by trade time, newest first.
Rate limit: 12000 requests/10 sec.
Requests with limit values above 100 return large payloads. Use high limits only when necessary and ensure the client application can handle large response sizes.
The endpoint can retrieve data not older than 6 months from the current month. For older data, use the Report on the History page.
This endpoint supports pagination. Use limit (default: 50, max: 500) and offset (default: 0) to page through results. The response does not include a total field — detect the last page when fewer than limit records are returned (sum the records across all markets when no market filter is set). An empty response means you have paged past the end; receiving exactly limit records does not guarantee that another page exists.
For B2B accounts, canceled orders are not recorded in the history. To obtain canceled-order data, contact support or the assigned account manager.
curl --request POST \
--url https://whitebit.com/api/v4/trade-account/executed-history \
--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",
"clientOrderId": "customId11",
"startDate": 1593233939,
"endDate": 1593233939,
"offset": 0,
"limit": 50,
"request": "{{request}}",
"nonce": 1594297865000
}
'import requests
url = "https://whitebit.com/api/v4/trade-account/executed-history"
payload = {
"market": "BTC_USDT",
"clientOrderId": "customId11",
"startDate": 1593233939,
"endDate": 1593233939,
"offset": 0,
"limit": 50,
"request": "{{request}}",
"nonce": 1594297865000
}
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',
clientOrderId: 'customId11',
startDate: 1593233939,
endDate: 1593233939,
offset: 0,
limit: 50,
request: '{{request}}',
nonce: 1594297865000
})
};
fetch('https://whitebit.com/api/v4/trade-account/executed-history', 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/executed-history",
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',
'clientOrderId' => 'customId11',
'startDate' => 1593233939,
'endDate' => 1593233939,
'offset' => 0,
'limit' => 50,
'request' => '{{request}}',
'nonce' => 1594297865000
]),
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/executed-history"
payload := strings.NewReader("{\n \"market\": \"BTC_USDT\",\n \"clientOrderId\": \"customId11\",\n \"startDate\": 1593233939,\n \"endDate\": 1593233939,\n \"offset\": 0,\n \"limit\": 50,\n \"request\": \"{{request}}\",\n \"nonce\": 1594297865000\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/executed-history")
.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 \"clientOrderId\": \"customId11\",\n \"startDate\": 1593233939,\n \"endDate\": 1593233939,\n \"offset\": 0,\n \"limit\": 50,\n \"request\": \"{{request}}\",\n \"nonce\": 1594297865000\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://whitebit.com/api/v4/trade-account/executed-history")
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 \"clientOrderId\": \"customId11\",\n \"startDate\": 1593233939,\n \"endDate\": 1593233939,\n \"offset\": 0,\n \"limit\": 50,\n \"request\": \"{{request}}\",\n \"nonce\": 1594297865000\n}"
response = http.request(request)
puts response.read_bodyUsed in these guides
- Copy Trading — mirror a lead trader’s orders into followers’ own accounts via OAuth-issued keys.
- Embedded Trading sub-account integration — managed sub-accounts, fee-share, and partner onboarding.
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
Look up by custom client order identifier. When supplied, the endpoint switches to single-order lookup mode and returns the matching order's deal history. Returns 422 with "OrderHistory was not found." if no order matches on the calling account.
"customId11"
Start date in Unix-time format
1593233939
End date in Unix-time format
1593233939
Starting line index (OFFSET). Default: 0, Min: 0
0
LIMIT is a special clause used to limit records a particular query can return. Default: 50, Min: 1, Max: 500
1 <= x <= 50050
"{{request}}"
1594297865000
Response
Executed order history. Response shape depends on whether the market filter is provided: with market filter returns a flat array; without market filter returns an object keyed by market name.
- object[]
- object
Unique deal identifier assigned by the matching engine.
Custom order identifier supplied in the original order request. Returns an empty string when not specified.
Unix timestamp of the deal execution, with microsecond precision.
Order side that produced the deal. Possible values: buy, sell.
buy, sell Execution role in the deal. 1 = maker (order was resting on the book), 2 = taker (order matched immediately).
Executed quantity in base (stock) currency, regardless of order direction.
Execution price per unit in quote currency.
Total deal value in quote (money) currency. Equals amount * price.
Fee charged for the deal, denominated in the asset specified by feeAsset.
Identifier of the parent order that produced the deal.
Currency ticker of the asset used to pay the trading fee.
Was this page helpful?