NAV
Java Python Go C++

Upcoming Changes

2026-04-14

OKX launches perpetual-style expiry futures (X-Perps)

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

2025-12-15

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-08-27

Fiat buy/sell is supported.

2025-07-24

Parameter Type Required Description
toAddrType String No Address type
1: wallet address, email, phone, or login account name
2: UID (only applicable for dest=3)

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.

Fiat

Fiat deposits and withdrawals are supported.

2025-07-02

Before

Parameter Type Required Description
after String No Pagination of data to return records earlier than the requested ts, Unix timestamp format in milliseconds, e.g. 1597026383085
before String No Pagination of data to return records newer than the requested ts, Unix timestamp format in milliseconds, e.g. 1597026383085

After

Parameter Type Required Description
after String No Pagination of data to return records earlier than the requested ts or billId, Unix timestamp format in milliseconds, e.g. 1597026383085
before String No Pagination of data to return records newer than the requested ts or billId, Unix timestamp format in milliseconds, e.g. 1597026383085
pagingType String No PagingType
1: Timestamp of the bill record
2: Bill ID of the bill record
The default is 1
Parameter Type Description
notes String Notes

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}

2025-02-12

Parameter Type Description
notionalUsdForBorrow String Notional value for Borrow in USD
Applicable to Spot mode/Multi-currency margin/Portfolio margin
notionalUsdForSwap String Notional value of positions for Perpetual Futures in USD
Applicable to Multi-currency margin/Portfolio margin
notionalUsdForFutures String Notional value of positions for Expiry Futures in USD
Applicable to Multi-currency margin/Portfolio margin
notionalUsdForOption String Notional value of positions for Option in USD
Applicable to Spot mode/Multi-currency margin/Portfolio margin

2025-01-14

Withdrawal API adjustment for EEA entity users

Due to compliance requirements, EEA entity users need to pass in the field rcvrInfo when making on-chain/lightning withdrawal.

Parameters Type Required Description
rcvrInfo Object Conditional Recipient information
For the specific entity users to do on-chain withdrawal/lightning withdrawal, this information is required.
> walletType String Yes Wallet Type
exchange: Withdraw to exchange wallet
If withdrawal to the exchange wallet, relevant information about the recipient must be provided.
For the exchange wallet belongs to business recipient, rcvrFirstName may input the company name, rcvrLastName may input "N/A"
> exchId String Conditional Exchange ID
You can query supported exchanges through the endpoint of Get exchange list (public)
If the exchange is not in the exchange list, fill in '0' in this field.
> rcvrFirstName String Conditional Receiver's first name, e.g. Bruce
> rcvrLastName String Conditional Receiver's last name, e.g. Wayne

Withdraw assets to the exchange wallet

If users withdraw assets to the exchange wallet, they need to provide recipient information.

Withdraw assets to the private wallet

You can't withdraw to a private wallet via API. Please withdraw via our app or website instead.

Other API adjustment

Parameter Type Description
note String Withdrawal note
Parameter Type Description
state String 17: Pending response from Travel Rule vendor

Newly added error code

Error code Error Message
58239 You can't withdraw to a private wallet via API. Please withdraw via our app or website instead.

2024-12-30

2024-09-19

Parameter Type Description
enableSpotBorrow Boolean Whether borrow is allowed or not in Spot mode
true: Enabled
false: Disabled
spotBorrowAutoRepay Boolean Whether auto-repay is allowed or not in Spot mode
true: Enabled
false: Disabled
Parameter Type Description
ccy String Currency
Parameter Type Description
isTradeBorrowMode String Whether borrowing currency automatically
true
false
Only applicable to trigger order, trailing order and twap order

2024-09-18