This is a quick tutorial on how we can resolve the Filter failure: MIN_NOTIONAL
While using Binance API, when placing the order and calling API we might get the following error.
{
"code":-1013,
"msg":"Filter failure: MIN_NOTIONAL"
}
As described on binance spot API documentation, The MIN_NOTIONAL filter defines the minimum notional value allowed for an order on a symbol. An order's notional value is the price * quantity
Now let's look into what is the required values for MIN_NOTIONAL. We can get it from the exchange info endpoint as below
For BTC USDT
https://api.binance.us/api/v3/exchangeInfo?symbol=BTCUSDT
The Output for the above endpoint is:
{
"timezone":"UTC",
"serverTime":1657007585516,
"rateLimits":[
{
"rateLimitType":"REQUEST_WEIGHT",
"interval":"MINUTE",
"intervalNum":1,
"limit":1200
},
{
"rateLimitType":"ORDERS",
"interval":"SECOND",
"intervalNum":10,
"limit":100
},
{
"rateLimitType":"ORDERS",
"interval":"DAY",
"intervalNum":1,
"limit":200000
},
{
"rateLimitType":"RAW_REQUESTS",
"interval":"MINUTE",
"intervalNum":5,
"limit":6100
}
],
"exchangeFilters":[
],
"symbols":[
{
"symbol":"BTCUSDT",
"status":"TRADING",
"baseAsset":"BTC",
"baseAssetPrecision":8,
"quoteAsset":"USDT",
"quotePrecision":8,
"quoteAssetPrecision":8,
"baseCommissionPrecision":8,
"quoteCommissionPrecision":8,
"orderTypes":[
"LIMIT",
"LIMIT_MAKER",
"MARKET",
"STOP_LOSS_LIMIT",
"TAKE_PROFIT_LIMIT"
],
"icebergAllowed":true,
"ocoAllowed":true,
"quoteOrderQtyMarketAllowed":true,
"allowTrailingStop":false,
"cancelReplaceAllowed":false,
"isSpotTradingAllowed":true,
"isMarginTradingAllowed":false,
"filters":[
{
"filterType":"PRICE_FILTER",
"minPrice":"0.01000000",
"maxPrice":"100000.00000000",
"tickSize":"0.01000000"
},
{
"filterType":"PERCENT_PRICE",
"multiplierUp":"5",
"multiplierDown":"0.2",
"avgPriceMins":5
},
{
"filterType":"LOT_SIZE",
"minQty":"0.00000100",
"maxQty":"9000.00000000",
"stepSize":"0.00000100"
},
{
"filterType":"MIN_NOTIONAL",
"minNotional":"10.00000000",
"applyToMarket":true,
"avgPriceMins":5
},
{
"filterType":"ICEBERG_PARTS",
"limit":10
},
{
"filterType":"MARKET_LOT_SIZE",
"minQty":"0.00000000",
"maxQty":"29.33387056",
"stepSize":"0.00000000"
},
{
"filterType":"MAX_NUM_ORDERS",
"maxNumOrders":200
},
{
"filterType":"MAX_NUM_ALGO_ORDERS",
"maxNumAlgoOrders":5
}
],
"permissions":[
"SPOT"
]
}
]
}
For MIN_NOTIONAL:
{
"filterType":"MIN_NOTIONAL",
"minNotional":"10.00000000",
"applyToMarket":true,
"avgPriceMins":5
},
So this defines that the limit order placed must be minimum of $10 i.e price * quantity = total here, the total must be at least 10. If this doesn't satisfy then we will get the mentioned error. So the condition must be satisfied while calling the API.