Skip to main content

Account Endpoints

Account information (USER_DATA)​

GET /api/v3/account

Get current account information.

Weight: 20

Parameters:

NameTypeMandatoryDescription
omitZeroBalancesBOOLEANNODefault: false.
When set to true, emits only the non-zero balances of an account.
recvWindowDECIMALNOMaximum: 60000.
Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.
timestampLONGYESUnix timestamp used to sign the request, in milliseconds or microseconds. The value must reflect the current client time and is validated by the server for signed endpoints.

Data Source: Memory => Database

Response:

{
"makerCommission": 15,
"takerCommission": 15,
"buyerCommission": 0,
"sellerCommission": 0,
"commissionRates": {
"maker": "0.00150000",
"taker": "0.00150000",
"buyer": "0.00000000",
"seller": "0.00000000"
},
"canTrade": true,
"canWithdraw": true,
"canDeposit": true,
"brokered": false,
"requireSelfTradePrevention": false,
"preventSor": false,
"updateTime": 123456789,
"accountType": "SPOT",
"balances": [
{
"asset": "BTC",
"free": "4723846.89208129",
"locked": "0.00000000"
},
{
"asset": "LTC",
"free": "4763368.68006011",
"locked": "0.00000000"
}
],
"permissions": [
"SPOT"
],
"uid": 354937868
}

Query order (USER_DATA)​

GET /api/v3/order

Check an order's status.

Weight: 4

Parameters:

NameTypeMandatoryDescription
symbolSTRINGYES
orderIdLONGNO
origClientOrderIdSTRINGNO
recvWindowDECIMALNOMaximum: 60000.
Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.
timestampLONGYESUnix timestamp used to sign the request, in milliseconds or microseconds. The value must reflect the current client time and is validated by the server for signed endpoints.

Data Source: Memory => Database

  • Either orderId or origClientOrderId must be sent.
  • If both orderId and origClientOrderId are provided, the orderId is searched first, then the origClientOrderId from that result is checked against that order. If both conditions are not met the request will be rejected.
  • For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.

Response:

{
"symbol": "LTCBTC", // symbol.
"orderId": 1, // order Id.
"orderListId": -1, // This field will always have a value of -1 if not an order list.
"clientOrderId": "myOrder1", // client Order Id.
"price": "0.1", // price.
"origQty": "1.0", // orig Qty.
"executedQty": "0.0", // executed Qty.
"origQuoteOrderQty": "0.000000", // orig Quote Order Qty.
"cummulativeQuoteQty": "0.0", // cummulative Quote Qty.
"status": "NEW", // status.
"timeInForce": "GTC", // time In Force.
"type": "LIMIT", // type.
"side": "BUY", // side.
"stopPrice": "0.00000000", // Appears for STOP_LOSS, TAKE_PROFIT, STOP_LOSS_LIMIT, and TAKE_PROFIT_LIMIT orders.
"icebergQty": "0.00000000", // Appears only if the parameter icebergQty was sent in the request.
"time": 1499827319559, // time.
"updateTime": 1499827319559, // update Time.
"isWorking": true, // is Working.
"workingTime": 1499827319559, // working Time.
"selfTradePreventionMode": "NONE", // self Trade Prevention Mode.
"preventedMatchId": 0, // Appears only if the order expired due to STP.
"preventedQuantity": "1.200000", // Order quantity that expired due to STP.
"strategyId": 1, // Appears only if the strategyId parameter was provided upon order placement.
"strategyType": 1000000, // Appears only if the strategyType parameter was provided upon order placement.
"trailingDelta": 10, // Delta price change required before order activation.
"trailingTime": -1, // Time when the trailing order is now active and tracking price changes.
"usedSor": true, // Field that determines whether order used SOR.
"workingFloor": "SOR", // Determines whether the order is being filled by the SOR or by the order book.
"pegPriceType": "PRIMARY_PEG", // Price peg type. Only for pegged orders.
"pegOffsetType": "PRICE_LEVEL", // Price peg offset type. Only for pegged orders, if requested.
"pegOffsetValue": 5, // Price peg offset value. Only for pegged orders, if requested.
"peggedPrice": "87523.83710000", // Current price order is pegged at. Only for pegged orders, once determined.
"expiryReason": "INSUFFICIENT_LIQUIDITY" // Cause of the order's expiration. Appears when an order has expired.
}

