fees.v1.FeeService
GetSpotFeeRates
Get effective maker and taker fee rates, the rates an order reserves its fee at, and the components of the effective rates for the authenticated caller's root account or selected subaccount.
Request
curl --request POST \ \
--url 'https://api.testnet.polyester.com/fees.v1.FeeService/GetSpotFeeRates' \
--header 'Content-Type: application/json' \
--header 'Connect-Protocol-Version: 1' \
--data '{
"subaccountId": "6789012345678",
"symbolId": [
1
]
}'Responses
{
"feeRates": [
{
"breakdown": {
"accountDiscounts": [
{
"allMarkets": false,
"effectiveFrom": "2025-01-01T00:00:00Z",
"effectiveTo": "2025-01-01T00:00:00Z",
"makerDiscountPercent": "example",
"takerDiscountPercent": "example"
}
],
"marketMultiplier": {
"effectiveFrom": "2025-01-01T00:00:00Z",
"effectiveTo": "2025-01-01T00:00:00Z",
"makerMultiplierPercent": "example",
"takerMultiplierPercent": "example"
},
"referralDiscount": {
"allMarkets": false,
"effectiveFrom": "2025-01-01T00:00:00Z",
"effectiveTo": "2025-01-01T00:00:00Z",
"makerDiscountPercent": "example",
"takerDiscountPercent": "example"
},
"tierMakerFeeRatePercent": "example",
"tierTakerFeeRatePercent": "example"
},
"makerFeeRatePercent": "0.09",
"nextChangeAt": "2025-01-01T00:00:00Z",
"postOnlyReserveFeeRatePercent": "example",
"reserveFeeRatePercent": "example",
"symbolId": 1,
"takerFeeRatePercent": "0.03",
"vipTier": 1
}
]
}fees.v1.GetSpotFeeRatesRequestfees.v1.GetSpotFeeRatesResponseOptional public subaccount ID. When omitted, subaccount-scoped API keys use their bound subaccount; other callers use their authenticated root account.
Optional unique spot market identifier filter. When empty, all currently listed, non-disabled spot markets are returned. At most 100 identifiers may be requested.
Stable numeric spot market identifier.
Effective maker fee rate encoded as a base-10 percentage string without a percent sign. Values are between -100 and 100 inclusive. It is computed from breakdown as SpotFeeRateBreakdown describes.
Effective taker fee rate encoded as a non-negative base-10 percentage string without a percent sign. Values are between 0 and 100 inclusive. It is computed from breakdown as SpotFeeRateBreakdown describes.
VIP tier used to resolve these rates, in the inclusive range 0 through 10.
Fee rate a new order on this market reserves its fee at when the fee is paid in the quote asset, encoded as a non-negative base-10 percentage string without a percent sign, between 0 and 100 inclusive. It is the highest maker or taker rate of every VIP tier under the fee schedule in force on this market, so it is at least the effective rates and discounts never lower it. A buy limit order that pays its fee in the quote asset reserves N + F, computed in units of 10^-18 of the quote asset whatever the quote asset's own decimals: N is its price times its quantity rounded up to 10^-18, and F is N times this rate rounded up to 10^-18. It has sufficient quote balance when N + F is at most the available quote balance, compared in the same 10^-18 units; other order validation and market limits still apply. A post-only limit order reserves at post_only_reserve_fee_rate_percent instead, and a buy sized by a quote amount reserves at the lower of this rate and taker_fee_rate_percent. Fills charge the effective rate, and the rest of the reserve is released as the order fills or ends.
Fee rate a new post-only limit order on this market reserves its fee at when the fee is paid in the quote asset, encoded as a non-negative base-10 percentage string without a percent sign, between 0 and 100 inclusive: the highest maker rate of every VIP tier under the fee schedule in force on this market, as reserve_fee_rate_percent describes.
Maker fee rate of the account's VIP tier under the fee policy in force, before the market multiplier and discounts, encoded as a base-10 percentage string without a percent sign. Values are between -100 and 100 inclusive; a negative rate is a rebate.
Taker fee rate of the account's VIP tier under the fee policy in force, before the market multiplier and discounts, encoded as a non-negative base-10 percentage string without a percent sign, between 0 and 100 inclusive.
Maker rate multiplier encoded as a base-10 percentage string without a percent sign, between 0 and 100 inclusive with at most two decimals.
Taker rate multiplier encoded as a base-10 percentage string without a percent sign, between 0 and 100 inclusive with at most two decimals.
Time from which the fee schedule is in force, inclusive.
Time at which the fee schedule ends, exclusive. Omitted when it has no scheduled end.
Maker fee discount encoded as a base-10 percentage string without a percent sign, with at most two decimals. It lowers a positive maker rate only.
Taker fee discount encoded as a base-10 percentage string without a percent sign, with at most two decimals.
True when the discount applies to every spot market; false when it applies to selected markets, this one included. A referral discount always applies to every spot market.
Time from which the discount is in force, inclusive.
Time at which the discount ends, exclusive. Omitted when it has no scheduled end.
Maker fee discount encoded as a base-10 percentage string without a percent sign, with at most two decimals. It lowers a positive maker rate only.
Taker fee discount encoded as a base-10 percentage string without a percent sign, with at most two decimals.
True when the discount applies to every spot market; false when it applies to selected markets, this one included. A referral discount always applies to every spot market.
Time from which the discount is in force, inclusive.
Time at which the discount ends, exclusive. Omitted when it has no scheduled end.
Earliest scheduled time at which a component of these rates starts or ends: a fee schedule or discount in breakdown ending, or a VIP tier, fee policy, fee schedule or discount not yet in force starting. The effective and reserve rates can change then, or stay the same. Omitted when no change is scheduled.
| Key | HTTP status | Connect code | Error | When |
|---|---|---|---|---|
| unauthenticated | 401 | unauthenticated | Unauthenticated | Authentication required. |
| permission-denied | 403 | permission_denied | Permission Denied | Permission denied. |
| invalid-argument | 400 | invalid_argument | Invalid Argument | Invalid argument. |
| not-found | 404 | not_found | Not Found | Not found. |
| unavailable | 503 | unavailable | Unavailable | Service unavailable. |