NAV
Java Python Go C++

Upcoming Changes

OKX trading fee scheme update

Last updated: 2025/11/3

OKX will update the trading fee scheme for improved fee differentiation across tiers. Please refer to the announcement for more details.

Instruments endpoint/channel

Response Parameters

Parameter Type Description
groupId String Instrument trading fee group ID
Spot:
1: Spot USDT
2: Spot USDC & Crypto
3: Spot TRY
4: Spot EUR
5: Spot BRL
7: Spot AED
8: Spot AUD
9: Spot USD
10: Spot SGD
11: Spot zero
12: Spot group one
13: Spot group two
14: Spot group three

Expiry futures:
1: Expiry futures crypto-margined
2: Expiry futures USDT-margined
3: Expiry futures USDC-margined
4: Expiry futures premarket
5: Expiry futures group one
6: Expiry futures group two

Perpetual futures:
1: Perpetual futures crypto-margined
2: Perpetual futures USDT-margined
3: Perpetual futures USDC-margined
4: Perpetual futures group one
5: Perpetual futures group two

Options:
1: Options crypto-margined
2: Options USDC-margined

instType and groupId should be used together to determine a trading fee group. Users should use this endpoint together with fee rates endpoint to get the trading fee of a specific symbol.

Some enum values may not apply to you; the actual return values shall prevail.

Response Example

{
    "code":"0",
    "msg":"",
    "data":[
      {
            "alias": "",
            "auctionEndTime": "",
            "baseCcy": "BTC",
            "category": "1",
            "ctMult": "",
            "ctType": "",
            "ctVal": "",
            "ctValCcy": "",
            "contTdSwTime": "1704876947000",
            "expTime": "",
            "futureSettlement": false,
            "groupId": "13"
            "instFamily": "",
            "instId": "BTC-USDT",
            "instType": "SPOT",
            "lever": "10",
            "listTime": "1606468572000",
            "lotSz": "0.00000001",
            "maxIcebergSz": "9999999999.0000000000000000",
            "maxLmtAmt": "1000000",
            "maxLmtSz": "9999999999",
            "maxMktAmt": "1000000",
            "maxMktSz": "",
            "maxStopSz": "",
            "maxTriggerSz": "9999999999.0000000000000000",
            "maxTwapSz": "9999999999.0000000000000000",
            "minSz": "0.00001",
            "optType": "",
            "openType": "call_auction",
            "preMktSwTime": "",
            "quoteCcy": "USDT",
            "tradeQuoteCcyList": [
                "USDT"
            ],
            "settleCcy": "",
            "state": "live",
            "ruleType": "normal",
            "stk": "",
            "tickSz": "0.1",
            "uly": "",
            "instIdCode": 1000000000
        }
    ]
}

Get fee rates endpoint

Response Parameters

Parameter Type Description
feeGroup Array of objects Fee groups.
Applicable to SPOT/MARGIN/SWAP/FUTURES/OPTION
> taker String Taker fee
> maker String Maker fee
> groupId String Instrument trading fee group ID

instType and groupId should be used together to determine a trading fee group. Users should use this endpoint together with instruments endpoint to get the trading fee of a specific symbol.

Response Example

{
  "code": "0",
  "msg": "",
  "data": [{
    "category": "1", //Deprecated
    "delivery": "",
    "exercise": "",
    "feeGroup": [
        {
            "taker": "0.001",
            "maker": "0.0001",
            "groupId": "1"
        },
        {
            "taker": "0.01",
            "maker": "0.001",
            "groupId": "2"
        },
        {
            "taker": "0.1",
            "maker": "0.01",
            "groupId": "3"
        },
        ......
    ],
    "instType": "SPOT",
    "level": "lv1",
    "maker": "-0.0008", //Deprecated
    "makerU": "", //Deprecated
    "makerUSDC": "", //Deprecated
    "taker": "-0.001", //Deprecated
    "takerU": "", //Deprecated
    "takerUSDC": "", //Deprecated
    "ruleType": "normal",
    "ts": "1608623351857",
    "fiat": []
  }
  ]
}

2026-04-07

Trading Fee Tier Requirement Changes

Endpoint or Channel Before After (Current) Error Code Change
SBE trades channel and books-l2-tbt channel >= VIP6 >= VIP4 64003 unchanged
JSON books-l2-tbt channel >= VIP6 >= VIP4 60029 → 64003
JSON books50-l2-tbt channel >= VIP5 >= VIP4 60030 → 64003
JSON fills channel >= VIP6 >= VIP4 60029 → 64003

Deprecate instId Request Parameter in WS Order Operation Channels

To reduce latency in WS order operations, the instId request parameter from the following order operation channels has been deprecated.

Request Parameters

Parameter Type Required Description
instId String - Instrument ID
Deprecated, will be ignored