Note: The payload above does not show all fields that can appear. Please refer to Conditional fields in Order Responses.

Current open orders (USER_DATA)​

GET /api/v3/openOrders

Get all open orders on a symbol. Careful when accessing this with no symbol.

Weight: 6 for a single symbol; 80 when the symbol parameter is omitted

Parameters:

NameTypeMandatoryDescription
symbolSTRINGNO
recvWindowDECIMALNOMaximum: 60000.
Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.
timestampLONGYESUnix timestamp used to sign the request, in milliseconds or microseconds. The value must reflect the current client time and is validated by the server for signed endpoints.

Data Source: Memory => Database

  • If the symbol is not sent, orders for all symbols will be returned in an array.

Response:

[
{
"symbol": "LTCBTC",
"orderId": 1,
"orderListId": -1, // Unless it's part of an order list, value will be -1
"clientOrderId": "myOrder1",
"price": "0.1",
"origQty": "1.0",
"executedQty": "0.0",
"origQuoteOrderQty": "0.000000",
"cummulativeQuoteQty": "0.0",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.00000000", // Appears for STOP_LOSS, TAKE_PROFIT, STOP_LOSS_LIMIT, and TAKE_PROFIT_LIMIT orders.
"icebergQty": "0.00000000", // Appears only if the parameter icebergQty was sent in the request.
"time": 1499827319559,
"updateTime": 1499827319559,
"isWorking": true,
"workingTime": 1499827319559,
"selfTradePreventionMode": "NONE",
"preventedMatchId": 0, // Appears only if the order expired due to STP.
"preventedQuantity": "1.200000", // Order quantity that expired due to STP.
"strategyId": 1, // Appears only if the strategyId parameter was provided upon order placement.
"strategyType": 1000000, // Appears only if the strategyType parameter was provided upon order placement.
"trailingDelta": 10, // Delta price change required before order activation.
"trailingTime": -1, // Time when the trailing order is now active and tracking price changes.
"usedSor": true, // Field that determines whether order used SOR.
"workingFloor": "SOR", // Determines whether the order is being filled by the SOR or by the order book.
"pegPriceType": "PRIMARY_PEG", // Price peg type. Only for pegged orders.
"pegOffsetType": "PRICE_LEVEL", // Price peg offset type. Only for pegged orders, if requested.
"pegOffsetValue": 5, // Price peg offset value. Only for pegged orders, if requested.
"peggedPrice": "87523.83710000", // Current price order is pegged at. Only for pegged orders, once determined.
"expiryReason": "INSUFFICIENT_LIQUIDITY" // Cause of the order's expiration. Appears when an order has expired.
}
]

Note: The payload above does not show all fields that can appear. Please refer to Conditional fields in Order Responses.

All orders (USER_DATA)​

GET /api/v3/allOrders

Get all account orders; active, canceled, or filled.

Weight: 20

Parameters:

NameTypeMandatoryDescription
symbolSTRINGYES
orderIdLONGNO
startTimeLONGNO
endTimeLONGNO
limitINTNODefault: 500; Maximum: 1000.
recvWindowDECIMALNOThe value cannot be greater than 60000.
Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.
timestampLONGYESUnix timestamp used to sign the request, in milliseconds or microseconds. The value must reflect the current client time and is validated by the server for signed endpoints.

Data Source: Database

  • If orderId is set, it will get orders >= that orderId. Otherwise most recent orders are returned.
  • For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.
  • If startTime and/or endTime provided, orderId is not required.
  • The time between startTime and endTime can't be longer than 24 hours.

Response:

