So you are able to retrieve all balances? Is your programming language also Python?
...
Yes, I retrieve all balances this way. No, I do not use Python in my practice.
My suggestion was: "Check request that you are trying to send to the server". You should compare string that you try to send to the server and said example of GetBalance http request. I do not know how you build your http requests (or it's headers and payload). Also you can compare your code with Python example in
https://www.cryptopia.co.nz/Forum/Thread/262
def api_query( method, req = None ):
if not req:
req = {}
...skipped...
post_data = json.dumps( req );
...skipped...
headers = { 'Authorization': header_value, 'Content-Type':'application/json; charset=utf-8' }
r = requests.post( url, data = post_data, headers = headers )
Pay attention to this:
if not req:
req = {}
...
I interpret this as follows: Currency parameter OR CurrencyId parameter is required. Do you disagree?
I agree it may be subtle thing but lets compare GetBalance description and GetDepositAddress description
GetBalance
...
Input:
Currency: (optional) The currency symbol of the balance to return e.g. 'DOT' (not required if 'CurrencyId' supplied)
CurrencyId: (optional) The Cryptopia currency identifier of the balance to return e.g. '2' (not required if 'Currency' supplied)
GetDepositAddress
...
Input:
Currency: The currency symbol of the address to return e.g. 'DOT' (not required if 'CurrencyId' supplied)
CurrencyId: The Cryptopia currency identifier of the address to return e.g. '2' (not required if 'Currency' supplied)
In GetBalance both parameters are "optional", that means you can skip both if you do not want specify any currency.
UPDATE: Cryptopia API has glitches during couple last weeks, your issue can be provoked by experiments of Cryptopia team. I have got today same behavior of GetBalance as you. CancelTrade broken too.