Note: You can use the Get instruments endpoint to map instIdCode to instId.

KYC Level 2 Required for Placing Orders

OKX will require users to complete KYC Level 2 or above in order to place orders via WebSocket and REST API endpoints. Users who have not completed KYC Level 2 will receive error code 59113 when attempting to place orders. This requirement applies to live trading only — demo trading is not affected.

Affected Endpoints

Endpoint or Channel Description
WS / Place order Place a single order
WS / Place multiple orders Place orders in batch
POST / Place order Place a single order
POST / Place multiple orders Place orders in batch

Error Code

Error Code Description
59113 KYC level 2 or above is required for placing orders

Notes:

Bills Management Updates

Request parameters

Parameter Type Required Description
type String No Bill type
Please refer to Get bill types for the list of available types

2026-03-26

Request Parameters

Parameter Type Required Description
instId String - Instrument ID
Delisted. Any value provided will be ignored.

Note: Users can use the Get instruments interface to map instIdCode to instId.

2026-02-12

Parameter Type Description
instCategory String The category of the instrument’s base currency (the first part of the instrument ID). For example, for BTC-USDT-SWAP, the instCategory refers to the category of BTC.
1: Crypto

2026-01-15

Rename XAUT Perpetual Contract

To enhance your trading experience, OKX renamed XAUTUSDT perpetual to XAUUSDT perpetual and the trading of XAUTUSDT perpetual will be suspended from 8:05 am to 8:25 am on Jan 15, 2026 (UTC), more details can be found in announcement details.

The parameters to be renamed are as follows:

Value Type instId uly instFamily ctValCcy
Before Renaming XAUT-USDT-SWAP XAUT-USDT XAUT-USDT XAUT
After Renaming XAU-USDT-SWAP XAU-USDT XAU-USDT XAU

2025-11-20

Request Parameter Name Type Required Description
> instIdCode Integer Conditional Instrument ID code.
If both instId and instIdCode are provided, instIdCode takes precedence.
> instId String Conditional Instrument ID
Will be deprecated on March 2026.

Note: You can use the Get instruments interface to map instIdCode to instId.

2025-09-03

2025-08-20

Unified USD orderbook revamp

To revamp unified USD orderbook, more details for the first type users, more details for the second type users. OKX delisted the Crypto-USDC trading pairs and upgrade the Crypto-USD trading pairs for accessibility to all users.

Users are categorized into two types based on their country or region, with varying solutions for each. If you get valid data from GET /api/v5/account/instruments?instType=SPOT&instId=BTC-USD, you belong to the first type users, if you get an empty array [] data from that URL, you belong to the second type.

Example 1: Placing an order with BTC-USDC:

Type Before upgrading After upgrading
Operation Trading BTC-USDC Trading BTC-USDC
Request fields for "op": "order" First option:
{
     "instId": "BTC-USDC",
     "tradeQuoteCcy": ""
}

Second option:
{
    "instId": "BTC-USD",
    "tradeQuoteCcy": "USDC"
}
Only option:
{
    "instId": "BTC-USD",
    "tradeQuoteCcy": "USDC"
}
Response body from
Get instruments (private)
[
    {
         "instId": "BTC-USDC",
         "tradeQuoteCcyList": ["USDC"],
         ......
    },
    {
         "instId": "BTC-USD",
         "tradeQuoteCcyList": ["USD", "USDC"],
         ......
    }
]
[
{
         "instId": "BTC-USD",
         "tradeQuoteCcyList": ["USD", "USDC"],
         ......
    }
]

2025-08-14

2025-07-08

Open API supports Unified USD Orderbook

For more details, please refer to Unified USD Orderbook FAQ

Parameter Type Required Description
tradeQuoteCcy String No The quote currency used for trading. Only applicable to SPOT.
The default value is the quote currency of the instId, for example: for BTC-USD, the default is USD.
Parameter Type Description
tradeQuoteCcyList Array of strings List of quote currencies available for trading, e.g. ["USD", "USDC"].
Parameter Type Description
tradeQuoteCcy String The quote currency used for trading.

Trades channel adds seqId field

Parameter Type Description
data Array Subscribed data
> seqId Integer Sequence ID of the current message.

Note: The seqId may be the same for different trade updates that occur at the same time.

2025-07-02

Parameter Type Description
notes String Notes

2025-06-26

2025-06-24

2025-05-28

2025-04-17

Error code Error Message
59515 You are currently not on the custody whitelist. Please contact customer service for assistance.
59516 Please create the Copper custody funding account first.
59517 Please create the Komainu custody funding account first.
59518 You can’t create a sub-account using the API; please use the app or web.
59519 You can’t use this function/feature while it's frozen, due to: {freezereason}

2024-09-18