[
{
"symbol": "LTCBTC",
"orderId": 1,
"orderListId": -1, // Unless it's part of an order list, value will be -1
"clientOrderId": "myOrder1",
"price": "0.1",
"origQty": "1.0",
"executedQty": "0.0",
"cummulativeQuoteQty": "0.0",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.00000000", // Appears for STOP_LOSS, TAKE_PROFIT, STOP_LOSS_LIMIT, and TAKE_PROFIT_LIMIT orders.
"icebergQty": "0.00000000", // Appears only if the parameter icebergQty was sent in the request.
"time": 1499827319559,
"updateTime": 1499827319559,
"isWorking": true,
"origQuoteOrderQty": "0.000000",
"workingTime": 1499827319559,
"selfTradePreventionMode": "NONE",
"preventedMatchId": 0, // Appears only if the order expired due to STP.
"preventedQuantity": "1.200000", // Order quantity that expired due to STP.
"strategyId": 1, // Appears only if the strategyId parameter was provided upon order placement.
"strategyType": 1000000, // Appears only if the strategyType parameter was provided upon order placement.
"trailingDelta": 10, // Delta price change required before order activation.
"trailingTime": -1, // Time when the trailing order is now active and tracking price changes.
"usedSor": true, // Field that determines whether order used SOR.
"workingFloor": "SOR", // Determines whether the order is being filled by the SOR or by the order book.
"pegPriceType": "PRIMARY_PEG", // Price peg type. Only for pegged orders.
"pegOffsetType": "PRICE_LEVEL", // Price peg offset type. Only for pegged orders, if requested.
"pegOffsetValue": 5, // Price peg offset value. Only for pegged orders, if requested.
"peggedPrice": "87523.83710000", // Current price order is pegged at. Only for pegged orders, once determined.
"expiryReason": "INSUFFICIENT_LIQUIDITY" // Cause of the order's expiration. Appears when an order has expired.
}
]

Note: The payload above does not show all fields that can appear. Please refer to Conditional fields in Order Responses.

Query Order list (USER_DATA)​

GET /api/v3/orderList

Retrieves a specific order list based on provided optional parameters.

Weight: 4

Parameters:

NameTypeMandatoryDescription
orderListIdLONGNOQuery order list by orderListId. orderListId or origClientOrderId must be provided.
origClientOrderIdSTRINGNOQuery order list by listClientOrderId. orderListId or origClientOrderId must be provided.
recvWindowDECIMALNOMaximum: 60000.
Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.
timestampLONGYESUnix timestamp used to sign the request, in milliseconds or microseconds. The value must reflect the current client time and is validated by the server for signed endpoints.

Data Source: Database

Response:

{
"orderListId": 27,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "h2USkA5YQpaXHPIrkd96xE",
"transactionTime": 1565245656253,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 4,
"clientOrderId": "qD1gy3kc3Gx0rihm9Y3xwS"
},
{
"symbol": "LTCBTC",
"orderId": 5,
"clientOrderId": "ARzZ9I00CPM8i3NhmU9Ega"
}
]
}

Query all Order lists (USER_DATA)​

GET /api/v3/allOrderList

Retrieves all order lists based on provided optional parameters.

Note that the time between startTime and endTime can't be longer than 24 hours.

Weight: 20

Parameters:

NameTypeMandatoryDescription
fromIdLONGNOIf supplied, neither startTime or endTime can be provided
startTimeLONGNO
endTimeLONGNO
limitINTNODefault: 500; Maximum: 1000.
recvWindowDECIMALNOMaximum: 60000.
Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.
timestampLONGYESUnix timestamp used to sign the request, in milliseconds or microseconds. The value must reflect the current client time and is validated by the server for signed endpoints.

Data Source: Database

Response:

[
{
"orderListId": 29,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "amEEAXryFzFwYF1FeRpUoZ",
"transactionTime": 1565245913483,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 4,
"clientOrderId": "oD7aesZqjEGlZrbtRpy5zB"
},
{
"symbol": "LTCBTC",
"orderId": 5,
"clientOrderId": "Jr1h6xirOxgeJOUuYQS7V3"
}
]
},
{
"orderListId": 28,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "hG7hFNxJV6cZy3Ze4AUT4d",
"transactionTime": 1565245913407,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 2,
"clientOrderId": "j6lFOfbmFMRjTYA7rRJ0LP"
},
{
"symbol": "LTCBTC",
"orderId": 3,
"clientOrderId": "z0KCjOdditiLS5ekAFtK81"
}
]
}
]

Query Open Order lists (USER_DATA)​

GET /api/v3/openOrderList

Weight: 6

Parameters:

NameTypeMandatoryDescription
recvWindowDECIMALNOMaximum: 60000.
Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.
timestampLONGYESUnix timestamp used to sign the request, in milliseconds or microseconds. The value must reflect the current client time and is validated by the server for signed endpoints.

Data Source: Memory -> Database

Response:

[
{
"orderListId": 31,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "wuB13fmulKj3YjdqWEcsnp",
"transactionTime": 1565246080644,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 4,
"clientOrderId": "r3EH2N76dHfLoSZWIUw1bT"
},
{
"symbol": "LTCBTC",
"orderId": 5,
"clientOrderId": "Cv1SnyPD3qhqpbjpYEHbd2"
}
]
}
]

