Skip to main content

List My Orders

Retrieves all currently open orders for your Binance account across all trading pairs.

Common Properties​

  • Name - The custom name of the node.
  • Color - The custom color of the node.
  • Delay Before (sec) - Waits in seconds before executing the node.
  • Delay After (sec) - Waits in seconds after executing node.
  • Continue On Error - Automation will continue regardless of any error. The default value is false.
info

If the ContinueOnError property is true, no error is caught when the project is executed, even if a Catch node is used.

Inputs​

  • Client Id - The unique identifier from the Connect node (optional if using direct credentials).

Options​

  • Api Key - (Optional) Binance API key credential. Use if not providing Client Id.
  • Secret Key - (Optional) Binance API secret key credential. Use if not providing Client Id.

Output​

  • Result - An array of order objects containing details of all open orders.

How It Works​

The List My Orders node queries Binance for all active (open) orders on your account.

When executed, the node:

  1. Retrieves the Binance client (from Client Id or creates one from credentials)
  2. Queries Binance for all open orders
  3. Returns an array of order objects

Requirements​

  • Either a Client Id from Connect node OR API credentials in options
  • Appropriate API permissions (reading and spot trading enabled)

Error Handling​

The node will return specific errors in the following cases:

  • ErrListOrders - Failed to retrieve orders from Binance

Usage Notes​

  • Returns only open (unfilled) orders
  • Includes limit, market, and stop orders
  • Orders from all trading pairs are included
  • Partially filled orders are included
  • Completed or canceled orders are not included
  • Useful for order management and portfolio monitoring

Order Response Structure​

Each order object in the result array includes:

{
"symbol": "BTCUSDT",
"orderId": 123456789,
"orderListId": -1,
"clientOrderId": "web_abc123",
"price": "50000.00",
"origQty": "0.001",
"executedQty": "0.0005",
"cummulativeQuoteQty": "25.00",
"status": "PARTIALLY_FILLED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.00",
"icebergQty": "0.00",
"time": 1640000000000,
"updateTime": 1640000100000,
"isWorking": true,
"origQuoteOrderQty": "0.00"
}

Order Fields​

Identification:

  • symbol - Trading pair (e.g., BTCUSDT)
  • orderId - Unique order ID
  • clientOrderId - Client-specified order ID

Order Details:

  • type - LIMIT, MARKET, STOP_LOSS_LIMIT, etc.
  • side - BUY or SELL
  • status - NEW, PARTIALLY_FILLED, etc.
  • timeInForce - GTC (Good Till Cancel), IOC, FOK

Prices and Quantities:

  • price - Limit price
  • origQty - Original order quantity
  • executedQty - Filled quantity
  • cummulativeQuoteQty - Total quote asset spent/received

Timestamps:

  • time - Order creation time (milliseconds)
  • updateTime - Last update time (milliseconds)

Example: List All Open Orders​

Scenario: Get all your currently active orders

Inputs:

  • Client Id: (from Connect node)

Output: Array of all open order objects.

Example: Cancel All Open Orders​

[Connect]
|
v
[List My Orders]
|
v
[For Each: order in result]
|
v
[Cancel Order]
| Order ID: order.orderId
| Currency Pair: order.symbol
v
[Log: "Canceled order " + order.orderId]
|
v
[Next Order]
|
v
[Disconnect]

Example: Monitor Order Fills​

[Timer: Every 30 seconds]
|
v
[Connect]
|
v
[List My Orders]
|
v
[For Each: order in result]
|
v
[If: order.status == "PARTIALLY_FILLED"]
|
v
[Calculate: fill_percent = (order.executedQty / order.origQty) * 100]
|
v
[Log: order.symbol + " order " + fill_percent + "% filled"]
|
v
[Disconnect]

Example: Old Order Cleanup​

[Connect]
|
v
[List My Orders]
|
v
[Get: current_time = Date.now()]
|
v
[For Each: order in result]
|
v
[Calculate: age_hours = (current_time - order.time) / (1000 * 3600)]
|
v
[If: age_hours > 24]
|
v
[Cancel Order]
| Order ID: order.orderId
| Currency Pair: order.symbol
v
[Alert: "Canceled old order: " + order.symbol]
|
v
[Disconnect]

