Introduction
Welcome to the NovaDAX API
NovaDAX provides a series of API documents aiming to deliver a faster, more secure and professional trading experience to customers. You can use our API to access all market data, trading, order history and account management endpoints.
NovaDAX API endpoints can be accessed by customers in an easy and practical way and we are optimizing our SDK continuously.
Before You Start
Create An Account on NovaDAX
If you haven't signed up on NovaDAX, please click here to create an account to start your exclusive trading experience on NovaDAX.
Create An API key
Before being able to sign any requests, you should first acquire an API AccessKey and the corresponding SecretKey. After login on NovaDAX, you can find the user icon at the top menu bar and click on "API Key and Sub Account" to create you API Key.
API Access
NovaDAX API endpoints are divided into public endpoints and private endpoints.
Public endpoints
Public endpoints don't require authentication for: * Market data * Basic information
PRIVATE endpoints
Private endpoint can only be accessed with authentication for: * Orders * Account
Access URLs
https://api.novadax.com
Endpoint Rate Limits
- Each API is assigned a corresponding weight, and the weight value is directly proportional to the resource consumption.
- Every API will return an X-Nova-Weight-Used response header in the response so that you can understand the current consumed weight.
- The total available weight per minute is 6000. When the available weight is exhausted, you will receive an HTTP 429 error.
- For public APIs, weight statistics are based on IP addresses, while for private APIs, they are based on UIDs.
Signature
To protect API communication from unauthorized changes, all private endpoints calls are required to be signed with your API AccessKey.
A valid request should follow the rules below:
Request domain should be
api.novadax.com
. For example,https://api.novadax.com/v1/common/symbols
.AccessKeyId: your API
AccessKey
Signature Method: apply
HMAC-SHA256
hash functionTimestamp: the current system time in milliseconds, for example, 1564988445199.
Mandatory and and optional parameters: there are several mandatory and optional parameters for accessing each endpoint. You can check the meaning of these parameters in the description of each API.
Signature: encrypted message to prevent from transport and unauthorized changes.
Signature Method
Steps to sign a GET request
1. Query string is
queryStr = "name=joao&cpf=123456&birthday=2017-08-01"
2. Encode the query string and sort parameter name following ASCII order.
sort(urlencode(queryStr)) // birthday=2017-08-01&cpf=123456&name=joao
3. Generate the "Query String" as format {Request Method}\n{Request URL}\n{Sorted Query Parameters}\n{TimeStamp}
signStr = GET\n/v1/orders/get\nbirthday=2017-08-01&cpf=123456&name=joao\n1564988445199
4. Use the string generated in step 3 and your "SecretKey" to create a signature
sign = hmac_sha256(signStr,SecretKey)
5. Add Accesskey
, Signature
and TimeStamp
to the header of quest
request.header.add("X-Nova-Access-Key",AccessKey)
request.header.add("X-Nova-Signature",Sign)
request.header.add("X-Nova-Timestamp",TimeStamp)
6. Example of authentication GET in Java
Steps to sign a POST request
1. The request body is
body = {"name":"joao","cpf":"123456","birthday":"2017-08-01"} // MD5 value is 7d8f374d786079cfade9d1c2a358137c
2. Generate the MD5 hashed "Request body" as format "{Request Method}\n{Request URL}\n{MD5 Request Body}\n{TimeStamp}"
signStr = POST\n/v1/order/create\n7d8f374d786079cfade9d1c2a358137c\n1564988445199
3. Use "Request String" generated in step 2 and your "SecretKey" to create a signature
sign = hmac_sha256(signStr,SecretKey)
4. Add Accesskey
, Signature
and TimeStamp
to the header of quest
request.header.add("X-Nova-Access-Key",AccessKey)
request.header.add("X-Nova-Signature",Sign)
request.header.add("X-Nova-Timestamp",TimeStamp)
5. Example of authentication POST in Java
Response Format
All response will be returned in JSON format. The top level JSON is a wrapper object which provides three meta data in "code", "data" and "message". The actual per API response is in "data" field.
Response to successful request
{
"code": "A10000",
"data": {...},
"message": "Success"
}
Response to failed request
{
"code": "A99999",
"data": {...},
"message": "fail."
}
Response Format:
Field | Data Type | Description |
---|---|---|
code | string | The status returned by API endpoint |
message | string | The simplified response |
data | object | The data content if available |
Response Code Details
Code | HTTP Status Code | Message | Description |
---|---|---|---|
A99999 | 500 | Failed | Internal error |
A10000 | 200 | Success | Successful request |
A10001 | 400 | Params error |
Parameter is invalid |
A10002 | 404 | Api not found |
API used is irrelevant |
A10003 | 403 | Authentication failed |
Authentication is failed |
A10004 | 429 | Too many requests |
Too many requests are made |
A10005 | 403 | Kyc required |
Need to complete KYC firstly |
A10006 | 403 | Customer canceled |
Account is canceled |
A10007 | 400 | Account not exist |
Sub account does not exist |
A10011 | 400 | Symbol not exist |
Trading symbol does not exist |
A10012 | 400 | Symbol not trading |
Trading symbol is temporarily not available |
A10013 | 503 | Symbol maintain |
Trading symbol is in maintain |
A30001 | 400 | Order not found |
Queried order is not found |
A30002 | 400 | Order amount is too small |
Order amount is too small |
A30003 | 400 | Order amount is invalid |
Order amount is invalid |
A30004 | 400 | Order value is too small |
Order value is too small |
A30005 | 400 | Order value is invalid |
Order value is invalid |
A30006 | 400 | Order price is invalid |
Order price is invalid |
A30007 | 400 | Insufficient balance |
The balance is insufficient |
A30008 | 400 | Order was closed |
The order has been executed |
A30009 | 400 | Order canceled |
The order has been cancelled |
A30010 | 400 | Order cancelling |
The order is being cancelled |
A30011 | 400 | Order price too high |
The order price is too high |
A30012 | 400 | Order price too low |
The order price is too low |
FAQ
Failure in authentication
- Make sure the API AccessKey is valid and correctly input and the used IP has been whitelisted.
- Make sure the timestamp is adjusted to UTC time zone.
- Make sure the encoded parameters are sorted following ASCII order.
Make sure the encoding format is
utf-8
.Make sure the GET request is submitted as HTTP form.
Make sure the POST request is made in JSON format.
Make sure the signature is encoded.
Make sure you have set
Content-Type:application/json
in header of POST request.
SDK and Video Tutorial
- YouTube video tutorial
- Java
- Python
- Node.js
- PHP
If needed, you can access our SDK in github.
In addition to our own SDK, the CCXT library has also integrated NovaDAX. It is our authorized SDK provider, and you may access the NovaDAX API through CCXT. For more information, please visit https://ccxt.trade.
Changelog
2023-09-12
- In the frequency restriction logic adjustment, we no longer rely on individual API-based rate limiting; instead, we implement an overall weight-based limitation.
2021-01-30
- Modified
GET /crypto/chain/{code}
: Added thechainAlias
return field. - Modified
POST /v1/wallet/withdraw/coin
: Added the request parameterchainAlias
.
2020-12-17
- Affects API order query functionality created: Cannot query within 2 hours after cancellation, relevant interfaces as follows:
GET /v1/orders/get
GET /v1/orders/list
2020-11-11
- Added WebSocket-related interfaces.
2020-10-12
- Added
GET /v1/wallet/query/deposit-withdraw
: Query user deposit and withdrawal records. - Added
GET /v1/orders/fills
: Query historical trade details.
2020-05-20
- Modified
GET /v1/orders/list
: Changed thesymbol
parameter to optional.
2020-03-05
- Added
GET /v1/common/symbol
: Get configuration for a single trading pair.
2019-12-05
- Modified
POST /v1/orders/create
: Added theaccountId
field. - Modified
GET /v1/orders/list
: Added the sub-accountaccountId
field. - Added
GET /v1/account/subs
: Get a list of sub-accounts. - Added
GET /v1/account/subs/balance
: Check sub-account balances. - Added
GET /v1/account/subs/transfer/record
: Query sub-account transfer records. - Added
POST /v1/account/subs/transfer
: Initiate sub-account transfers.
2019-09-18
- Added
POST /v1/account/withdraw/coin
: Withdraw funds.
Basic Information
Get One Supported Trading Symbol
This endpoint returns one NovaDAX's supported trading symbol
curl "https://api.novadax.com/v1/common/symbol?symbol=BTC_BRL"
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key(optional)', 'your secret key(optional)')
result = nova_client.get_symbol("BTC_BRL")
print(result)
Response Content
{
"code": "A10000",
"data": {
"symbol": "BTC_BRL",
"baseCurrency": "BTC",
"quoteCurrency": "BRL",
"amountPrecision": 4,
"pricePrecision": 2,
"valuePrecision": 4,
"minOrderAmount": "0.001",
"minOrderValue": "5"
},
"message": "Success"
}
Request URL
GET /v1/common/symbol
Weight: 1
Request Parameter
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | true | string | Trading symbol |
Response Details
Field | Data Type | Description |
---|---|---|
symbol | string | Trading symbol |
baseCurrency | string | Base currency in a trading symbol |
quoteCurrency | string | Quote currency in a trading symbol |
pricePrecision | number | Price precision |
amountPrecision | number | Amount precision |
valuePrecision | number | Value precision |
minOrderAmount | string | Minimum order amount |
minOrderValue | string | Minimum order value |
Get All Supported Trading Symbol
This endpoint returns all NovaDAX's supported trading symbols
curl "https://api.novadax.com/v1/common/symbols"
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key(optional)', 'your secret key(optional)')
result = nova_client.list_symbols()
print(result)
Response Content
{
"code": "A10000",
"data": [
{
"symbol": "BTC_BRL",
"baseCurrency": "BTC",
"quoteCurrency": "BRL",
"amountPrecision": 4,
"pricePrecision": 2,
"valuePrecision": 4,
"minOrderAmount": "0.001",
"minOrderValue": "5",
},
{
"symbol": "ETH_BRL",
"baseCurrency": "ETH",
"quoteCurrency": "BRL",
"amountPrecision": 4,
"pricePrecision": 2,
"valuePrecision": 4,
"minOrderAmount": "0.01",
"minOrderValue": "5"
}
],
"message": "Success"
}
Request URL
GET /v1/common/symbols
Weight: 1
Request Parameters
No parameter is needed for this endpoint.
Response Details
Field | Data Type | Description |
---|---|---|
symbol | string | Trading symbol |
baseCurrency | string | Base currency in a trading symbol |
quoteCurrency | string | Quote currency in a trading symbol |
pricePrecision | number | Price precision |
amountPrecision | number | Amount precision |
valuePrecision | number | Value precision |
minOrderAmount | string | Minimum order amount |
minOrderValue | string | Minimum order value |
Get Current System Time
This endpoint returns the current system time in milliseconds adjusted to UTC time zone.
curl "https://api.novadax.com/v1/common/timestamp"
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key(optional)', 'your secret key(optional)')
result = nova_client.get_timestamp()
print(result)
Response Content
{
"code": "A10000",
"data": 1565080348983,
"message": "Success"
}
Request URL
GET /v1/common/timestamp
Weight: 1
Request Parameters
No parameter is needed for this endpoint.
Response Details
System time milliseconds adjusted to UTC time zone.
Market Data
Get Latest Tickers for All Trading Pairs
This endpoint returns the latest ticker for all supported trading pairs with important 24h aggregated market data.
curl 'https://api.novadax.com/v1/market/tickers'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key(optional)', 'your secret key(optional)')
result = nova_client.list_tickers()
print(result)
Response Content
{
"code": "A10000",
"data": [
{
"ask": "34708.15",
"baseVolume24h": "34.08241488",
"bid": "34621.74",
"high24h": "35079.77",
"lastPrice": "34669.81",
"low24h": "34330.64",
"open24h": "34492.08",
"quoteVolume24h": "1182480.09502814",
"symbol": "BTC_BRL",
"timestamp": 1571112216346
}
],
"message": "Success"
}
Request URL
GET /v1/market/tickers
Weight: 5
Request Parameters
No parameters are needed for this endpoint.
Response Details
Field | Data Type | Description |
---|---|---|
symbol | string | Trading symbol |
lastPrice | string | The price of last trade |
bid | string | The current best bid price |
ask | string | The current best ask price |
open24h | string | The opening price of last 24 hours |
high24h | string | The highest price of last 24 hours |
low24h | string | The lowest price of last 24 hours |
baseVolume24h | string | The trading volume in base currency of last 24 hours |
quoteVolume24h | string | The trading volume of quote currency of last 24 hours |
timestamp | number | The current system time in UTC time zone |
Get Latest Ticker for Specific Pair
The endpoint retrieves the latest ticker of a specific trading pair.
curl 'https://api.novadax.com/v1/market/ticker?symbol=BTC_BRL'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key(optional)', 'your secret key(optional)')
result = nova_client.get_ticker('BTC_BRL')
print(result)
Response Content
{
"code": "A10000",
"data": {
"ask": "34708.15",
"baseVolume24h": "34.08241488",
"bid": "34621.74",
"high24h": "35079.77",
"lastPrice": "34669.81",
"low24h": "34330.64",
"open24h": "34492.08",
"quoteVolume24h": "1182480.09502814",
"symbol": "BTC_BRL",
"timestamp": 1571112216346
},
"message": "Success"
}
Request URL
GET /v1/market/ticker
Weight: 1
Request Parameter
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | true | string | Trading symbol |
Response Details
Field | Data Type | Description |
---|---|---|
symbol | string | Trading symbol |
lastPrice | string | The price of last trade |
bid | string | The current best bid price |
ask | string | The current best ask price |
open24h | string | The opening price of last 24 hours |
high24h | string | The highest price of last 24 hours |
low24h | string | The lowest price of last 24 hours |
baseVolume24h | string | The trading volume in base currency of last 24 hours |
quoteVolume24h | string | The trading volume of quote currency of last 24 hours |
timestamp | number | The current system time in UTC time zone |
Get Market Depth
This endpoint retrieves the current order book of a specific pair.
curl 'https://api.novadax.com/v1/market/depth?symbol=BTC_BRL&limit=10'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key(optional)', 'your secret key(optional)')
result = nova_client.get_depth('BTC_BRL', limit = 10)
print(result)
Response Content
{
"code": "A10000",
"data": {
"asks": [
["43687.16", "0.5194"],
["43687.2", "1.3129"]
],
"bids": [
["43657.57", "0.6135"],
["43657.46", "0.0559"]
],
"timestamp": 1565057338020
},
"message": "Success"
}
Request URL
GET /v1/market/depth
Weight: 1
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | true | string | Trading symbol |
limit | false | number | The number of asks and bids to return , max 50 |
Response Details
Field | Data Type | Description |
---|---|---|
asks | array | All current asks |
asks[][0] | string | Sell price |
asks[][1] | string | Sell amount |
bids | array | All current bids |
bids[][0] | string | Buy price |
bids[][1] | string | Buy amount |
timestamp | number | The current system time in UTC time zone |
Get Recent Trades
This endpoint returns most recent trades data.
curl 'https://api.novadax.com/v1/market/trades?symbol=BTC_BRL&limit=10'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key(optional)', 'your secret key(optional)')
result = nova_client.list_trades('BTC_BRL', limit = 10)
print(result)
Response Content
{
"code": "A10000",
"data": [
{
"price": "43657.57",
"amount": "1",
"side": "SELL",
"timestamp": 1565007823401
},
{
"price": "43687.16",
"amount": "0.071",
"side": "BUY",
"timestamp": 1565007198261
}
],
"message": "Success"
}
Request URL
GET /v1/market/trades
Weight: 5
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | true | string | Trading symbol |
limit | false | number | The number of trades to return , default 100 |
Response Details
Field | Data Type | Description |
---|---|---|
price | string | The trading price |
amount | string | The trading volume |
side | string | The trading direction (SELL or BUY) |
timestamp | number | The time when the trade occurred |
Get Kline Data
curl 'https://api.novadax.com/v1/market/kline/history?symbol=BTC_BRL&from=1567619280&to=1567620000&unit=ONE_MIN'
from novadax import RequestClient as NovaClient
result = nova_client.get_kline('BTC_BRL', unit = 'ONE_WEE',from='1567619280 ', to='1567620000 ')
print(result)
Response Content
{
"code": "A10000",
"data": [
{
"amount": 8.25709100,
"closePrice": 62553.20,
"count": 29,
"highPrice": 62592.87,
"lowPrice": 62553.20,
"openPrice": 62554.23,
"score": 1602501480,
"symbol": "BTC_BRL",
"vol": 516784.2504067500
}
],
"message": "Success"
}
Request URL
GET /v1/market/kline/history
Weight: 5
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | true | string | Trading symbol |
unit | true | string | ONE_MIN,FIVE_MIN, FIFTEEN_MIN,HALF_HOU,ONE_HOU,ONE_DAY,ONE_WEE,ONE_MON; |
from | true | number | The start time All time units only save the latest 3000 data |
to | true | number | The end time All time units only save the latest 3000 data |
Response Details
Field | Data Type | Description |
---|---|---|
unit | string | Time unit |
amount | string | The trading amount |
count | string | The trading count |
openPrice | string | The open Price |
closePrice | string | The close Price |
highPrice | string | The high Price |
lowPrice | string | The low Price |
symbol | string | The trading symbol |
score | string | The time |
vol | string | The trading volume |
Orders
Order Introduction
Order type(order.type)
- LIMIT: Limit order
- MARKET: Market order
- STOP_LIMIT: The order will be put into matching queue at limit price only when the market price reaches the trigger price.
- STOP_MARKET: The order will be put into matching queue at market price only when the market price reaches the trigger price.
Operator of stop order (order.operator)
- GTE: More than or equal to
- LTE: Less than or equal to
Order direction(order.side)
- BUY: Buy
- SELL: Sell
Order status(order.status)
- SUBMITTED: The order has been submitted but not processed, not in the matching queue yet. The order is unfinished.
- PROCESSING: The order has been submitted and is in the matching queue, waiting for deal. The order is unfinished.
- PARTIAL_FILLED: The order is already in the matching queue and partially traded, and is waiting for further matching and trade. The order is unfinished
- PARTIAL_CANCELED: The order has been partially traded and canceled by the user and is no longer in the matching queue. This order is finished.
- PARTIAL_REJECTED: The order has been rejected by the system after being partially traded. Now it is finished and no longer in the matching queue.
- FILLED: This order has been completely traded, finished and no longer in the matching queue.
- CANCELED: This order has been canceled by the user before being traded. It is finished now and no longer in the matching queue.
- REJECTED: This order has been rejected by the user before being traded. It is finished now and no longer in the matching queue.
- CANCELING: This order is being canceled, but it is unfinished at the moment and still in the matching queue.
Order’s role(order.role)
- MAKER: Brings liquidity
- TAKER: Takes liquidity
Place A New Limit Order To Buy
This endpoint places a new limit order to buy and submits it to the exchange to be matched.
curl -X POST \
'https://api.novadax.com/v1/orders/create' \
-H 'Content-Type: application/json' \
-H 'X-Nova-Access-Key: your access key' \
-H 'X-Nova-Signature: signature' \
-H 'X-Nova-Timestamp: timestamp now' \
-d '{
"symbol": "BTC_BRL",
"type": "LIMIT",
"side": "BUY",
"price": "35000.00",
"amount": "0.001"
}'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
result = nova_client.create_order('BTC_BRL', 'LIMIT', 'BUY', price = '35000.00', amount = '0.001')
print(result)
Response Content
{
"code": "A10000",
"data": {
"amount": "0.001",
"averagePrice": null,
"filledAmount": "0",
"filledFee": "0",
"filledValue": "0",
"id": "633679992971251712",
"price": "35000",
"side": "BUY",
"status": "PROCESSING",
"symbol": "BTC_BRL",
"timestamp": 1571122683535,
"type": "LIMIT",
"value": "35"
},
"message": "Success"
}
Request URL
POST /v1/orders/create
Weight: 5
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | true | string | The trading symbol to trade, like BTC_BRL |
type | true | string | The type of order, single option: LIMIT |
side | true | string | The direction of order, single option: BUY |
amount | true | string | The amount of base currency, like BTC amount for buy of BTC_BRL |
price | true | string | Buy price |
accountId | false | string | Sub account ID, if not informed, the order will be created under master account |
Response Details
Field | Data Type | Description |
---|---|---|
id | string | Order ID |
symbol | string | The trading symbol |
type | string | The type of order |
side | string | The direction of order |
price | string | The price of order |
averagePrice | string | The average price of order |
amount | string | The amount of base currency |
filledAmount | string | The executed amount of base currency |
value | string | The amount of quote currency |
filledValue | string | The executed amount of quote currency |
filledFee | string | Transaction fee paid |
status | string | The status of order, can be found in order introduction |
timestamp | number | The time when the order was created |
Place A New Limit Order To Sell
This endpoint places a new limit order to sell and submits it to the exchange to be matched.
curl -X POST \
'https://api.novadax.com/v1/orders/create' \
-H 'Content-Type: application/json' \
-H 'X-Nova-Access-Key: your access key' \
-H 'X-Nova-Signature: signature' \
-H 'X-Nova-Timestamp: timestamp now' \
-d '{
"symbol": "BTC_BRL",
"type": "LIMIT",
"side": "SELL",
"price": "35000.00",
"amount": "0.001"
}'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
result = nova_client.create_order('BTC_BRL', 'LIMIT', 'SELL', price = '35000.00', amount = '0.001')
print(result)
Response Content
{
"code": "A10000",
"data": {
"amount": "0.001",
"averagePrice": null,
"filledAmount": "0",
"filledFee": "0",
"filledValue": "0",
"id": "633680805433102336",
"price": "35000",
"side": "SELL",
"status": "PROCESSING",
"symbol": "BTC_BRL",
"timestamp": 1571122877244,
"type": "LIMIT",
"value": "35"
},
"message": "Success"
}
Request URL
POST /v1/orders/create
Weight: 5
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | true | string | The trading symbol to trade, like BTC_BRL |
type | true | string | The type of order, single option: LIMIT |
side | true | string | The direction of order, single option: SELL |
amount | true | string | The amount of base currency, like BTC amount for sell of BTC_BRL |
price | true | string | Sell price |
accountId | false | string | Sub account ID, if not informed, the order will be created under master account |
Response Details
Field | Data Type | Description |
---|---|---|
id | string | Order ID |
symbol | string | The trading symbol |
type | string | The type of order |
side | string | The direction of order |
price | string | The price of order |
averagePrice | string | The average price of order |
amount | string | The amount of base currency |
filledAmount | string | The executed amount of base currency |
value | string | The amount of quote currency |
filledValue | string | The executed amount of quote currency |
filledFee | string | Transaction fee paid |
status | string | The status of order, can be found in order introduction |
timestamp | number | The time when the order was created |
Place A New Market Order To Buy
This endpoint places a new market order to buy and submits it to the exchange to be matched.
curl -X POST \
'https://api.novadax.com/v1/orders/create' \
-H 'Content-Type: application/json' \
-H 'X-Nova-Access-Key: your access key' \
-H 'X-Nova-Signature: signature' \
-H 'X-Nova-Timestamp: timestamp now' \
-d '{
"symbol": "BTC_BRL",
"type": "MARKET",
"side": "BUY",
"value": "10.00"
}'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
result = nova_client.create_order('BTC_BRL', 'MARKET', 'BUY', value = '10.00')
print(result)
Response Content
{
"code": "A10000",
"data": {
"amount": null,
"averagePrice": null,
"filledAmount": "0",
"filledFee": "0",
"filledValue": "0",
"id": "633681498843828224",
"price": null,
"side": "BUY",
"status": "PROCESSING",
"symbol": "BTC_BRL",
"timestamp": 1571123042566,
"type": "MARKET",
"value": "10"
},
"message": "Success"
}
Request URL
POST /v1/orders/create
Weight: 5
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | true | string | The trading symbol to trade, like BTC_BRL |
type | true | string | The type of order, single option: MARKET |
side | true | string | The direction of order, single option: BUY |
value | true | string | The amount of quote currency, like BRL amount for buy of BTC_BRL |
accountId | false | string | Sub account ID, if not informed, the order will be created under master account |
Response Details
Field | Data Type | Description |
---|---|---|
id | string | Order ID |
symbol | string | The trading symbol |
type | string | The type of order |
side | string | The direction of order |
price | string | The price of order |
averagePrice | string | The average price of order |
amount | string | The amount of base currency |
filledAmount | string | The executed amount of base currency |
value | string | The amount of quote currency |
filledValue | string | The executed amount of quote currency |
filledFee | string | Transaction fee paid |
status | string | The status of order, can be found in order introduction |
timestamp | number | The time when the order was created |
Place A New Market Order To Sell
This endpoint places a new market order to sell and submits it to the exchange to be matched.
curl -X POST \
'https://api.novadax.com/v1/orders/create' \
-H 'Content-Type: application/json' \
-H 'X-Nova-Access-Key: your access key' \
-H 'X-Nova-Signature: signature' \
-H 'X-Nova-Timestamp: timestamp now' \
-d '{
"symbol": "BTC_BRL",
"type": "MARKET",
"side": "SELL",
"amount": "0.001"
}'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
result = nova_client.create_order('BTC_BRL', 'MARKET', 'SELL', amount = '0.001')
print(result)
Response Content
{
"code": "A10000",
"data": {
"amount": "0.001",
"averagePrice": null,
"filledAmount": "0",
"filledFee": "0",
"filledValue": "0",
"id": "633682053058187264",
"price": null,
"side": "SELL",
"status": "PROCESSING",
"symbol": "BTC_BRL",
"timestamp": 1571123174702,
"type": "MARKET",
"value": null
},
"message": "Success"
}
Request URL
POST /v1/orders/create
Weight: 5
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | true | string | The trading symbol to trade, like BTC_BRL |
type | true | string | The type of order, single option: MARKET |
side | true | string | The direction of order, single option: SELL |
amount | true | string | The amount of base currency, like BTC amount for sell of BTC_BRL |
accountId | false | string | Sub account ID, if not informed, the order will be created under master account |
Response Details
Field | Data Type | Description |
---|---|---|
id | string | Order ID |
symbol | string | The trading symbol |
type | string | The type of order |
side | string | The direction of order |
price | string | The price of order |
averagePrice | string | The average price of order |
amount | string | The amount of base currency |
filledAmount | string | The executed amount of base currency |
value | string | The amount of quote currency |
filledValue | string | The executed amount of quote currency |
filledFee | string | Transaction fee paid |
status | string | The status of order, can be found in order introduction |
timestamp | number | The time when the order was created |
Place A New Stop Limit Order To Buy
This endpoint places a new stop limit order to buy and submits it to the exchange to be matched.
curl -X POST \
'https://api.novadax.com/v1/orders/create' \
-H 'Content-Type: application/json' \
-H 'X-Nova-Access-Key: your access key' \
-H 'X-Nova-Signature: signature' \
-H 'X-Nova-Timestamp: timestamp now' \
-d '{
"symbol": "BTC_BRL",
"type": "STOP_LIMIT",
"side": "BUY",
"price": "35000.00",
"amount": "0.001",
"operator: "GTE",
"stopPrice: "211000"
}'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
result = nova_client.create_order('BTC_BRL', 'STOP_LIMIT', 'BUY', price='210000', amount='0.001', operator='GTE', stop_price="211000")
print(result)
Response Content
{
"code": "A10000",
"data": {
"amount": "0.001",
"averagePrice": null,
"filledAmount": "0",
"filledFee": "0",
"filledValue": "0",
"id": "870613508008464384",
"operator": "GTE",
"price": "210000",
"side": "BUY",
"status": "SUBMITTED",
"stopPrice": "211000",
"symbol": "BTC_BRL",
"timestamp": 1627612035528,
"type": "STOP_LIMIT",
"value": "210"
},
"message": "Success"
}
Request URL
POST /v1/orders/create
Weight: 5
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | true | string | The trading symbol to trade, like BTC_BRL |
type | true | string | The type of order, single option: STOP_LIMIT |
side | true | string | The direction of order, single option: BUY |
amount | true | string | The amount of base currency, like BTC amount for buy of BTC_BRL |
price | true | string | Buy price |
operator | true | string | Operator of stop order, can be found in order introduction |
stopPrice | true | string | Stop price |
accountId | false | string | Sub account ID, if not informed, the order will be created under master account |
Response Details
Field | Data Type | Description |
---|---|---|
id | string | Order ID |
symbol | string | The trading symbol |
type | string | The type of order |
side | string | The direction of order |
price | string | The price of order |
averagePrice | string | The average price of order |
amount | string | The amount of base currency |
filledAmount | string | The executed amount of base currency |
value | string | The amount of quote currency |
filledValue | string | The executed amount of quote currency |
filledFee | string | Transaction fee paid |
operator | string | Operator of stop order, can be found in order introduction |
stopPrice | string | Stop price |
status | string | The status of order, can be found in order introduction |
timestamp | number | The time when the order was created |
Place A New Stop Limit Order To Sell
This endpoint places a new stop limit order to sell and submits it to the exchange to be matched.
curl -X POST \
'https://api.novadax.com/v1/orders/create' \
-H 'Content-Type: application/json' \
-H 'X-Nova-Access-Key: your access key' \
-H 'X-Nova-Signature: signature' \
-H 'X-Nova-Timestamp: timestamp now' \
-d '{
"symbol": "BTC_BRL",
"type": "STOP_LIMIT",
"side": "SELL",
"price": "180000",
"stopPrice":"190000",
"operator":"LTE",
"amount": "0.001"
}'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
result = nova_client.create_order('BTC_BRL', 'STOP_LIMIT', 'SELL', price='180000', amount='0.001', operator='LTE', stop_price="190000")
print(result)
Response Content
{
"code": "A10000",
"data": {
"amount": "0.001",
"averagePrice": null,
"filledAmount": "0",
"filledFee": "0",
"filledValue": "0",
"id": "870616419635580928",
"operator": "LTE",
"price": "180000",
"side": "SELL",
"status": "SUBMITTED",
"stopPrice": "190000",
"symbol": "BTC_BRL",
"timestamp": 1627612729713,
"type": "STOP_LIMIT",
"value": "180"
},
"message": "Success"
}
Request URL
POST /v1/orders/create
Weight: 5
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | true | string | The trading symbol to trade, like BTC_BRL |
type | true | string | The type of order, single option: STOP_LIMIT |
side | true | string | The direction of order, single option: SELL |
amount | true | string | The amount of base currency, like BTC amount for sell of BTC_BRL |
price | true | string | Sell price |
operator | true | string | Operator of stop order, can be found in order introduction |
stopPrice | true | string | Stop price |
accountId | false | string | Sub account ID, if not informed, the order will be created under master account |
Response Details
Field | Data Type | Description |
---|---|---|
id | string | Order ID |
symbol | string | The trading symbol |
type | string | The type of order |
side | string | The direction of order |
price | string | The price of order |
averagePrice | string | The average price of order |
amount | string | The amount of base currency |
filledAmount | string | The executed amount of base currency |
value | string | The amount of quote currency |
filledValue | string | The executed amount of quote currency |
filledFee | string | Transaction fee paid |
operator | string | Operator of stop order, can be found in order introduction |
stopPrice | string | Stop price |
status | string | The status of order, can be found in order introduction |
timestamp | number | The time when the order was created |
Place A New Stop Market Order To Buy
This endpoint places a new stop market order to buy and submits it to the exchange to be matched.
curl -X POST \
'https://api.novadax.com/v1/orders/create' \
-H 'Content-Type: application/json' \
-H 'X-Nova-Access-Key: your access key' \
-H 'X-Nova-Signature: signature' \
-H 'X-Nova-Timestamp: timestamp now' \
-d '{
"symbol": "BTC_BRL",
"type": "STOP_MARKET",
"side": "BUY",
"value": "10.00",
"stopPrice": "211000",
"operator": "GTE"
}'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
result = nova_client.create_order('BTC_BRL', 'STOP_MARKET', 'BUY', value='25', operator="GTE", stop_price="211000")
print(result)
Response Content
{
"code": "A10000",
"data": {
"amount": null,
"averagePrice": null,
"filledAmount": "0",
"filledFee": "0",
"filledValue": "0",
"id": "870617243765985280",
"operator": "GTE",
"price": "205118.95",
"side": "BUY",
"status": "SUBMITTED",
"stopPrice": "211000",
"symbol": "BTC_BRL",
"timestamp": 1627612926202,
"type": "STOP_MARKET",
"value": "25"
},
"message": "Success"
}
Request URL
POST /v1/orders/create
Weight: 5
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | true | string | The trading symbol to trade, like BTC_BRL |
type | true | string | The type of order, single option: STOP_MARKET |
side | true | string | The direction of order, single option: BUY |
value | true | string | The amount of quote currency, like BRL amount for buy of BTC_BRL |
operator | true | string | Operator of stop order, can be found in order introduction |
stopPrice | true | string | Stop price |
accountId | false | string | Sub account ID, if not informed, the order will be created under master account |
Response Details
Field | Data Type | Description |
---|---|---|
id | string | Order ID |
symbol | string | The trading symbol |
type | string | The type of order |
side | string | The direction of order |
price | string | The price of order |
averagePrice | string | The average price of order |
amount | string | The amount of base currency |
filledAmount | string | The executed amount of base currency |
value | string | The amount of quote currency |
filledValue | string | The executed amount of quote currency |
filledFee | string | Transaction fee paid |
operator | string | Operator of stop order, can be found in order introduction |
stopPrice | string | Stop price |
status | string | The status of order, can be found in order introduction |
timestamp | number | The time when the order was created |
Place A New Stop Market Order To Sell
This endpoint places a new stop market order to sell and submits it to the exchange to be matched.
curl -X POST \
'https://api.novadax.com/v1/orders/create' \
-H 'Content-Type: application/json' \
-H 'X-Nova-Access-Key: your access key' \
-H 'X-Nova-Signature: signature' \
-H 'X-Nova-Timestamp: timestamp now' \
-d '{
"symbol": "BTC_BRL",
"type": "STOP_MARKET",
"side": "SELL",
"amount": "0.001",
"stopPrice": "180000",
"operator": "LTE"
'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
result = nova_client.create_order('BTC_BRL', 'STOP_MARKET', 'SELL', amount='0.001', operator="LTE", stop_price="180000")
print(result)
Response Content
{
"code": "A10000",
"data": {
"amount": "0.001",
"averagePrice": null,
"filledAmount": "0",
"filledFee": "0",
"filledValue": "0",
"id": "870617706309636096",
"operator": "LTE",
"price": "204712.39",
"side": "SELL",
"status": "SUBMITTED",
"stopPrice": "180000",
"symbol": "BTC_BRL",
"timestamp": 1627613036480,
"type": "STOP_MARKET",
"value": null
},
"message": "Success"
}
Request URL
POST /v1/orders/create
Weight: 5
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | true | string | The trading symbol to trade, like BTC_BRL |
type | true | string | The type of order, single option: STOP_MARKET |
side | true | string | The direction of order, single option: SELL |
amount | true | string | The amount of base currency, like BTC amount for sell of BTC_BRL |
operator | true | string | Operator of stop order, can be found in order introduction |
stopPrice | true | string | Stop price |
accountId | false | string | Sub account ID, if not informed, the order will be created under master account |
Response Details
Field | Data Type | Description |
---|---|---|
id | string | Order ID |
symbol | string | The trading symbol |
type | string | The type of order |
side | string | The direction of order |
price | string | The price of order |
averagePrice | string | The average price of order |
amount | string | The amount of base currency |
filledAmount | string | The executed amount of base currency |
value | string | The amount of quote currency |
filledValue | string | The executed amount of quote currency |
filledFee | string | Transaction fee paid |
operator | string | Operator of stop order, can be found in order introduction |
stopPrice | string | Stop price |
status | string | The status of order, can be found in order introduction |
timestamp | number | The time when the order was created |
Cancel An Order
This endpoint submits a request to cancel an order.
curl -X POST \
'https://api.novadax.com/v1/orders/cancel' \
-H 'Content-Type: application/json' \
-H 'X-Nova-Access-Key: your access key' \
-H 'X-Nova-Signature: signature' \
-H 'X-Nova-Timestamp: timestamp now' \
-d '{
"id": "608705793440616448"
}'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
result = nova_client.cancle_order("608705793440616448")
print(result)
Response Content
{
"code": "A10000",
"data": {
"result": true
},
"message": "Success"
}
Request URL
POST /v1/orders/cancel
Weight: 1
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
id | true | string | Order ID |
Response Details
Field | Data Type | Description |
---|---|---|
result | string | The result of the cancel request |
Get Order Details
This endpoint returns the latest status and details of an order. Orders created through API cannot be found after being cancelled for two hours.
curl -X GET \
'https://api.novadax.com/v1/orders/get?id=608695623247466496' \
-H 'X-Nova-Access-Key: your access key' \
-H 'X-Nova-Signature: signature' \
-H 'X-Nova-Timestamp: timestamp now'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
result = nova_client.get_order('608695623247466496')
print(result)
Response Content
{
"code": "A10000",
"data": {
"id": "608695623247466496",
"symbol": "BTC_BRL",
"type": "MARKET",
"side": "SELL",
"price": null,
"averagePrice": "0",
"amount": "0.123",
"filledAmount": "0",
"value": null,
"filledValue": "0",
"filledFee": "0",
"stopPrice": null,
"operator": null,
"status": "REJECTED",
"timestamp": 1565165945588
},
"message": "Success"
}
Request URL
GET /v1/orders/get
Weight: 1
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
id | True | string | Order ID |
Response Details
Field | Data Type | Description |
---|---|---|
id | string | Order ID |
symbol | string | The trading symbol |
type | string | The type of order |
side | string | The direction of order |
price | string | The price of order |
averagePrice | string | The average price of order |
amount | string | The amount of base currency |
filledAmount | string | The executed amount of base currency |
value | string | The amount of quote currency |
filledValue | string | The executed amount of quote currency |
filledFee | string | Transaction fee paid |
status | string | The status of order, can be found in order introduction |
timestamp | number | The time when the order was created |
Get Order History
This endpoint returns the order history based on a certain search filter. Orders created through API cannot be found after being cancelled for two hours.
curl -X GET \
'https://api.novadax.com/v1/orders/list?symbol=BTC_BRL&status=FINISHED&from=608705793440616448&to=608694995137859584&limit=100' \
-H 'X-Nova-Access-Key: your access key' \
-H 'X-Nova-Signature: signature' \
-H 'X-Nova-Timestamp: timestamp now'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
result = nova_client.list_orders('BTC_BRL', 'FINISHED', '608705793440616448', '608694995137859584', '100')
print(result)
Response Content
{
"code": "A10000",
"data": [
{
"id": "608695678650028032",
"symbol": "BTC_BRL",
"type": "MARKET",
"side": "SELL",
"price": null,
"averagePrice": "0",
"amount": "0.123",
"filledAmount": "0",
"value": null,
"filledValue": "0",
"filledFee": "0",
"stopPrice": null,
"operator": null,
"status": "REJECTED",
"timestamp": 1565165958796
},
{
"id": "608695623247466496",
"symbol": "BTC_BRL",
"type": "MARKET",
"side": "SELL",
"price": null,
"averagePrice": "0",
"amount": "0.123",
"filledAmount": "0",
"value": null,
"filledValue": "0",
"filledFee": "0",
"stopPrice": null,
"operator": null,
"status": "REJECTED",
"timestamp": 1565165945588
}
],
"message": "Success"
}
Request URL
GET /v1/orders/list
Weight: 10
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | false | string | The trading symbol, like BTC_BRL |
status | false | string | The status of orders(can be found in order introduction, use comma to separate different status). You can also use 'FINISHED' to find finished orders and use 'UNFINISHED' to find unfinished orders. |
fromId | false | string | Search order id to begin with |
toId | false | string | Search order id to end up with |
fromTimestamp | false | string | Search order creation time to begin with, in milliseconds |
toTimestamp | false | string | Search order creation time to end up with, in milliseconds |
limit | false | string | The number of orders to return, default 100, max 100 |
accountId | false | string | Sub account ID, if not informed, the order will be created under master account |
Response Details
Field | Data Type | Description |
---|---|---|
id | string | Order ID |
symbol | string | The trading symbol |
type | string | The type of order |
side | string | The direction of order |
price | string | The price of order |
averagePrice | string | The average price of order |
amount | string | The amount of base currency |
filledAmount | string | The executed amount of base currency |
value | string | The amount of quote currency |
filledValue | string | The executed amount of quote currency |
filledFee | string | Transaction fee paid |
status | string | The status of order, can be found in order introduction |
timestamp | number | The time when the order was created |
Get Order Match Details
This endpoint returns the match result of an order.
curl -X GET \
'https://api.novadax.com/v1/orders/fills?orderId=608716957545402368' \
-H 'X-Nova-Access-Key: your access key' \
-H 'X-Nova-Signature: signature' \
-H 'X-Nova-Timestamp: timestamp now'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
result = nova_client.list_order_fills('608716957545402368')
print(result)
Response Content
{
"code": "A10000",
"data": [
{
"id": "608717046691139584",
"orderId": "608716957545402368",
"symbol": "BTC_BRL",
"side": "BUY",
"amount": "0.0988",
"price": "45514.76",
"fee": "0.0000988 BTC",
"feeAmount": "0.0000988",
"feeCurrency": "BTC",
"role": "MAKER",
"timestamp": 1565171053345
},
{
"id": "608717065729085441",
"orderId": "608716957545402368",
"symbol": "BTC_BRL",
"side": "BUY",
"amount": "0.0242",
"price": "45514.76",
"fee": "0.0000242 BTC",
"feeAmount": "0.0000988",
"feeCurrency": "BTC",
"role": "MAKER",
"timestamp": 1565171057882
}
],
"message": "Success"
}
Request URL
GET /v1/orders/fills
Weight: 10
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
orderId | true | string | Order ID |
symbol | false | string | The trading symbol, like BTC_BRL |
fromId | false | string | Search fill id to begin with |
toId | false | string | Search fill id to end up with |
fromTimestamp | false | string | Search order fill time to begin with, in milliseconds |
toTimestamp | false | string | Search order fill time to end up with, in milliseconds |
limit | false | string | The number of fills to return, default 100, max 100 |
accountId | false | string | Sub account ID, if not informed, the fills will be return under master account |
Response Details
Field | Data Type | Description |
---|---|---|
id | string | Order match ID |
orderId | string | Order ID |
symbol | string | The trading symbol |
side | string | The direction of order, options: BUY or SELL |
price | string | The matched price |
amount | string | The matched amount |
fee | string | Transaction fee paid |
feeCurrency | string | Transaction fee paid currency |
feeAmount | string | Transaction fee paid amount |
role | string | The role of transaction,option: TAKER or MAKER |
timestamp | false | string |
Account
Get Account Balance
This endpoint returns the account balance.
curl 'https://api.novadax.com/v1/account/getBalance'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
result = nova_client.get_account_balance()
print(result)
Response Content
{
"code": "A10000",
"data": [
{
"available": "1.23",
"balance": "0.23",
"currency": "BTC",
"hold": "1"
}
],
"message": "Success"
}
Request URL
GET /v1/account/getBalance
Weight: 1
Request Parameters
No parameter is needed for this endpoint
Response Details
Field | Data Type | Description |
---|---|---|
currency | string | The currency of this balance |
balance | string | The balance of this currency |
hold | string | The balance in order |
available | string | The available balance |
Get Sub Account Balance
This endpoint returns the balance of sub account.
curl "https://api.novadax.com/v1/account/subs/balance?subId=xxx"
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
ava = self.api.subs_balance(subId)
Response Content
{
"code":"A10000",
"data":[
{
"balance":"7.22",
"currency":"BTC"
}
],
"message":"Success"
}
Request URL
GET /v1/account/subs/balance
Weight: 1
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
subId | ture | string | Sub account ID |
Response Details
Field | Data Type | Description |
---|---|---|
balance | string | Balance of sub account |
currency | string | Currency of this balance |
Get Sub Account Transfer Record
This endpoint returns the transfer record of sub account
curl "https://api.novadax.com/v1/account/subs/transfer/record?subId=xxx"
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
ava = self.api.subs_transfer_record(subId)
Response Content
{
"code": "A10000",
"data": [{
"subId": "CA648855702269333504",
"amount": "103.22",
"currency": "BRL",
"state": "success",
"type": "master-transfer-out"
}, {
"subId": "CA648855702269333504",
"amount": "3.5",
"currency": "BRL",
"state": "success",
"type": "master-transfer-in"
}],
"message": "Success"
}
Request URL
GET /v1/account/subs/transfer/record
Weight: 10
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
subId | ture | string | Sub account ID |
Response Details
Field | Data Type | Description |
---|---|---|
subId | string | Sub account ID |
amount | string | Transfer amount |
currency | string | Transfer currency |
state | string | Transfer state: success/fail |
type | string | Type: master-transfer-in (transfer into master account) or master-transfer-out (transfer from master account) |
Get Sub Account Transfer
The endpoint submits a transfer request of sub account
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
subId = 'CA648856083527372800'
assetCode = 'BTC'
transferAmount = '0.51'
transferType = 'master-transfer-out'
tid = self.api.subs_transfer(subId, assetCode, transferAmount, transferType);
print(tid)
Response Content
{
"code":"A10000",
"message":"Success",
"data":40
}
Request URL
POST /v1/account/subs/transfer
Weight: 5
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
subId | true | string | Sub account ID |
currency | true | string | Transfer currency |
transferAmount | true | string | Transfer amount |
transferType | true | string | Type,master-transfer-in or master-transfer-out |
Response Details
Data field returns the transfer record ID.
Wallet
Wallet Records of Deposits and Withdraws
The endpoint returns the records of deposits and withdraws.
curl -X GET \
'https://api.novadax.com/v1/wallet/query/deposit-withdraw?currency=BTC&type=coin_in&start=DR562339304588709888&size=10&direct=desc'\
-H 'X-Nova-Access-Key: your access key' \
-H 'X-Nova-Signature: signature' \
-H 'X-Nova-Timestamp: timestamp now' \
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
result = nova_client.wallet_deposit_withdraw_record()
print(result)
Response Content
{
"code": "A10000",
"data": [{
"id": "DR562339304588709888",
"type": "COIN_IN",
"currency": "XLM",
"chain": "XLM",
"address": "GCUTK7KHPJC3ZQJ3OMWWFHAK2OXIBRD4LNZQRCCOVE7A2XOPP2K5PU5Q",
"addressTag": "1000009",
"amount": 1.0,
"state": "SUCCESS",
"txHash": "39210645748822f8d4ce673c7559aa6622e6e9cdd7073bc0fcae14b1edfda5f4",
"createdAt": 1554113737000,
"updatedAt": 1601371273000
}...],
"message": "Success"
}
Request URL
GET /v1/wallet/query/deposit-withdraw
Weight: 10
Request Parameters
Field | Data Type | Required | Description | Default Value |
---|---|---|---|---|
currency | string | false | The currency code. e.g. BTC | NA |
type | string | false | default record type to search | coin_in and coin_out |
direct | string | false | the order of records,e.g. asc or desc |
asc |
size | int | false | the number of iterms to return | 100 |
start | string | false | the id of record, | NA |
Response Details
Field | Data Type | Description |
---|---|---|
id | string | the id of record |
type | string | the type of record |
currency | string | the currency code of record |
txHash | string | the txid of chain |
address | string | the dst address of txHash |
addressTag | string | the tag of txHash |
chain | string | Block chain name,internal means transfer through novadax inside rather than chain |
amount | decimal | the amount of txHash |
state | string | the state of record |
createdAt | long | The timestamp in milliseconds for the transfer creation |
updatedAt | long | The timestamp in milliseconds for the transfer's latest update |
List of possible record state
State | Description |
---|---|
Pending | the record is wait broadcast to chain |
x/M confirming |
the comfirming state of tx,the M is total confirmings needed |
SUCCESS | the record is success full |
FAIL | the record failed |
Send Cryptocurrencies
curl -X POST \
'https://api.novadax.com/v1/wallet/withdraw/coin' \
-H 'Content-Type: application/json' \
-H 'X-Nova-Access-Key: your access key' \
-H 'X-Nova-Signature: signature' \
-H 'X-Nova-Timestamp: timestamp now' \
-d '{
"code": "BTC",
"amount": "1",
"wallet": "your to_address"
}'
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
result = nova_client.withdraw_coin("BTC","1",'...')
print(result)
Response Content
{
"code":"A10000",
"data": "DR123",
"message":"Success"
}
Request URL
POST /v1/wallet/withdraw/coin
Weight: 600
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
code | ture | string | Crypto symbol, like BTC |
amount | true | string | Amount to send |
wallet | true | string | Wallet address to receive |
chainAlias | true | string | Wallet address to receive with chainAlias,default nova first chain |
tag | false | string | Tag, required when sending XLM, XRP, EOS |
Response Details
The data field will return the withdrawal id.
Chain Network Search
curl -X GET \
'https://api.novadax.com/v1/wallet/crypto/chain/{code}' \
-H 'Content-Type: application/json' \
-H 'X-Nova-Access-Key: your access key' \
-H 'X-Nova-Signature: signature' \
-H 'X-Nova-Timestamp: timestamp now' \
from novadax import RequestClient as NovaClient
nova_client = NovaClient('your access key', 'your secret key')
result = nova_client.crypto_chain("ALL")
print(result)
Request URL
GET /crypto/chain/{code}
Weight: 5
Request parameters
parm r name | param type | param note |
---|---|---|
code | String | crypto accout code,default value is "ALL" |
Response parameters
param name | param type | param note |
---|---|---|
accountCode | String | code account |
accountType | String | code account type:DIGITAL,LEGAL |
accountPrecision | Integer | code account precision |
accountOrder | Integer | code account order |
accountState | Integer | code account state,1:in-use,0: off-use |
tokens | List | crypro network List |
List of tokens
parame name | param type | param note |
---|---|---|
codeAccount | String | Code account |
chainAlias | String | crypto chain alias, use for send crypto |
chainName | String | crypto chain name, just for reading |
mainAddr | String | main address for memo crypto,default value is null |
useMemo | Integer | use memo or not,1:using,0:not using |
useDynamicSendFee | String | using dynamic sent fee,1:using,0:not using |
minConf | Integer | min confirmations of chain |
useFirst | Integer | default chain choosed in novadax when chainAlias is null in api |
state | Integer | chain is useful,1:in-use,0:off-use |
chainURL | String | chain url |
chainAddressURL | String | chain address url |
chainHashURL | String | chain hash url |
officialURL | String | chain official url |
WebSocket
Access
NovaDAX WebSocket API is based on Socket.io. You can find more information about Socket.io on their official website.
Address
wss://api.novadax.com
// Socket.IO example of establishing connection
const io = require("socket.io-client");
const socket = io("wss://api.novadax.com", {
transports: ['websocket']
});
// Socket.IO example of subscription
socket.emit("SUBSCRIBE", ["MARKET.BTC_USDT.TICKER", "MARKET.BTC_USDT.TRADE"])
socket.on("MARKET.BTC_USDT.TICKER", (ticker) => {
console.log(ticker)
})
socket.on("MARKET.BTC_USDT.TRADE", (trade) => {
console.log(trade)
})
// Socket.IO example of cancelling subscription
socket.emit("UNSUBSCRIBE", ["MARKET.BTC_USDT.DEPTH.LEVEL0"])
Limit
- Only supports
websocket
transports of Socket.io - One IP can only establish 10 WebSocket connections
Subscribe topics
When you subscribe a topic, you can receive all the notifications about it. Subscription format:
socket.emit("SUBSCRIBE", ["XXX"])
Cancel subscription
After subscribing a topic, you can cancel the subscription if you don’t want to receive notifications about the topic anymore. Format of canceling the subscription:
socket.emit("UNSUBSCRIBE", ["XXX"])
Subscribe Ticker Data of All Trading Pairs
After subscription, the system will send ticker data of all trading pairs once a second.
from novadax import WebSocketClient
nova_client = WebSocketClient('your access key(optional)', 'your secret key(optional)')
def tickers_handler(tickers):
print('received tickers: ', tickers)
nova_client.sub_market_tickers(tickers_handler)
Data
[
{
"ask": "34708.15",
"baseVolume24h": "34.08241488",
"bid": "34621.74",
"high24h": "35079.77",
"lastPrice": "34669.81",
"low24h": "34330.64",
"open24h": "34492.08",
"quoteVolume24h": "1182480.09502814",
"symbol": "BTC_BRL",
"timestamp": 1571112216346
}
]
Subscription Topic
MARKET.TICKERS
Request Parameters
No parameters are needed for this endpoint.
Response Details
Field | Data Type | Description |
---|---|---|
symbol | string | Trading symbol |
lastPrice | string | The price of last trade |
bid | string | The current best bid price |
ask | string | The current best ask price |
open24h | string | The opening price of last 24 hours |
high24h | string | The highest price of last 24 hours |
low24h | string | The lowest price of last 24 hours |
baseVolume24h | string | The trading volume in base currency of last 24 hours |
quoteVolume24h | string | The trading volume of quote currency of last 24 hours |
timestamp | number | The current system time in UTC time zone |
Subscribe Ticker Data of a Single Trading Pair
After subscription, the system will send ticker data of the chosen trading pair once a second.
from novadax import WebSocketClient
nova_client = WebSocketClient('your access key(optional)', 'your secret key(optional)')
def ticker_handler(ticker):
print('received ticker: ', ticker)
nova_client.sub_market_ticker("BTC_BRL", ticker_handler)
Data
{
"ask": "34708.15",
"baseVolume24h": "34.08241488",
"bid": "34621.74",
"high24h": "35079.77",
"lastPrice": "34669.81",
"low24h": "34330.64",
"open24h": "34492.08",
"quoteVolume24h": "1182480.09502814",
"symbol": "BTC_BRL",
"timestamp": 1571112216346
}
Subscription Topic
MARKET.{{symbol}}.TICKER
Request Parameter
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | true | string | Trading symbol |
Response Details
Field | Data Type | Description |
---|---|---|
symbol | string | Trading symbol |
lastPrice | string | The price of last trade |
bid | string | The current best bid price |
ask | string | The current best ask price |
open24h | string | The opening price of last 24 hours |
high24h | string | The highest price of last 24 hours |
low24h | string | The lowest price of last 24 hours |
baseVolume24h | string | The trading volume in base currency of last 24 hours |
quoteVolume24h | string | The trading volume of quote currency of last 24 hours |
timestamp | number | The current system time in UTC time zone |
Subscribe Depth Data
After subscription, the system will send the depth data of the chosen trading pairs once a second.
from novadax import WebSocketClient
nova_client = WebSocketClient('your access key(optional)', 'your secret key(optional)')
def depth_handler(depth):
print('received depth: ', depth)
nova_client.sub_market_depth("BTC_BRL", depth_handler)
Data
{
"asks": [
["43687.16", "0.5194"],
["43687.2", "1.3129"]
],
"bids": [
["43657.57", "0.6135"],
["43657.46", "0.0559"]
],
"timestamp": 1565057338020
}
Subscription Topic
MARKET.{{symbol}}.DEPTH.LEVEL0
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | true | string | Trading symbol |
Response Details
Field | Data Type | Description |
---|---|---|
asks | array | All current asks |
asks[][0] | string | Sell price |
asks[][1] | string | Sell amount |
bids | array | All current bids |
bids[][0] | string | Buy price |
bids[][1] | string | Buy amount |
timestamp | number | The current system time in UTC time zone |
Subscribe Order Execution Data
After subscription, the system will send notification about the latest executed orders.
from novadax import WebSocketClient
nova_client = WebSocketClient('your access key(optional)', 'your secret key(optional)')
def trade_handler(trades):
print('received trade: ', trades)
nova_client.sub_market_trade("BTC_BRL", trade_handler)
Data
[
{
"price": "43657.57",
"amount": "1",
"side": "SELL",
"timestamp": 1565007823401
},
{
"price": "43687.16",
"amount": "0.071",
"side": "BUY",
"timestamp": 1565007198261
}
]
Subscription Topic
MARKET.{{symbol}}.TRADE
Request Parameters
Field | Mandatory | Data Type | Description |
---|---|---|---|
symbol | true | string | Trading symbol |
Response Details
Field | Data Type | Description |
---|---|---|
price | string | The trading price |
amount | string | The trading volume |
side | string | The trading direction (SELL or BUY) |
timestamp | number | The time when the trade occurred |