Updated API to version 2.
We have updated the API calls to Version 2. This requires you to sign each request to the server using your secret key instead of sending it directly to the server. See the python example below how to implement this into your code The old version of the API is depricated and will be taken out of service 15th of July 2016.
API Documentation
Python example to make use of the Nova Exchange API
#!/usr/bin/python import time import hmac import hashlib import base64 import requests API_KEY = "YOUR_API_KEY" API_SECRET = "YOUR_API_SECRET" public_set = set([ "markets", "market/info", "market/orderhistory", "market/openorders" ]) # optional private_set = set([ "getbalances", "getbalance", "getdeposits", "getwithdrawals", "getnewdepositaddress", "getdepositaddress", "myopenorders", "myopenorders_market", "cancelorder", "withdraw", "trade", "tradehistory", "getdeposithistory", "getwithdrawalhistory", "walletstatus" ]) url = "https://novaexchange.io/remote/v2/" def api_query( method, req = None ): url = "https://novaexchange.io/remote/v2/" if not req: req = {} if method.split('/')[0][0:6] == 'market': r = requests.get( url + method + '/', timeout = 60 ) elif method.split('/')[0] in private_set: url += 'private/' + method + '/' + '?nonce=' + str( int( time.time() ) ) req["apikey"] = API_KEY req["signature"] = base64.b64encode( hmac.new( API_SECRET, msg = url, digestmod = hashlib.sha512 ).digest() ) headers = {'content-type': 'application/x-www-form-urlencoded'} r = requests.post( url, data = req, headers = headers, timeout = 60 ) return r.text # Eample usage: # Public: # print api_query( "markets" ) print api_query( "market/orderhistory/" + "LTC_DOGE" ) # etc... # Private: print api_query("getbalances") # print api_query( "trade/" + "LTC_DOGE", { 'tradebase': 0, 'tradetype': "BUY", 'tradeprice': 0.000001, 'tradeamount': 1000 } ) # print api_query( 'cancelorder/' + str( 1426936 ) ) # print api_query( 'tradehistory' ) # etc...
Important
Use the trailing slash on every request or your API Auth will fail. The URL listed is the exact URL needed to access Nova Exchange by API.
The binary signature of the request has to be a base64 encoded string before sent to the server.
Nonce is enforced on private API calls in APIv2 and has to be included in url before signing it with your secret key.
List markets summary, including cached tickerdata (Limited to 1 request per minute).
URL: /remote/v2/markets/
Request limits: 15 per minute
Params: None
Expected response
{ "status": "success", "message": "Markets listed at Nova Exchange", "markets": [{ "currency": "LTC", "low24h": 0.00000000, "marketname": "LTC_BTC", "high24h": 0.00000000, "ask": 0.00000000, "bid": 0.00000000, "change24h": 0.00000000, "last_price": 0.00000000, "volume24h": 0.00000000, "basecurrency": "BTC", "marketid": 20, "disabled": 1 }, { "currency": "NYAN", "low24h": 0.00000000, "marketname": "BTC_LTC", ... }] }
List markets summary for base currency.
URL: /remote/v2/markets/<base-currency>
Request limits: 2 per minute
Params: None
Expected response
{ "status": "success", "message": "Markets listed at Nova Exchange", "markets": [{ "basecurrency": "DOGE", "ask": "9999999.00000000", "bid": "600000.00000000", "change24h": "0.0", "currency": "42", "disabled": 0, "high24h": "7133133.10000000", "last_price": "7133133.10000000", "low24h": "7133133.10000000", "marketid": 7049, "marketname": "DOGE_42", "volume24h": "0.000" }, { "ask": "0.00000000", "basecurrency": "DOGE", "bid": "0.30000001", ... }] }
Market summary for a single market
URL: /remote/v2/market/info/<market>/
Request limits: 20 per second
Params: None
Expected response
{ "status": "success", "message": "Info for market: BTC_XZC", "markets": [{ "bid": "0.00880000", "last_price": "0.00873000", "volume24h": "133.955", "marketid": 3198, "currency": "XZC", "marketname": "BTC_XZC", "ask": "0.00890067", "low24h": "0.00750000", "change24h": "-0.8", "high24h": "0.01285006", "basecurrency": "BTC", "disabled": 0 }] }
Ticker / Order history for market
URL: /remote/v2/market/orderhistory/<market>/
Request limits: 20 per second
Params: None
Expected response
{ "status": "success", "message": "Order history for market: LTC_MEOW", "items": [{ "orderid": 5144212, "tradetype": "BUY", "baseamount": 0.0084, "price": 0.00000007, "currency": "MEOW", "amount": 120000.0, "datestamp": "2016-03-20 16:12", "basecurrency": "LTC" }, { "tradetype": "BUY", "baseamount": 0.0056, "price": 0.00000007, ... }] }
Open orders for market
URL: /remote/v2/market/openorders/<market>/<ordertype>/
Request limits: 20 per second
Params:
Ordertype can be: SELL, BUY or BOTH
Expected response
{ "status": "success", "buyorders": [{ "currency": "MEOW", "amount": "440050.01000000", "price": "0.00000006", "basecurrency": "LTC", "baseamount": "0.02640300" }], "sellorders": [{ "currency": "MEOW", "amount": "2040408.15913683", "price": "0.00000007", "basecurrency": "LTC", "baseamount": "0.14282857" }, { "currency": "MEOW", "amount": "100000.00000000", "price": "0.00000008", ... }] }
Private calls - API Keys required, with permissions set accordingly.
List balances in account
URL: /remote/v2/private/getbalances/
Request limits: 2 per minute
Params: None
Expected response
{ "status": "success", "message": "Your currency balances", "balances": [{ "currencyid": 1, "currency": "BTC", "currencyname": "Bitcoin", "amount": "0.00189703", "amount_trades": "0.00000000", "amount_lockbox": "0.00000000", "amount_total": "0.00189703" }, { "currencyid": 2, "currency": "LTC", ... }] }
List a specific currency balance
URL: /remote/v2/private/getbalance/<currency>/
Request limits: 15 per minute
Params: None
Expected response
{ "status": "success", "message": "Your MEOW balance", "balances": [{ "currency": "MEOW", "amount": "2761401.22909113", "amount_trades": "1661726.92791246", "currencyid": 5, "amount_reserved": "0.00000000", "amount_total": "4423128.15700359", "currencyname": "Kittehcoin", "amount_lockbox": "0.00000000" }] }
Get current incoming deposits
URL: /remote/v2/private/getdeposits/
Request limits: 20 per second
Params: None
Expected response
{ "status": "success", "message": "Your incoming deposits", "depositqueue": [{ "confirmations_needed": 20, "tx_address": "AURSLfipnFudU4GaEwuEEr5mybvz9UbB8W", "currencyid": 24, "is_confirmed_date": "None", "tx_amount": "2.50000474", "currency": "ANC", "is_accounted": 0, "is_accounted_date": "None", "tx_txid": "175a83822ea45d04561ffe9ff419f6202139bbc6ddb1ca5d211529fe9fb77269", "tx_confirmations": "2.50000474", "is_confirmed": 0, "tx_timereceived": "2016-03-24 00:02:00" }, { "confirmations_needed": 30, "tx_address": "BScpntUqc4PYTNkKtCAmKGwokeH7sxEEUx", ... }] }
Get current outgoing withdrawals
URL: /remote/v2/private/getwithdrawals/
Request limits: 20 per second
Params: None
Expected response
{ "status": "success", "message": "Your outgoing transactions", "depositqueue": [{ "status": 1, "confirmations_needed": 3, "tx_address": "KAZYLd6hqCQkWN1srZGVWzg13s8fUDGVcx", "currencyid": 5, "is_confirmed_date": "None", "tx_amount": "3997.99000000", "currency": "MEOW", "tx_confirmations": 0, "approved": 1, "tx_txid": "cb4839d9ad1e8e87b20ee77372ecd9332add91842ed101c029d1b4787595dc5a", "date_requested": "2016-03-24 00:02:00", "is_confirmed": 0, "date_sent": "2016-03-24 13:27:41" }, { "status": 1, "confirmations_needed": 3, ... }] }
Create a new deposit address for currency
URL: /remote/v2/private/getnewdepositaddress/<currency>/
Request limits: 20 per second
Params: None
Expected response
{ "status": "success", "message": "New deposit address for TRUMP", "address": "TD7UbTSWx9gZEXTN2xS1F6DRTB8iSKva1S" }
Deposit address for currency
URL: /remote/v2/private/getdepositaddress/<currency>/
Request limits: 20 per second
Params: None
Expected response
{ "status": "success", "message": "Deposit your TRUMP to this address", "address": "TF6UXNy2QFr4pWKLLeLm9nQLnNM1Pu2Ku1" }
My open orders
URL: /remote/v2/private/myopenorders/
Request limits: 20 per second
Params: 1
page: 1 (optional, will return page 1 default)
Expected response
{ "status": "success", "total_items": 121, "perpage": 100, "page": 1, "message": "Your open orders with recent first", "pages": 2, "items": [{ "orderid": 348, "fromamount": "2467567.37261500", "fromcurrency": "SPN", "ordertype": "SELL", "price": "0.00000001", "tocurrency": "BTC", "orderdate": "2016-03-30 10:42", "market": "BTC_SPN", "toamount": "0.02467567" }, { "orderid": 347, "fromamount": "4095.80432940", "fromcurrency": "YACC", ... }] }
My open orders on a Market
URL: /remote/v2/private/myopenorders_market/<market>/
Request limits: 20 per second
Params: None
Expected response
{ "status": "success", "message": "Your open orders for BTC_ARI with recent first", "items": [{ "orderid": 258, "fromamount": "189703.00000000", "fromcurrency": "ARI", "ordertype": "BUY", "price": "0.00000001", "tocurrency": "BTC", "orderdate": "2016-03-28 23:46", "market": "BTC_ARI", "toamount": "0.00189703" }, { "orderid": 257, "fromamount": "1994.49480298", "fromcurrency": "ARI", ... }] }
Cancel order
URL: /remote/v2/private/cancelorder/<orderid>/
Request limits: 2 per second
Params: None
Expected response
{ 'status': 'ok', 'message': 'Order canceled' }
Withdraw
URL: /remote/v2/private/withdraw/<currency>/
Request limits: 20 per second
Params: 3
currency: MEOW amount: 1000.12345678 address: KF2yLFLcZwYigRDw5Uo9U4B9hEaLqwkVxL
Expected response
{ "status": u"success", "amount_after_withdraw": u"500243.25012310", "amount": u"1000.00000000", "tx_fee": u"0.01000000", "amount_in_orders": u"3217070.76321477", "currency": u"MEOW", "amount_sent": u"999.49000000", "address": u"KF2yLFLcZwYigRDw5Uo9U4B9hEaLqwkVxL", "amount_before_withdraw": u"501243.25012310", "message": u"Withdrawal requested successfully", "wd_fee": u"0.50000000" }
Trade
URL: /remote/v2/private/trade/<market_name>/
Request limits: 2 per seconds
Params: 4
tradetype: BUY or SELL tradeamount: 8000.00000000 tradeprice: 0.00000008 tradebase: 0 (Set as 0 for market currency or 1 for basecurrency as tradeamount)
Expected response
{ 'status': 'success', 'message': 'Trade details as follows', 'tradetype': 'SELL', 'fee_currency': 'LTC', 'tradeitems': [{ 'type': 'trade', 'price': '0.00000006', 'tocurrency': 'LTC', 'toamount': '0.00011994', 'net_total': '0.00011970', 'fromcurrency': 'MEOW', 'tradefee': '0.00000024', 'fromamount': '1999.00000000', 'orderid': 1234 }, { 'type': 'created', 'price': '0.00000006', 'tocurrency': 'LTC', 'orderid': 1234, 'toamount': '0.00036006', ... }] }
Trade history
URL: /remote/v2/private/tradehistory/
Request limits: 20 per second
Params: 1
page: 1 (optional, will return page 1 default)
Expected response
{ "status": "success", "total_items": 175, "perpage": 100, "page": 1, "message": "Your trade history with recent first", "pages": 2, "items": [{ "tradetype": "BUY", "tradeid": 437, "price": "0.00000003", "toamount": "0.00368630", "fromamount": "123123.00000000", "fee": "0.00000739", "tocurrency": "LTC", "trade_time": "2016-03-22 14:06", "fromcurrency": "BUN", "orig_orderid": 229, "basecurrency": "LTC" }, { "tradetype": "SELL", "tradeid": 436, "price": "0.00000003", ... }] }
Deposit history
URL: /remote/v2/private/getdeposithistory/
Request limits: 20 per second
Params: 1
page: 1 (optional, will return page 1 default)
page: integer
Expected response
{ "status": "success", "total_items": 10316, "perpage": 100, "page": 1, "message": "Your deposit history with recent first", "pages": 104, "items": [{ "status": "Incoming", "time_seen": "2016-03-30 03:31:03", "tx_address": "1FmqcxNueLm6SBZw3WrCy8H4tQ2y5NTgz2", "currencyid": 55, "tx_amount": "767.89570223", "currency": "BTCS", "tx_txid": "ab02e505f852729fe7da8c828e03a328eb0bcd10802010eeb7cc1f89b2891b48" }, { "status": "Accounted", "time_seen": "2016-03-30 00:04:08", "tx_address": "S5gjyKK2TsW3FdChWj8Ex2ZkLWtyujeqRG", ... }] }
Withdrawal history
URL: /remote/v2/private/getwithdrawalhistory/
Request limits: 20 per second
Params: 1
page: 1 (optional, will return page 1 default)
Expected response
{ "status": "success", "perpage": 100, "pages": 1, "message": "Your withdrawal history with recent first", "page": 1, "total_items": 20, "items": [{ "status": "Confirmed", "currency": "MEOW", "time_requested": "2016-03-24 13:19:50", "tx_address": "KAZYLd6hqCQkWN1srZGVWzg13s8fUDGVcx", "currencyid": 5, "time_sent": "2016-03-24 13:27:41", "tx_amount": "3997.99000000", "tx_txid": "cb4839d9ad1e8e87b20ee77372ecd9332add91842ed101c029d1b4787595dc5a" }, { "status": "Confirmed", "currency": "BRDD", "time_requested": "2016-03-19 18:48:35", ... }] }
Coininfo and Wallet status
URL: /remote/v2/private/walletstatus/
Params: None
Wallet status numbers:
0 - Wallet OK 1 - Wallet in maintenance 2 - Wallet not in sync 3 - Wallet not available 4 - Wallet offline?! Daemon dead? 5 - Unknown status... 6 - Wallet being delisted, please withdraw your coins.
Expected response
{ status': success', message': WalletInfo for all listed wallets', coininfo': [ { peers': 4, wallet_online': 1, tx_fee': 0.01000000', confirmations_needed': 18, wallet_status': 0, currency': $$$', wallet_lastblock': 2016-06-21 21:28:42', version': 80702', wallet_available': 1, wallet_insync': 1, wallet_version': 60000', wallet_maintenance': 0, wd_fee': 0.00050000', height': 1466269, currencyname': Money', id': 30, wallet_deposit': 1, wallet_withdrawal': 1 }, { ... } ] }
Coininfo and Wallet status for a specific wallet
URL: /remote/v2/private/walletstatus/<currency>/
Request limits: 20 per second
Params: None
Wallet status numbers:
0 - Wallet OK 1 - Wallet in maintenance 2 - Wallet not in sync 3 - Wallet not available 4 - Wallet offline?! Daemon dead? 5 - Unknown status... 6 - Wallet being delisted, please withdraw your coins.
Expected response
{ status': success', message': WalletInfo for: BTC', coininfo': { peers': 20, wallet_online': 1, tx_fee': 0.00050000', confirmations_needed': 6, wallet_status': 0, currency': BTC', wallet_lastblock': 2016-06-21 21:26:23', version': 120100', wallet_available': 1, wallet_insync': 1, wallet_version': 60000', wallet_maintenance': 0, wd_fee': 0.00050000', height': 417396, currencyname': Bitcoin', id': 1, wallet_deposit': 1, wallet_withdrawal': 1 } }