Example: Portfolio Summary​

[Connect]
|
v
[List My Orders]
|
v
[Group By: symbol]
|
v
[For Each: symbol, orders]
|
v
[Sum Buy Orders]
[Sum Sell Orders]
|
v
[Display Summary]
| Symbol: symbol
| Buy Orders: count, total quantity
| Sell Orders: count, total quantity
v
[Disconnect]

Order Status Values​

  • NEW - Order accepted, not filled
  • PARTIALLY_FILLED - Order partially executed
  • FILLED - Order completely executed (shouldn't appear in this list)
  • CANCELED - Order canceled (shouldn't appear in this list)
  • PENDING_CANCEL - Cancellation in progress
  • REJECTED - Order rejected (shouldn't appear in this list)

Use Cases​

Order Management:

  • View all active orders
  • Cancel specific or all orders
  • Monitor order status
  • Clean up old orders

Portfolio Monitoring:

  • Track locked funds in orders
  • See exposure across pairs
  • Monitor order distribution

Risk Management:

  • Cancel all orders in emergency
  • Remove outdated orders
  • Adjust orders based on market conditions

Trading Automation:

  • Check for existing orders before placing new ones
  • Cancel and replace orders
  • Implement order timeout logic

Reporting:

  • Generate order reports
  • Track trading activity
  • Audit open positions

Analyzing Open Orders​

// Count orders by type
const buyOrders = orders.filter(o => o.side === 'BUY');
const sellOrders = orders.filter(o => o.side === 'SELL');

// Find partially filled orders
const partialFills = orders.filter(o => o.status === 'PARTIALLY_FILLED');

// Calculate total locked value
const totalLocked = orders.reduce((sum, order) => {
const remaining = parseFloat(order.origQty) - parseFloat(order.executedQty);
return sum + (remaining * parseFloat(order.price));
}, 0);

// Group by symbol
const bySymbol = orders.reduce((acc, order) => {
acc[order.symbol] = acc[order.symbol] || [];
acc[order.symbol].push(order);
return acc;
}, {});

Best Practices​

  • Check open orders before placing new ones to avoid over-exposure
  • Regularly review and cancel outdated orders
  • Monitor partially filled orders for execution progress
  • Implement automated cleanup for very old orders
  • Use order age to identify forgotten or stuck orders
  • Group orders by symbol for better portfolio visibility
  • Calculate locked funds to understand available capital
  • Set up alerts for partially filled orders
  • Cancel all orders before making major strategy changes

Common Patterns​

Order Existence Check:

List My Orders
Filter for specific symbol
If exists: Skip or cancel
Else: Place new order

Emergency Stop:

List My Orders
For each order:
Cancel Order
Alert: All orders canceled

Partial Fill Monitor:

List My Orders
Find partially filled
Calculate fill percentage
Alert if stuck (old + low fill %)

Clean Slate:

List My Orders
Cancel all orders
Wait for confirmations
Proceed with new strategy

Performance Considerations​

  • This endpoint returns all open orders across all pairs
  • Can return large amounts of data if you have many orders
  • Consider filtering results locally by symbol if needed
  • Cache results briefly if checking multiple times
  • Don't poll too frequently - use reasonable intervals (30-60 seconds)

Order Lifecycle​

Place Order
→ NEW status
→ Shows in List My Orders

Order Fills
→ PARTIALLY_FILLED
→ Still in List My Orders

Order Completes
→ FILLED
→ Removed from List My Orders

Order Canceled
→ CANCELED
→ Removed from List My Orders

Combining with Other Nodes​

List My Orders
→ For each order:
→ Get Order (detailed status)
→ Get Price (current market price)
→ Decide: keep, cancel, or modify
→ Execute action

Risk Management Example​

[Market Volatility Alert]
|
v
[Connect]
|
v
[List My Orders]
|
v
[If: orders.length > 0]
|
v
[For Each: order]
|
v
[Get Price: order.symbol]
|
v
[Calculate: price_diff = abs(current_price - order.price) / order.price]
|
v
[If: price_diff > 0.05] // 5% price move
|
v
[Cancel Order: outdated price]
|
v
[Disconnect]