NAV
Java Python Go C++

Upcoming Changes

Delist instId request parameter in WS order operation channels

Last update: November 20, 2025

To reduce the latency of WS order operations, the following order operation channels have added the request parameter instIdCode, and the request parameter instId will be delisted in early February 2026.

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 February 2026.

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

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": []
  }
  ]
}

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 February 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