MATIC limits messed up?

MATIC appears to be missing part of its ‘limits’ information in the API. I think this used to work fine. (the missing bit is in bold)

for s in [‘BTC’, ‘ETH’, ‘BNB’, ‘RAY’, ‘MATIC’]:
print(s, ‘:’, a[s + ‘/USDT’][‘limits’])

BTC : {‘amount’: {‘min’: 1e-05, ‘max’: 9000.0}, ‘price’: {‘min’: 0.01, ‘max’: 1000000.0}, ‘cost’: {‘min’: 10.0, ‘max’: None}, ‘market’: {‘min’: 0.0, ‘max’: 188.56935531}}
ETH : {‘amount’: {‘min’: 0.0001, ‘max’: 9000.0}, ‘price’: {‘min’: 0.01, ‘max’: 1000000.0}, ‘cost’: {‘min’: 10.0, ‘max’: None}, ‘market’: {‘min’: 0.0, ‘max’: 3217.68945562}}
BNB : {‘amount’: {‘min’: 0.001, ‘max’: 900000.0}, ‘price’: {‘min’: 0.1, ‘max’: 100000.0}, ‘cost’: {‘min’: 10.0, ‘max’: None}, ‘market’: {‘min’: 0.0, ‘max’: 13475.17657152}}
RAY : {‘amount’: {‘min’: 0.1, ‘max’: 9222449.0}, ‘price’: {‘min’: 0.0001, ‘max’: 10000.0}, ‘cost’: {‘min’: 10.0, ‘max’: None}, ‘market’: {‘min’: 0.0, ‘max’: 254569.23875}}
MATIC : {‘amount’: {‘min’: 0.1, ‘max’: 9000000.0}, ‘price’: {‘min’: 0.0001, ‘max’: 1000.0}, ‘cost’: {‘min’: None, ‘max’: None}, ‘market’: {‘min’: 0.0, ‘max’: 2196458.97}}

Looking at your post I can’t seem to see any part of it which is bold? Can you please specify exactly what the issue being faced is?

MATICUSDT
{‘filterType’: ‘ICEBERG_PARTS’, ‘limit’: 10}
{‘filterType’: ‘NOTIONAL’, ‘minNotional’: ‘5.00000000’, ‘applyMinToMarket’: True, ‘maxNotional’: ‘9000000.00000000’, ‘applyMaxToMarket’: False, ‘avgPriceMins’: 5}
BNBUSDT
{‘filterType’: ‘MIN_NOTIONAL’, ‘minNotional’: ‘10.00000000’, ‘applyToMarket’: True, ‘avgPriceMins’: 5}
{‘filterType’: ‘PERCENT_PRICE_BY_SIDE’, ‘bidMultiplierUp’: ‘5’, ‘bidMultiplierDown’: ‘0.2’, ‘askMultiplierUp’: ‘5’, ‘askMultiplierDown’: ‘0.2’, ‘avgPriceMins’: 5}
BTCUSDT
{‘filterType’: ‘MIN_NOTIONAL’, ‘minNotional’: ‘10.00000000’, ‘applyToMarket’: True, ‘avgPriceMins’: 5}
{‘filterType’: ‘PERCENT_PRICE_BY_SIDE’, ‘bidMultiplierUp’: ‘5’, ‘bidMultiplierDown’: ‘0.2’, ‘askMultiplierUp’: ‘5’, ‘askMultiplierDown’: ‘0.2’, ‘avgPriceMins’: 5}

import requests
import json

url = f"https://api.binance.com/api/v3/exchangeInfo?symbol=MATICUSDT"
print('MATICUSDT')
data = json.loads(requests.get(url).text)
print(data['symbols'][0]['filters'][2])
print(data['symbols'][0]['filters'][6])

url = f"https://api.binance.com/api/v3/exchangeInfo?symbol=BNBUSDT"
print('BNBUSDT')
data = json.loads(requests.get(url).text)
print(data['symbols'][0]['filters'][2])
print(data['symbols'][0]['filters'][6])

url = f"https://api.binance.com/api/v3/exchangeInfo?symbol=BTCUSDT"
data = json.loads(requests.get(url).text)
print('BTCUSDT')
print(data['symbols'][0]['filters'][2])
print(data['symbols'][0]['filters'][6])

This change for MATICUSDT happened on the 12th of April at 09:00 UTC.

In fact the issue is deeper than that. There are 10 assets that are busted this way.

import requests
import json
import traceback

url = f"https://api.binance.com/api/v3/exchangeInfo"
data = json.loads(requests.get(url).text)
for symbol_idx in range(len(data['symbols'])):
    try:
        min_notional = data['symbols'][symbol_idx]['filters'][2]['minNotional']
    except Exception as e:
        print(data['symbols'][symbol_idx]['symbol'], traceback.format_exc())
        min_notional = data['symbols'][symbol_idx]['filters'][6]['minNotional']  # This works for these ones