Account trade list (USER_DATA)​

GET /api/v3/myTrades

Get trades for a specific account and symbol.

Weight:

ConditionWeight
Without orderId20
With orderId5

Parameters:

NameTypeMandatoryDescription
symbolSTRINGYES
orderIdLONGNOThis can only be used in combination with symbol.
startTimeLONGNO
endTimeLONGNO
fromIdLONGNOTradeId to fetch from. Default gets most recent trades.
limitINTNODefault: 500; Maximum: 1000.
recvWindowDECIMALNOMaximum: 60000.
Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.
timestampLONGYESUnix timestamp used to sign the request, in milliseconds or microseconds. The value must reflect the current client time and is validated by the server for signed endpoints.

Data Source: Memory => Database

Notes::

  • If fromId is set, it will get trades >= that fromId. Otherwise most recent trades are returned.
  • The time between startTime and endTime can't be longer than 24 hours.
  • These are the supported combinations of all parameters:
    • symbol
    • symbol + orderId
    • symbol + startTime
    • symbol + endTime
    • symbol + fromId
    • symbol + startTime + endTime
    • symbol+ orderId + fromId

Response:

[
{
"symbol": "BNBBTC",
"id": 28457,
"orderId": 100234,
"orderListId": -1,
"price": "4.00000100",
"qty": "12.00000000",
"quoteQty": "48.000012",
"commission": "10.10000000",
"commissionAsset": "BNB",
"time": 1499865549590,
"isBuyer": true,
"isMaker": false,
"isBestMatch": true
}
]

Query Unfilled Order Count (USER_DATA)​

GET /api/v3/rateLimit/order

Displays the user's unfilled order count for all intervals.

Weight: 40

Parameters:

NameTypeMandatoryDescription
recvWindowDECIMALNOMaximum: 60000.
Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.
timestampLONGYESUnix timestamp used to sign the request, in milliseconds or microseconds. The value must reflect the current client time and is validated by the server for signed endpoints.

Data Source: Memory

Response:

[
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 50,
"count": 0
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 160000,
"count": 0
}
]

Query Prevented Matches (USER_DATA)​

GET /api/v3/myPreventedMatches

Displays the list of orders that were expired due to STP.

These are the combinations supported:

  • symbol + preventedMatchId
  • symbol + orderId
  • symbol + orderId + fromPreventedMatchId (limit will default to 500)
  • symbol + orderId + fromPreventedMatchId + limit

Weight:

CaseWeight
If symbol is invalid2
Querying by preventedMatchId2
Querying by orderId20

Parameters:

NameTypeMandatoryDescription
symbolSTRINGYES
preventedMatchIdLONGNO
orderIdLONGNO
fromPreventedMatchIdLONGNO
limitINTNODefault: 500; Maximum: 1000.
recvWindowDECIMALNOMaximum: 60000.
Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.
timestampLONGYESUnix timestamp used to sign the request, in milliseconds or microseconds. The value must reflect the current client time and is validated by the server for signed endpoints.

Data Source: Database

Response:

[
{
"symbol": "BTCUSDT",
"preventedMatchId": 1,
"takerOrderId": 5,
"makerSymbol": "BTCUSDT",
"makerOrderId": 3,
"tradeGroupId": 1,
"selfTradePreventionMode": "EXPIRE_MAKER",
"price": "1.100000",
"makerPreventedQuantity": "1.300000",
"transactTime": 1669101687094
}
]

Query Allocations (USER_DATA)​

GET /api/v3/myAllocations

Retrieves allocations resulting from SOR order placement.

Weight: 20

Parameters:

NameTypeMandatoryDescription
symbolSTRINGYES
startTimeLONGNO
endTimeLONGNO
fromAllocationIdINTNO
limitINTNODefault: 500; Maximum: 1000.
orderIdLONGNO
recvWindowDECIMALNOMaximum: 60000.
Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.
timestampLONGYESUnix timestamp used to sign the request, in milliseconds or microseconds. The value must reflect the current client time and is validated by the server for signed endpoints.

Data Source: Database"

Supported parameter combinations:

