curl --request POST \
--url https://whitebit.com/api/v4/market/fee \
--header 'X-TXC-APIKEY: <api-key>' \
--header 'X-TXC-PAYLOAD: <api-key>' \
--header 'X-TXC-SIGNATURE: <api-key>'import requests
url = "https://whitebit.com/api/v4/market/fee"
headers = {
"X-TXC-APIKEY": "<api-key>",
"X-TXC-PAYLOAD": "<api-key>",
"X-TXC-SIGNATURE": "<api-key>"
}
response = requests.post(url, 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>'
}
};
fetch('https://whitebit.com/api/v4/market/fee', 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/market/fee",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://whitebit.com/api/v4/market/fee"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("X-TXC-APIKEY", "<api-key>")
req.Header.Add("X-TXC-PAYLOAD", "<api-key>")
req.Header.Add("X-TXC-SIGNATURE", "<api-key>")
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/market/fee")
.header("X-TXC-APIKEY", "<api-key>")
.header("X-TXC-PAYLOAD", "<api-key>")
.header("X-TXC-SIGNATURE", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://whitebit.com/api/v4/market/fee")
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>'
response = http.request(request)
puts response.read_body{
"error": null,
"taker": "0.1",
"maker": "0.1",
"futures_taker": "0.035",
"futures_maker": "0.01",
"rpi_maker_fee_premium": "0.015",
"futures_rpi_maker_fee_premium": "0.01",
"custom_fee": {
"BTC_PERP": {
"taker": "0.055",
"maker": "0.01"
},
"ETH_PERP": {
"taker": "0.055",
"maker": "0.01"
}
}
}{
"code": 30,
"message": "Validation failed",
"errors": {}
}Query market fees
Returns the account’s default spot and futures maker and taker fees, plus any custom per-market overrides.
The maker and taker fields represent default spot trading fees. The futures_maker and futures_taker fields represent default futures trading fees. The custom_fee object lists per-market overrides, keyed by market name.
The rpi_maker_fee_premium and futures_rpi_maker_fee_premium fields carry the Retail Price Improvement (RPI) premiums applied on top of the maker rates when RPI orders execute. The endpoint returns them for every account, regardless of whether the RPI order mode is enabled.
The system calculates the effective futures fee as the lower value between the user-specific custom fee and the market-specific fee.
When the market fee is lower than the assigned custom fee, the system returns the market fee.
Example: If the custom futures taker fee equals 0.026 and the market fee equals 0.02, the response returns 0.02.
curl --request POST \
--url https://whitebit.com/api/v4/market/fee \
--header 'X-TXC-APIKEY: <api-key>' \
--header 'X-TXC-PAYLOAD: <api-key>' \
--header 'X-TXC-SIGNATURE: <api-key>'import requests
url = "https://whitebit.com/api/v4/market/fee"
headers = {
"X-TXC-APIKEY": "<api-key>",
"X-TXC-PAYLOAD": "<api-key>",
"X-TXC-SIGNATURE": "<api-key>"
}
response = requests.post(url, 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>'
}
};
fetch('https://whitebit.com/api/v4/market/fee', 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/market/fee",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://whitebit.com/api/v4/market/fee"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("X-TXC-APIKEY", "<api-key>")
req.Header.Add("X-TXC-PAYLOAD", "<api-key>")
req.Header.Add("X-TXC-SIGNATURE", "<api-key>")
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/market/fee")
.header("X-TXC-APIKEY", "<api-key>")
.header("X-TXC-PAYLOAD", "<api-key>")
.header("X-TXC-SIGNATURE", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://whitebit.com/api/v4/market/fee")
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>'
response = http.request(request)
puts response.read_body{
"error": null,
"taker": "0.1",
"maker": "0.1",
"futures_taker": "0.035",
"futures_maker": "0.01",
"rpi_maker_fee_premium": "0.015",
"futures_rpi_maker_fee_premium": "0.01",
"custom_fee": {
"BTC_PERP": {
"taker": "0.055",
"maker": "0.01"
},
"ETH_PERP": {
"taker": "0.055",
"maker": "0.01"
}
}
}{
"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)).
Query Parameters
Optional. Currently ignored by the API — all market fees are returned regardless of the value provided. Retained for backward compatibility. Example: BTC_USDT
"BTC_USDT"
Response
Successful response
null
Taker fee percentage
"0.1"
Maker fee percentage
"0.1"
Default effective futures taker fee percentage. The system returns the lower value between the custom fee (if assigned) and the default market fee.
"0.035"
Default effective futures maker fee percentage. The system returns the lower value between the custom fee (if assigned) and the default market fee.
"0.01"
Additional maker fee percentage applied on top of the maker rate when a Retail Price Improvement (RPI) order executes on a spot or margin market. The effective RPI maker rate equals maker plus rpi_maker_fee_premium. The field returns null when no premium is configured for the account; a premium configured as zero is returned as "0", not null.
"0.015"
Additional maker fee percentage applied on top of the futures_maker rate when a Retail Price Improvement (RPI) order executes on a futures market. The effective futures RPI maker rate equals futures_maker plus futures_rpi_maker_fee_premium. The field returns null when no premium is configured for the account; a premium configured as zero is returned as "0", not null.
"0.01"
Per-market fee overrides, keyed by market name. Each value contains the market's custom taker and maker rates.
Show child attributes
Show child attributes
{ "BTC_PERP": { "taker": "0.055", "maker": "0.01" }, "ETH_PERP": { "taker": "0.055", "maker": "0.01" } }
Was this page helpful?