ParametersResponse
symbolallocations from oldest to newest
symbol + startTimeoldest allocations since startTime
symbol + endTimenewest allocations until endTime
symbol + startTime + endTimeallocations within the time range
symbol + fromAllocationIdallocations by allocation ID
symbol + orderIdallocations related to an order starting with oldest
symbol + orderId + fromAllocationIdallocations related to an order by allocation ID

Note: The time between startTime and endTime can't be longer than 24 hours.

Response:

[
{
"symbol": "BTCUSDT",
"allocationId": 0,
"allocationType": "SOR",
"orderId": 1,
"orderListId": -1,
"price": "1.00000000",
"qty": "5.00000000",
"quoteQty": "5.00000000",
"commission": "0.00000000",
"commissionAsset": "BTC",
"time": 1687506878118,
"isBuyer": true,
"isMaker": false,
"isAllocator": false
}
]

Query Commission Rates (USER_DATA)​

GET /api/v3/account/commission

Get current account commission rates.

Weight: 20

Parameters:

NameTypeMandatoryDescription
symbolSTRINGYES
timestampLONGYESUnix timestamp used to sign the request, in milliseconds or microseconds. The value must reflect the current client time and is validated by the server for signed endpoints.

Data Source: Database

Response:

{
"symbol": "BTCUSDT",
// Commission rates on trades from the order.
"standardCommission": {
"maker": "0.00000010",
"taker": "0.00000020",
"buyer": "0.00000030",
"seller": "0.00000040"
},
// Special commission rates from the order.
"specialCommission": {
"maker": "0.01000000",
"taker": "0.02000000",
"buyer": "0.03000000",
"seller": "0.04000000"
},
// Tax commission rates for trades from the order.
"taxCommission": {
"maker": "0.00000112",
"taker": "0.00000114",
"buyer": "0.00000118",
"seller": "0.00000116"
},
// Discount commission when paying in BNB
"discount": {
"enabledForAccount": true,
"enabledForSymbol": true,
"discountAsset": "BNB",
"discount": "0.75000000" // Multiplier applied to the standard commission when paying commission in BNB (e.g. 0.75 = 75% of the standard commission is charged).
}
}

Query Order Amendments (USER_DATA)​

GET /api/v3/order/amendments

Queries all amendments of a single order.

Weight: 4

Parameters:

NameTypeMandatoryDescription
symbolSTRINGYES
orderIdLONGYES
fromExecutionIdLONGNO
limitLONGNODefault: 500; Maximum: 1000.
recvWindowDECIMALNOMaximum: 60000.
Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.
timestampLONGYESUnix timestamp used to sign the request, in milliseconds or microseconds. The value must reflect the current client time and is validated by the server for signed endpoints.

Data Source: Database

Response:

[
{
"symbol": "BTCUSDT",
"orderId": 9,
"executionId": 22,
"origClientOrderId": "W0fJ9fiLKHOJutovPK3oJp",
"newClientOrderId": "UQ1Np3bmQ71jJzsSDW9Vpi",
"origQty": "5.00000000",
"newQty": "4.00000000",
"time": 1741669661670
},
{
"symbol": "BTCUDST",
"orderId": 9,
"executionId": 25,
"origClientOrderId": "UQ1Np3bmQ71jJzsSDW9Vpi",
"newClientOrderId": "5uS0r35ohuQyDlCzZuYXq2",
"origQty": "4.00000000",
"newQty": "3.00000000",
"time": 1741672924895
}
]

Query relevant filters (USER_DATA)​

GET /api/v3/myFilters

Retrieves the list of filters relevant to an account on a given symbol. This is the only endpoint that shows if an account has MAX_ASSET filters applied to it.

Weight: 40

Parameters:

NameTypeMandatoryDescription
symbolSTRINGYES
recvWindowDECIMALNOMaximum: 60000.
Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.
timestampLONGYESUnix timestamp used to sign the request, in milliseconds or microseconds. The value must reflect the current client time and is validated by the server for signed endpoints.

Data Source: Memory

Response:

{
"exchangeFilters": [
{
"filterType": "EXCHANGE_MAX_NUM_ORDERS",
"maxNumOrders": 1000
}
],
"symbolFilters": [
{
"filterType": "PRICE_FILTER",
"minPrice": "0.00000100",
"maxPrice": "100000.00000000",
"tickSize": "0.00000100"
}
],
"assetFilters": [
{
"filterType": "MAX_ASSET",
"limit": "100.00000000",
"asset": "BNB"
}
],
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000,
"count": 321
}
]
}