API Booster
API Booster Intro
Bibox API Booster (hereinafter referred to as API Booster) is a fast development tool launched by Bibox for traders. Using API Booster can greatly reduce the difficulty of trading system development and obtain stable and reliable real-time data.
How to use API Booster
To use API Booster, traders only need to download API Booster to their computer and start it. API Booster will automatically connect to Bibox and continuously synchronize market data and account order data. Traders develop or modify their own trading system to make it connected with HTTP RESTFul interface provided by API Booster instead of directly connecting with Bibox API.
Why use API Booster
console.log('Bibox javascript demo');
# -*- coding:utf-8 -*-
if __name__ == '__main__':
print('Bibox python demo')
Console.WriteLine("Bibox c# demo");
Using API Booster is much simpler than using Bibox API directly. Traders can complete the connection with API Booster in a very small time. Traders only need to focus on writing strategies, and the maintenance of real-time data is done automatically by API Booster.
Below we will list main advantages of API Booster.
Pure HTTP RESTFul interface, easier development
API Booster only provides HTTP RESTFul interface, which simplifies the development work. In the past, developers used Websocket interface to obtain real-time data, which is now automatically completed by API Booster. The data obtained through API Booster HTTP RESTFul interface has no real-time loss.
Fewer interfaces, clearer
API Booster provides fewer and clearer interfaces than Bibox API. This is because API Booster automatically completes the assembly of multiple data, making a single interface provide more data content and clearer structure.
No signature required
Don't need to sign to use API Booster, just save API Key of the account into API Booster.
No frequency limit
There is no frequency limit for using API Booster interface to obtain market information or account data, and the frequency control of order cancellation is automatically completed by API Booster.
Install
Installation of API Booster is divided into two steps, first install JAVA environment, and then install API Booster.
Install JAVA environment
Please visit following link and follow instructions on the page to install JAVA environment.
Install API Booster
To install API Booster, please download API Booster executable JAR file from Bibox official website.
Tips: x.x.x is the version number, please modify it to the version number of the corresponding version you downloaded when running
Please create a new directory on your computer and move the above JAR file to this directory. During runtime, API Booster will create some necessary data files in this directory, please make sure there are no other files in this directory.
Start API Booster
console.log('Bibox javascript demo');
# -*- coding:utf-8 -*-
if __name__ == '__main__':
print('Bibox python demo')
Console.WriteLine("Bibox c# demo");
To start API Booster, just enter the following command in command line tool.
java -jar bibox-spot-apibooster-x.x.x.jar
Specific method is as follows:
Platform | Start method |
---|---|
Linux | Enter command line mode, or start "Terminal" application in graphics mode. Use cd command to enter the directory where bibox-spot-apibooster-x.x.x.jar is located. Enter the above command |
MacOS | Click the "Launchpad" rocket icon in the shortcut menu. Find and click the "Terminal" icon. Use cd command to enter the directory where bibox-spot-apibooster-x.x.x.jar is located. Enter the above command |
Windows | Open "File Explorer" Find and enter the directory where bibox-spot-apibooster-x.x.x.jar is located Hold down Shift key and click right mouse button on a blank space in "File Explorer" In the pop-up menu, click "Open Powershell window here" Enter the above command in "Powershell" window |
Service Port
API Booster uses port 8080 to provide HTTP services by default. If there are other services using this port in your system, you can specify the service port of API Booster through the "port" command line parameter.
java -jar bibox-spot-apibooster-x.x.x.jar --port 8081
The 8081 can be any unused port.
Stop Method
To stop API Booster, close command line tool, or use process management tool to close API Booster process.
API Booster Interface Documentation
console.log('Bibox javascript demo');
# -*- coding:utf-8 -*-
if __name__ == '__main__':
print('Bibox python demo')
Console.WriteLine("Bibox c# demo");
To read API Booster's detailed interface documentation, please enter localhost:8080 in the browser after starting API Booster.
Spot trading
List of alternate API domains
https://api.bibox.tel/v1/public/queryApiDomain
SDK and Demo
Bibox provides contract SDKs for developers in multiple languages.
These SDKs are developed based on the Bibox contract API and automatically complete the following functions:
- Data signature
- Data merge, for example: automatically merge depth
It's more convenient to use SDK to develop programs to access Bibox than to use API.
If you need to download or read more information, please click the following link:
Signature interface request method
Example
let CryptoJS = require("crypto-js");
let request = require("request");
let timestamp = Date.now(); // 1. Current timestamp
let param = {// 2. Requested parameters
select: 1
};
let strParam = JSON.stringify(param); // 2. Formatting parameters
let strToSign ='' + timestamp + strParam; // 3. This is the string that needs to be signed
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842"
let sign = CryptoJS.HmacMD5(strToSign, secret).toString();//4. Signed result
let url = "https://api.bibox.com/v3.1/transfer/mainAssets";
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//5. Set request headers
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: strParam // 6. Formatting parameters
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body) // 7. Response data
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
import sys, getopt
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/transfer/mainAssets'
body = {
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/transfer/mainAssets";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
1.Get current timestamp
2.Understand the parameter param required by the interface request, and format the parameter to get strParam
3.Generate the string strToSign that needs to be signed
4.Use apikey's secret to sign the string strToSign that needs to be signed with HmacMD5
5.When requesting, set the following fields of http headers
Field name | Field type | Field description | Field value |
---|---|---|---|
content-type | string | 'application/json' | |
bibox-api-key | string | your apikey | |
bibox-timestamp | long | Current timestamp,expressed in milliseconds | timestamp |
bibox-api-sign | string | Signature result | sign |
6.When requesting, set http body as the formatted request parameter strParam
7.The return value contains the field state, 0 means success, and other error codes, means failure. Successful results will have a corresponding field result, and failed results will have a corresponding field msg.
Network test
Request
let request = require("request");
let url = "https://api.bibox.com/v3/mdata/ping";
request.get(url,
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import requests
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_request():
path = '/v3/mdata/ping'
resp = requests.get(BASE_URL + path)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
namespace ConsoleProgram
{
public class Class1
{
static readonly HttpClient client = new HttpClient();
static async Task Main()
{
try
{
String uri = "https://api.bibox.tel/v3/mdata/ping";
string responseBody = await client.GetStringAsync(uri);
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
GET https://api.bibox.com/v3/mdata/ping
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|
Response
{
"state":0,
"result":1604319540420,
"cmd":"ping",
"ver":"3"
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
result | server timestamp |
Other fields | Ignore |
Market
Query trading pairs
Request
let request = require("request");
let url = "https://api.bibox.com/v3/mdata/pairList";
request.get(url,
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import requests
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_request():
path = '/v3/mdata/pairList'
resp = requests.get(BASE_URL + path)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
namespace ConsoleProgram
{
public class Class1
{
static readonly HttpClient client = new HttpClient();
static async Task Main()
{
try
{
String uri = "https://api.bibox.tel/v3/mdata/pairList";
string responseBody = await client.GetStringAsync(uri);
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
GET https://api.bibox.com/v3/mdata/pairList
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|
Response
{
"state":0,
"result":[
{
"id":1,
"pair":"BIX_BTC",
"pair_type":0,
"area_id":7,
"is_hide":0,
"decimal":8
},
{
"id":2,
"pair":"BIX_ETH",
"pair_type":0,
"area_id":8,
"is_hide":0,
"decimal":8
}
],
"cmd":"pairList",
"ver":"3"
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
id | Trading pair id |
pair | Trading pair |
decimal | Price accuracy |
Other fields | Ignore |
Query kline
Request
let request = require("request");
let url = "https://api.bibox.com/v3/mdata/kline?pair=BTC_USDT&period=1min&size=2";
request.get(url,
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import requests
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_request():
path = '/v3/mdata/kline?pair=BTC_USDT&period=1min&size=2'
resp = requests.get(BASE_URL + path)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
namespace ConsoleProgram
{
public class Class1
{
static readonly HttpClient client = new HttpClient();
static async Task Main()
{
try
{
String uri = "https://api.bibox.tel/v3/mdata/kline?pair=BTC_USDT&period=1min&size=2";
string responseBody = await client.GetStringAsync(uri);
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
GET https://api.bibox.com/v3/mdata/kline?pair=BTC_USDT&period=1min&size=10
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
pair | true | string | trading pair | BIX_BTC, ETH_BTC, ... | |
period | true | string | k-line period | '1min', '3min', '5min', '15min', '30min', '1hour', '2hour', '4hour', '6hour', '12hour ','day','week' | |
size | false | integer | quantity | 1000 | 1-1000 |
Response
{
"state":0,
"result":[
{
"time":1604319840000,
"open":"11700.00000000",
"high":"11700.00000000",
"low":"11700.00000000",
"close":"11700.00000000",
"vol":"0.00000000"
},
{
"time":1604319900000,
"open":"11700.00000000",
"high":"11700.00000000",
"low":"11700.00000000",
"close":"11700.00000000",
"vol":"0.00000000"
}
],
"cmd":"kline",
"ver":"3"
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
time | Timestamp |
open | Opening price |
high | Highest price |
low | Lowest price |
close | Closing price |
vol | Volume |
Other fields | Ignore |
Query market of all pairs
Request
let request = require("request");
let url = "https://api.bibox.com/v3/mdata/marketAll";
request.get(url,
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import requests
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_request():
path = '/v3/mdata/marketAll'
resp = requests.get(BASE_URL + path)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
namespace ConsoleProgram
{
public class Class1
{
static readonly HttpClient client = new HttpClient();
static async Task Main()
{
try
{
String uri = "https://api.bibox.tel/v3/mdata/marketAll";
string responseBody = await client.GetStringAsync(uri);
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
GET https://api.bibox.com/v3/mdata/marketAll
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|
Response
{
"state":0,
"result":[
{
"is_hide":0,
"high_cny":"0.3668",
"amount":"380746.08",
"coin_symbol":"BIX",
"last":"0.053142",
"currency_symbol":"USDT",
"change":"+0.000460",
"low_cny":"0.3470",
"base_last_cny":"0.35286384",
"area_id":15,
"percent":"+0.87%",
"last_cny":"0.3529",
"high":"0.055248",
"low":"0.052253",
"pair_type":0,
"last_usd":"0.0531",
"vol24H":"7059898",
"id":90,
"high_usd":"0.0552",
"low_usd":"0.0522"
},
{
"is_hide":0,
"high_cny":"92032.3103",
"amount":"392242739.20",
"coin_symbol":"BTC",
"last":"13328.9300",
"currency_symbol":"USDT",
"change":"-437.5799",
"low_cny":"87735.6210",
"base_last_cny":"88504.33592048",
"area_id":15,
"percent":"-3.17%",
"last_cny":"88504.3359",
"high":"13860.2500",
"low":"13213.1600",
"pair_type":0,
"last_usd":"13318.9290",
"vol24H":"28728",
"id":36,
"high_usd":"13849.8503",
"low_usd":"13203.2459"
}
],
"cmd":"marketAll",
"ver":"3"
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
id | trading pair id |
coin_symbol | Trading currency |
currency_symbol | Pricing currency |
last | 24h latest price |
high | 24h highest price |
low | 24h lowest price |
change | 24h change |
percent | 24h change percent |
vol24H | 24h Volume |
amount | 24h amount |
last_cny | 24h latest price discount cny |
high_cny | 24h highest price discount cny |
low_cny | 24h lowest price discount cny |
last_usd | 24h latest price discount usd |
high_usd | 24h highest price discount usd |
low_usd | 24h lowest price discount usd |
Other fields | Ignore |
Query the market of one pair
Request
let request = require("request");
let url = "https://api.bibox.com/v3/mdata/market?pair=BIX_USDT";
request.get(url,
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import requests
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_request():
path = '/v3/mdata/market?pair=BIX_USDT'
resp = requests.get(BASE_URL + path)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
namespace ConsoleProgram
{
public class Class1
{
static readonly HttpClient client = new HttpClient();
static async Task Main()
{
try
{
String uri = "https://api.bibox.tel/v3/mdata/market?pair=BIX_USDT";
string responseBody = await client.GetStringAsync(uri);
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
GET https://api.bibox.com/v3/mdata/market?pair=BIX_USDT
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
pair | true | string | trading pair | BIX_BTC, ETH_BTC, ... |
Response
{
"state":0,
"result":{
"is_hide":0,
"high_cny":"0.3668",
"amount":"380746.08",
"coin_symbol":"BIX",
"last":"0.053142",
"currency_symbol":"USDT",
"change":"+0.000460",
"low_cny":"0.3470",
"base_last_cny":"0.35286384",
"area_id":15,
"percent":"+0.87%",
"last_cny":"0.3529",
"high":"0.055248",
"low":"0.052253",
"pair_type":0,
"last_usd":"0.0531",
"vol24H":"7059898",
"id":90,
"high_usd":"0.0552",
"low_usd":"0.0522"
},
"cmd":"market",
"ver":"3"
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
id | trading pair id |
coin_symbol | Trading currency |
currency_symbol | Pricing currency |
last | 24h latest price |
high | 24h highest price |
low | 24h lowest price |
change | 24h change |
percent | 24h change percent |
vol24H | 24h Volume |
amount | 24h amount |
last_cny | 24h latest price discount cny |
high_cny | 24h highest price discount cny |
low_cny | 24h lowest price discount cny |
last_usd | 24h latest price discount usd |
high_usd | 24h highest price discount usd |
low_usd | 24h lowest price discount usd |
Other fields | Ignore |
Query depth
Request
let request = require("request");
let url = "https://api.bibox.com/v3/mdata/depth?pair=BTC_USDT&size=2";
request.get(url,
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import requests
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_request():
path = '/v3/mdata/depth?pair=BTC_USDT&size=2'
resp = requests.get(BASE_URL + path)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
namespace ConsoleProgram
{
public class Class1
{
static readonly HttpClient client = new HttpClient();
static async Task Main()
{
try
{
String uri = "https://api.bibox.tel/v3/mdata/depth?pair=BTC_USDT&size=2";
string responseBody = await client.GetStringAsync(uri);
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
GET https://api.bibox.com/v3/mdata/depth?pair=BIX_BTC&size=10
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
pair | true | string | trading pair | BIX_BTC, ETH_BTC, ... | |
size | false | integer | quantity | 200 | 1-200 |
Response
{
"state":0,
"result":{
"pair":"BTC_USDT",
"update_time":1604316939377,
"asks":[
{
"volume":"0.00320000",
"price":"11739.1407"
},
{
"volume":"0.00320000",
"price":"11762.6189"
}
],
"bids":[
{
"volume":"0.00640000",
"price":"11692.3246"
},
{
"volume":"0.00490000",
"price":"11668.9866"
}
]
},
"cmd":"depth",
"ver":"3"
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
pair | Trading pair |
update_time | Timestamp |
asks | Seller Depth |
bids | Buyer Depth |
price | Pending price |
volume | Pending volume |
Other fields | Ignore |
Query market records
Request
let request = require("request");
let url = "https://api.bibox.com/v3/mdata/deals?pair=BTC_USDT&size=2";
request.get(url,
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import requests
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_request():
path = '/v3/mdata/deals?pair=BTC_USDT&size=2'
resp = requests.get(BASE_URL + path)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
namespace ConsoleProgram
{
public class Class1
{
static readonly HttpClient client = new HttpClient();
static async Task Main()
{
try
{
String uri = "https://api.bibox.tel/v3/mdata/deals?pair=BTC_USDT&size=2";
string responseBody = await client.GetStringAsync(uri);
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
GET https://api.bibox.com/v3/mdata/deals?pair=BTC_USDT&size=10
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
pair | true | string | trading pair | BIX_BTC, ETH_BTC, ... | |
size | false | integer | quantity | 200 | 1-200 |
Response
{
"state":0,
"result":[
{
"pair":"BTC_USDT",
"price":"11700.0000",
"amount":"0.01000000",
"time":1604316939377,
"side":2
},
{
"pair":"BTC_USDT",
"price":"11857.0026",
"amount":"0.00160000",
"time":1604308219643,
"side":2
}
],
"cmd":"deals",
"ver":"3"
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
pair | Trading pair |
price | Deal price |
volume | Deal quantity |
time | Deal time |
side | taker trading direction, 1-buy, 2-sell |
Other fields | Ignore |
Query tiker
Request
let request = require("request");
let url = "https://api.bibox.com/v3/mdata/ticker?pair=BTC_USDT";
request.get(url,
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import requests
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_request():
path = '/v3/mdata/ticker?pair=BTC_USDT'
resp = requests.get(BASE_URL + path)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
namespace ConsoleProgram
{
public class Class1
{
static readonly HttpClient client = new HttpClient();
static async Task Main()
{
try
{
String uri = "https://api.bibox.tel/v3/mdata/ticker?pair=BTC_USDT";
string responseBody = await client.GetStringAsync(uri);
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
GET https://api.bibox.com/v3/mdata/ticker?pair=BTC_USDT
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
pair | true | string | trading pair | BIX_BTC, ETH_BTC, ... |
Response
{
"state":0,
"result":{
"pair":"BTC_USDT",
"last":"11700.0000",
"last_usd":"11700.00",
"last_cny":"78287.05",
"high":"11880.0000",
"low":"11700.0000",
"buy":"11692.3246",
"buy_amount":"0.00640000",
"sell":"11739.1407",
"sell_amount":"0.00320000",
"vol":"0.02160000",
"percent":"-1.51%",
"timestamp":1604316939377,
"base_last_cny":"78287.05250000"
},
"cmd":"ticker",
"ver":"3"
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
pair | Trading pair |
buy | Latest buying price |
buy_amount | Latest buying amount |
sell | Latest selling price |
sell_amount | Latest selling amount |
high | 24h highest price |
last | latest price |
low | 24h lowest price |
timestamp | Timestamp |
vol | 24h volume |
percent | 24h change percent |
last_cny | Latest Trading price, priced in cny |
last_usd | Latest Trading price, priced in usd |
Other fields | Ignore |
Order restriction information
Request
let request = require("request");
let url = "https://api.bibox.com/v3.1/orderpending/tradeLimit";
request.get(url,
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import requests
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_request():
path = '/v3.1/orderpending/tradeLimit'
resp = requests.get(BASE_URL + path)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
namespace ConsoleProgram
{
public class Class1
{
static readonly HttpClient client = new HttpClient();
static async Task Main()
{
try
{
String uri = "https://api.bibox.tel/v3.1/orderpending/tradeLimit";
string responseBody = await client.GetStringAsync(uri);
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
GET https://api.bibox.com/v3.1/orderpending/tradeLimit
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|
Response
{
"result":{
"min_trade_price":{
"default":"0.00000001",
"USDT":"0.0001",
"DAI":"0.0001"
},
"min_trade_amount":{
"default":"0.0001"
},
"min_trade_money":{
"USDT":"1",
"DAI":"1",
"GUSD":"1",
"BIX":"3",
"BTC":"0.0002",
"ETH":"0.005"
}
},
"cmd":"tradeLimit",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
min_trade_price | Minimum order price column |
-default | The minimum order price limit for ordinary trading pairs is 0.00000001 |
-USDT | The maximum order price limit in the USDT trading area is 0.0001. The decimal part exceeding 0.0001 will be automatically discarded. It is applicable to all trading pairs denominated in USDT |
-DAI | The minimum order price limit in the DAI trading area is 0.0001. The decimal part exceeding 0.0001 will be automatically discarded. It is applicable to all trading pairs denominated in DAI |
min_trade_amount | Minimum order quantity column |
-default | The minimum order quantity limit is 0.0001, the decimal part exceeding 0.0001 will be automatically discarded, applicable to all trading pairs |
min_trade_money | Minimum order amount column |
-USDT | The minimum order amount in USDT trading area is limited to 1, and so on |
Spot Asset(Need ApiKey)
Wallet assets
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3.1/transfer/mainAssets";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let param = {
select: 1
};
let cmd = JSON.stringify(param); //format param
let timestamp ='' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//Set request header
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd//post parameter string
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
import sys, getopt
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/transfer/mainAssets'
body = {
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/transfer/mainAssets";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3.1/transfer/mainAssets
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
select | false | integer | Whether to query asset details | 0-Total assets of each currency, 1-Request asset details of all currencies |
Response
{
"result":{
"total_btc":"0.01373280",
"total_cny":"1253.48",
"total_usd":"188.63",
"assets_list":[
{
"coin_symbol":"BTC",
"BTCValue":"0.00149188",
"CNYValue":"136.17",
"USDValue":"20.49",
"balance":"0.00149188",
"freeze":"0.00000000"
},
{
"coin_symbol":"BIX",
"BTCValue":"0.00098407",
"CNYValue":"89.82",
"USDValue":"13.52",
"balance":"247.87570000",
"freeze":"0.00000000"
}
]
},
"cmd":"assets",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
total_btc | The sum of assets in each currency, btc-based |
total_cny | The sum of assets in each currency, cny-based |
total_usd | The sum of assets of each currency, usd-based |
assets_list | Currency asset list |
coin_symbol | currency |
balance | Available assets |
freeze | freeze assets |
BTCValue | btc valuation |
CNYValue | cny valuation |
USDValue | usd valuation |
Other fields | Ignore |
Spot assets
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3.1/spot/account/assets";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let param = {
select: 1
};
let cmd = JSON.stringify(param); //format param
let timestamp ='' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//Set request header
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd//post parameter string
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/spot/account/assets'
body = {
'select': 1
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/spot/account/assets";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
select = 1,
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3.1/spot/account/assets
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
select | false | integer | Whether to query asset details | 0-Total assets of each currency, 1-Request asset details of all currencies |
Response
{
"result":{
"total_btc":"0.01373280",
"total_cny":"1253.48",
"total_usd":"188.63",
"assets_list":[
{
"coin_symbol":"BTC",
"BTCValue":"0.00149188",
"CNYValue":"136.17",
"USDValue":"20.49",
"balance":"0.00149188",
"freeze":"0.00000000"
},
{
"coin_symbol":"BIX",
"BTCValue":"0.00098407",
"CNYValue":"89.82",
"USDValue":"13.52",
"balance":"247.87570000",
"freeze":"0.00000000"
}
]
},
"cmd":"assets",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
total_btc | The sum of assets in each currency, btc-based |
total_cny | The sum of assets in each currency, cny-based |
total_usd | The sum of assets of each currency, usd-based |
assets_list | Currency asset list |
coin_symbol | currency |
balance | Available assets |
freeze | freeze assets |
BTCValue | btc valuation |
CNYValue | cny valuation |
USDValue | usd valuation |
Other fields | Ignore |
Deposit
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3.1/transfer/transferIn";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let param = {
coin_symbol:'BTC'
};
let cmd = JSON.stringify(param); //format param
let timestamp ='' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//Set request header
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd//post parameter string
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
import sys, getopt
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/transfer/transferIn'
body = {
'coin_symbol': 'BTC'
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/transfer/transferIn";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
coin_symbol = "BTC",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3.1/transfer/transferIn
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
coin_symbol | true | string | Deposit currency | BIX, BTC, ... |
Response
{
"result":"13f2LpNAdsKuxdTt2bKFLaSZL7toeyieGE",
"cmd":"transferIn",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
result | Deposit address |
Other fields | Ignore |
Withdrawal
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3.1/transfer/transferOut";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let param = {
coin_symbol:'BTC',
amount: 0.1,
addr: '13f2LpNAdsKuxdTt2bKFLaSZL7toeyieGExxx',
memo:''
};
let cmd = JSON.stringify(param); //format param
let timestamp ='' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//Set request header
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd//post parameter string
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
import sys, getopt
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/transfer/transferOut'
body = {
'coin_symbol': 'BTC',
'amount': 0.1,
'addr': '13f2LpNAdsKuxdTt2bKFLaSZL7toeyieGExxx',
'memo': ''
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/transfer/transferOut";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
coin_symbol = "BTC",
amount = "0.1",
addr = "13f2LpNAdsKuxdTt2bKFLaSZL7toeyieGExxx",
memo = "",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3.1/transfer/transferOut
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
coin_symbol | true | string | Withdrawal currency | BIX, BTC, ... | |
amount | true | double | Withdrawal quantity | Must be greater than the minimum withdrawal quantity for each currency | |
addr | true | string | Withdrawal address | Currency legal address | |
memo | false | string | Withdrawal label | Some currency withdrawals must specify a label, which is unique in combination with the address, such as EOS |
Response
{
"state":0,
"result":228,
"cmd":"transfer/transferOut"
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
result | withdrawal id |
Other fields | Ignore |
Query deposit records
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3.1/transfer/transferInList";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let param = {
coin_symbol:'USDT',
filter_type: 0,
page: 1,
size: 10
};
let cmd = JSON.stringify(param); //format param
let timestamp ='' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//Set request header
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd//post parameter string
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/transfer/transferInList'
body = {
'coin_symbol': 'USDT',
'filter_type': 0,
'page': 1,
'size': 10
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/transfer/transferInList";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
coin_symbol = "USDT",
filter_type = 0,
page = 1,
size = 10,
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3.1/transfer/transferInList
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
filter_type | false | integer | deposit record filter | 0 | 0-all, 1-deposit in progress, 2-deposit received, 3-deposit failed |
coin_symbol | false | string | Deposit currency | BIX, ETH, ... | |
page | true | integer | page number | starting from 1 | |
size | true | integer | number per page | 1-50 |
Response
{
"result":{
"count":1,
"page":1,
"items":[
{
"id":1682192,
"to":"TXLhYFsWu84vU5ngs8J88yphTPdv69zrqoD",
"tx_id":"a8f77b3a20758d85f71f2d993766c9b6c2daf1b1f34992e409e1a47247e5a5e45",
"coin_symbol":"USDT",
"chain_type":"TRC20",
"confirmCount":"20",
"amount":"0.00094400",
"createdAt":1596876872000,
"status":2
}
]
},
"cmd":"transferInList",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
count | The number of records on the current page, if there is a next page, count=the number of records on the current page+1 |
page | page number, starting from 1 |
items | records |
coin_symbol | currency |
to_address | deposit address |
amount | deposit amount |
confirmCount | deposit confirmation number |
createdAt | deposit time |
status | deposit status, 1-deposit in progress, 2-deposit received, 3-deposit failed |
Other fields | Ignore |
Query withdrawal records
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3.1/transfer/transferOutList";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let param = {
coin_symbol:'USDT',
filter_type: 2,
page: 1,
size: 10
};
let cmd = JSON.stringify(param); //format param
let timestamp ='' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//Set request header
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd//post parameter string
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/transfer/transferOutList'
body = {
'coin_symbol': 'USDT',
'filter_type': 2,
'page': 1,
'size': 10
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/transfer/transferOutList";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
coin_symbol = "USDT",
filter_type = 2,
page = 1,
size = 10,
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3.1/transfer/transferOutList
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
filter_type | false | integer | Withdrawal record screening | -2: failed review; -1: user cancelled; 0: pending review; 1: approved (to be issued currency); 2: currency issued; 3: currency issued Complete | |
coin_symbol | false | string | Withdrawal currency | BIX, ETH, ... | |
page | true | integer | page number | starting from 1 | |
size | true | integer | number per page | 1-50 |
Response
{
"result":{
"count":1,
"page":1,
"items":[
{
"id":809022,
"to_address":"0x606a84A14307418F47C6ad538b5E73C93Ff9C8Cf",
"tx_id":"0xd3cf26d514c1e62f85de84b4e24fbd219084dd078daa7e639844c33cdf81bd62b",
"coin_symbol":"USDT",
"chain_type":"ERC20",
"amount_real":"1000.00000000",
"amount":"1003.00000000",
"createdAt":1596876972000,
"memo":"",
"status":2
}
]
},
"cmd":"transferOutList",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
count | The number of records on the current page, if there is a next page, count=the number of records on the current page+1 |
page | page number, starting from 1 |
items | records |
coin_symbol | currency |
to_address | Withdrawal address |
amount | Withdrawal amount |
fee | Withdrawal fee |
createdAt | deposit time |
memo | memo |
status | status, 1-withdrawal in progress, 2-withdrawal received, 3-withdrawal failed, 4-withdrawal cancelled |
Other fields | Ignore |
Get currency configuration
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3.1/transfer/coinConfig";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let param = {
};
let cmd = JSON.stringify(param); //format param
let timestamp ='' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//Set request header
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd//post parameter string
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/transfer/coinConfig'
body = {
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/transfer/coinConfig";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3.1/transfer/coinConfig
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
coin_symbol | false | string | currency type | BIX, ETH... |
Response
{
"result":[
{
"coin_symbol":"BTC",
"is_active":1,
"original_decimals":8,
"enable_deposit":1,
"enable_withdraw":1,
"withdraw_fee":0.0008,
"withdraw_min":0.005
}
],
"cmd":"coinConfig",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
coin_symbol | currency |
original_decimals | Currency original value precision |
enable_deposit | Whether it can be depositd, 0-prohibited, 1-can |
enable_withdraw | Whether withdrawal is possible, 0-forbidden, 1-yes |
withdraw_fee | Withdrawal fee |
withdraw_min | Minimum withdrawal amount |
Other fields | Ignore |
Query a certain withdrawal record
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3.1/transfer/withdrawInfo";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let param = {
id: 228
};
let cmd = JSON.stringify(param); //format param
let timestamp ='' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//Set request header
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd//post parameter string
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/transfer/withdrawInfo'
body = {
'id': 228
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/transfer/withdrawInfo";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
id = 228,
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3.1/transfer/withdrawInfo
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
id | true | integer | withdrawal id |
Response
{
"state":0,
"result":{
"id":228,
"createdAt": 1512756997000,
"coin_symbol":"LTC",
"to_address":"xxxxxxxxxxxxxxxxxxxxxxxxxx",
"status":3,
"amount":"1.00000000",
"fee":0.1
},
"cmd":"withdrawInfo"
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
id | withdrawal id |
coin_symbol | currency |
createdAt | Withdrawal time |
to_address | Withdrawal address |
status | Status, -2: Approval failed; -1: User canceled; 0: Pending approval; 1: Approved (to be issued coins); 2: In the process of issuing coins; 3: Issuing coins completed |
amount | Withdrawal amount |
fee | Withdrawal fee |
Other fields | Ignore |
Spot Trade(Need ApiKey)
Place an order
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3/spot/order/trade";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let param = {
pair:'BIX_USDT',
order_side: 2,
order_type: 2,
price: 0.05458,
amount: 100
};
let cmd = JSON.stringify(param); //format param
let timestamp ='' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//Set request header
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd//post parameter string
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3/spot/order/trade'
body = {
'pair': 'BIX_USDT',
'order_side': 2,
'order_type': 2,
'price': 0.05458,
'amount': 100
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3/spot/order/trade";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
pair = "BIX_USDT",
order_side = 2,
order_type = 2,
price = "0.05458",
amount = "100",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3/spot/order/trade
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
pair | true | string | trading pair | BIX_BTC, ETH_BTC, ... | |
order_type | true | integer | Trading type | 2-Limit order | |
order_side | true | integer | Trading direction | 1-buy, 2-sell | |
price | true | double | order price | minimum value 0.00000001 | |
amount | true | double | order amount | minimum 0.0001 | |
client_oid | false | long to string | User-defined id | '110011223344' |
Response
{
"order_id":"12845594488036185",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
order_id | order id |
status | Status, -1 Failed 0 or 1-Pending, 2-Partially completed, 3-Completely completed, 4-Partially cancelled, 5-Completely cancelled |
Other fields | Ignore |
Cancel an order
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3/spot/order/cancel";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let param = {
order_id: "12845594488036185"
};
let cmd = JSON.stringify(param); //format param
let timestamp ='' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//Set request header
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd//post parameter string
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3/spot/order/cancel'
body = {
'order_id': "12845594488036185"
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3/spot/order/cancel";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
order_id = "12845594488036185",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3/spot/order/cancel
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
order_id | true | string | order id |
Response
{
"result":"success",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
result | Note: The result only means that the server has received an order cancellation request, and the order record can be queried from the cancellation result |
Other fields | Ignore |
Cancel some orders
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3/spot/order/cancelBatch";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe"; //your apikey
let secret = "c708ac3e70d115ec29efbee197330627d7edf842"; //your apikey secret
let param = {
order_ids:["12845594488036185","12845594488036186"]
};
let cmd = JSON.stringify(param); //format param
let timestamp = '' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,
method: "POST",
headers: {
'content-type': 'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3/spot/order/cancelBatch'
body = {
'order_ids': ["12845594488036185","12845594488036186"]
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3/spot/order/cancelBatch";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
order_ids = new [] {"12845594488036185", "12845594488036186"},
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3/spot/order/cancelBatch
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
order_ids | true | string array | order id array |
Response
{
"result":"success",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
result | Note: The result only means that the server has received an order cancellation request, and the order record can be queried from the cancellation result |
Other fields | Ignore |
Cancel all orders
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3/spot/order/cancelAll";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe"; //your apikey
let secret = "c708ac3e70d115ec29efbee197330627d7edf842"; //your apikey secret
let param = {
"pair": "BTC_USDT"
};
let cmd = JSON.stringify(param); //format param
let timestamp = '' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,
method: "POST",
headers: {
'content-type': 'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3/spot/order/cancelAll'
body = {
"pair": "BTC_USDT"
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3/spot/order/cancelAll";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
pair = "BTC_USDT"
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3/spot/order/cancelAll
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
pair | true | string | Trading pair | BIX_BTC, ETH_BTC, ... |
Response
{
"result":"success",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
result | Note: The result only means that the server has received an order cancellation request, and the order record can be queried from the cancellation result |
Other fields | Ignore |
Get open orders
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3.1/orderpending/orderPendingList";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let param = {
pair:'BIX_USDT',
account_type: 0,
page: 1,
size: 10
};
let cmd = JSON.stringify(param); //format param
let timestamp ='' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//Set request header
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd//post parameter string
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/orderpending/orderPendingList'
body = {
'pair': 'BIX_USDT',
'account_type': 0,
'page': 1,
'size': 10
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/orderpending/orderPendingList";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
pair = "BIX_USDT",
account_type = 0,
page = 1,
size = 10,
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3.1/orderpending/orderPendingList
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
pair | false | string | Trading pair | BIX_BTC, ETH_BTC, ... | |
account_type | true | integer | account type | 0-spot account | |
order_side | false | integer | Trading direction | 1-Buy, 2-Sell | |
coin_symbol | false | string | Trading currency | BIX, EOS, ... | |
currency_symbol | false | string | Pricing currency | BTC, USDT, ... | |
page | true | integer | page number | starting from 1 | |
size | true | integer | number per page | 1-50 |
Response
{
"result":{
"count":1,
"page":1,
"items":[
{
"id":"12874181782731851",
"createdAt":1604309861000,
"account_type":0,
"pair":"BIX_USDT",
"coin_symbol":"BIX",
"currency_symbol":"USDT",
"order_side":2,
"order_type":2,
"price":"0.054330",
"deal_price":"0.000000",
"amount":"100.0000",
"money":"5.43300000",
"deal_amount":"0.0000",
"deal_percent":"0.00%",
"deal_money":"0.00000000",
"deal_count":0,
"status":1,
"unexecuted":"100.0000"
}
]
},
"cmd":"orderPendingList",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
count | The number of records on the current page, if there is a next page, count=the number of records on the current page+1 |
page | page number, starting from 1 |
items | records |
id | order id |
createdAt | Creation time |
account_type | Account type 0-spot account |
coin_symbol | Trading currency |
currency_symbol | Pricing currency |
order_side | Trading direction, 1-buy, 2-sell |
order_type | Order type, 1-market order, 2-limit order |
price | Order price, market order is 0 |
amount | Order quantity |
money | Order value |
deal_amount | Deal quantity |
deal_percent | Deal percentage |
unexecuted | Unexecuted quantity |
status | Status, -1 Failed 0 or 1-Pending, 2-Partially completed, 3-Completely completed, 4-Partially cancelled, 5-Completely cancelled |
Other fields | Ignore |
Get historical orders
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3.1/orderpending/pendingHistoryList";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let param = {
pair:'BIX_USDT',
account_type: 0,
page: 1,
size: 10
};
let cmd = JSON.stringify(param); //format param
let timestamp ='' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//Set request header
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd//post parameter string
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/orderpending/pendingHistoryList'
body = {
'pair': 'BIX_USDT',
'account_type': 0,
'page': 1,
'size': 10
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/orderpending/pendingHistoryList";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
pair = "BIX_USDT",
account_type = 0,
page = 1,
size = 10,
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3.1/orderpending/pendingHistoryList
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
pair | false | string | Trading pair | BIX_BTC, ETH_BTC, ... | |
account_type | true | integer | account type | 0-spot account | |
order_side | false | integer | Trading direction | 1-Buy, 2-Sell | |
coin_symbol | false | string | Trading currency | BIX, EOS, ... | |
currency_symbol | false | string | Pricing currency | BTC, USDT, ... | |
hide_cancel | false | integer | hide cancelled orders | 0-not hide, 1-hidden | |
page | true | integer | page number | starting from 1 | |
size | true | integer | number per page | 1-50 |
Response
{
"result":{
"count":11,
"page":1,
"items":[
{
"id":"12845594488036185",
"createdAt":1604305967000,
"account_type":0,
"coin_symbol":"BIX",
"currency_symbol":"USDT",
"order_side":2,
"order_type":2,
"price":"0.054580",
"amount":"100.0000",
"money":"5.45800000",
"deal_price":"0.000000",
"deal_amount":"0.0000",
"deal_money":"0.00000000",
"status":5
}
]
},
"cmd":"pendingHistoryList",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
count | The number of records on the current page, if there is a next page, count=the number of records on the current page+1 |
page | page number, starting from 1 |
items | records |
id | order id |
createdAt | Creation time |
account_type | Account type 0-spot account |
coin_symbol | Trading currency |
currency_symbol | Pricing currency |
order_side | Trading direction, 1-buy, 2-sell |
order_type | Order type, 1-market order, 2-limit order |
price | Order price |
amount | Order quantity |
money | Order value |
deal_price | Average deal price |
deal_amount | Deal quantity |
deal_money | Deal value |
deal_percent | Deal percentage |
status | Status, -1 Failed 0 or 1-Pending, 2-Partially completed, 3-Completely completed, 4-Partially cancelled, 5-Completely cancelled |
Other fields | Ignore |
Get deal records(based on order id)
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3.1/orderpending/orderDetail";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let param = {
id: "12826902662624234",
account_type: 0
};
let cmd = JSON.stringify(param); //format param
let timestamp ='' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//Set request header
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd//post parameter string
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/orderpending/orderDetail'
body = {
'id': '12826902662624234',
'account_type': 0,
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/orderpending/orderDetail";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
id = "12826902662624234",
account_type = 0,
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3.1/orderpending/orderDetail
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
id | true | string | order id | ||
account_type | true | integer | account type | 0-spot account |
Response
{
"result":{
"sum":"3.57490350",
"orderList":[
{
"id":"2251799823470863898",
"createdAt":1599730918000,
"account_type":0,
"coin_symbol":"BIX",
"currency_symbol":"USDT",
"order_side":1,
"order_type":2,
"price":"0.071300",
"amount":"0.4825",
"money":"0.03440225",
"pay_bix":0,
"fee_symbol":"BIX",
"fee":"0.00000000",
"is_maker":0,
"relay_id":"12826902662624234"
},
{
"id":"2251799823470863900",
"createdAt":1599730918000,
"account_type":0,
"coin_symbol":"BIX",
"currency_symbol":"USDT",
"order_side":1,
"order_type":2,
"price":"0.071500",
"amount":"39.8408",
"money":"2.84861720",
"pay_bix":0,
"fee_symbol":"BIX",
"fee":"0.00000000",
"is_maker":0,
"relay_id":"12826902662624234"
},
{
"id":"2251799823470863902",
"createdAt":1599730918000,
"account_type":0,
"coin_symbol":"BIX",
"currency_symbol":"USDT",
"order_side":1,
"order_type":2,
"price":"0.071500",
"amount":"9.6767",
"money":"0.69188405",
"pay_bix":0,
"fee_symbol":"BIX",
"fee":"0.00000000",
"is_maker":0,
"relay_id":"12826902662624234"
}
]
},
"cmd":"orderDetail",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
sum | Total turnover |
orderList | Deal records |
id | Deal record id |
createdAt | Deal record time |
account_type | Account type, 0-spot account |
coin_symbol | Trading currency |
currency_symbol | Pricing currency |
order_side | Trading direction, 1-buy, 2-sell |
order_type | Order type, 1-market order, 2-limit order |
price | Deal price |
amount | Deal amount |
money | Deal value |
pay_bix | Wether pay fee with BIX, 0 not activated, 1 activated |
fee_symbol | fee currency |
fee | fee |
is_maker | Whether is maker, 0-No, 1-Yes |
relay_id | associated order id |
Other fields | Ignore |
Get an order detail
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3.1/orderpending/order";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let param = {
id: "12845594488036185",
account_type: 0
};
let cmd = JSON.stringify(param); //format param
let timestamp ='' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//Set request header
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd//post parameter string
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/orderpending/order'
body = {
'id': '12845594488036185',
'account_type': 0,
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/orderpending/order";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
id = "12845594488036185",
account_type = 0,
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3.1/orderpending/order
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
id | true | string | order id | ||
account_type | true | integer | account type | 0-spot account |
Response
{
"result":{
"id":"12845594488036185",
"createdAt":1604305967000,
"account_type":0,
"pair":"BIX_USDT",
"coin_symbol":"BIX",
"currency_symbol":"USDT",
"order_side":2,
"order_type":2,
"price":"0.054580",
"deal_price":"0.000000",
"amount":"100.0000",
"money":"5.45800000",
"deal_amount":"0.0000",
"deal_percent":"0.00%",
"deal_money":"0.00000000",
"deal_count":0,
"status":5,
"unexecuted":"100.0000"
},
"cmd":"order",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
id | order id |
createdAt | Creation time |
account_type | Account type 0-spot account |
pair | Trading pair |
coin_symbol | Trading currency |
currency_symbol | Pricing currency |
order_side | Trading direction, 1-buy, 2-sell |
order_type | Order type, 1-market order, 2-limit order |
price | Order price, market order is 0 |
amount | Order quantity |
money | Order value |
deal_amount | Dealed quantity |
deal_percent | Deal percentage |
unexecuted | Unexecuted quantity |
status | Status, -1 Failed 0 or 1-Pending, 2-Partially completed, 3-Completely completed, 4-Partially cancelled, 5-Completely cancelled |
Other fields | Ignore |
Get deal records
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3.1/orderpending/orderHistoryList";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let param = {
pair:'BIX_USDT',
account_type: 0,
page: 1,
size: 10
};
let cmd = JSON.stringify(param); //format param
let timestamp ='' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//Set request header
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd//post parameter string
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/orderpending/orderHistoryList'
body = {
'pair': 'BIX_USDT',
'account_type': 0,
'page': 1,
'size': 10
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/orderpending/orderHistoryList";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
pair = "BIX_USDT",
account_type = 0,
page = 1,
size = 10,
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3.1/orderpending/orderHistoryList
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
pair | false | string | Trading pair | BIX_BTC, ETH_BTC, ... | |
account_type | true | integer | account type | 0-spot account | |
order_side | false | integer | Trading direction | 1-Buy, 2-Sell | |
coin_symbol | false | string | Trading currency | BIX, EOS, ... | |
currency_symbol | false | string | Pricing currency | BTC, USDT, ... | |
page | true | integer | page number | starting from 1 | |
size | true | integer | number per page | 1-50 |
Response
{
"result":{
"count":1,
"page":1,
"items":[
{
"id":"2251799823470863902",
"createdAt":1599730918000,
"account_type":0,
"coin_symbol":"BIX",
"currency_symbol":"USDT",
"order_side":1,
"order_type":2,
"price":"0.071500",
"amount":"9.6767",
"money":"0.69188405",
"pay_bix":0,
"fee_symbol":"BIX",
"fee":"0.00000000",
"is_maker":0,
"relay_id":"12826902662624234"
}
]
},
"cmd":"orderHistoryList",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
sum | Total turnover |
orderList | Deal records |
id | Deal record id |
createdAt | Deal record time |
account_type | Account type, 0-spot account |
coin_symbol | Trading currency |
currency_symbol | Pricing currency |
order_side | Trading direction, 1-buy, 2-sell |
order_type | Order type, 1-market order, 2-limit order |
price | Deal price |
amount | Deal amount |
money | Deal value |
pay_bix | Wether pay fee with BIX, 0 not activated, 1 activated |
fee_symbol | fee currency |
fee | fee |
is_maker | Whether is maker, 0-No, 1-Yes |
relay_id | associated order id |
Other fields | Ignore |
Get the latest deal records
Query the deal records after the specified id number, and return 1000 records per page
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let url = "https://api.bibox.com/v3.1/orderpending/orderDetailsLast";
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let param = {
pair:'BIX_USDT',
account_type: 0,
page: 1,
id:"2251799823470863900"
};
let cmd = JSON.stringify(param); //format param
let timestamp ='' + (Date.now());
let sign = CryptoJS.HmacMD5(timestamp + cmd, secret).toString();//sign cmds
request.post({
url: url,//request path
method: "POST",//Request method
headers: {//Set request header
'content-type':'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: cmd//post parameter string
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/orderpending/orderDetailsLast'
body = {
'pair': 'BIX_USDT',
'account_type': 0,
'page': 1,
'id': "2251799823470863900"
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/orderpending/orderDetailsLast";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
pair = "BIX_USDT",
account_type = 0,
page = 1,
id = "2251799823470863900",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request path
POST https://api.bibox.com/v3.1/orderpending/orderDetailsLast
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
pair | false | string | Trading pair | BIX_BTC, ETH_BTC, ... | |
account_type | true | integer | account type | 0-spot account | |
id | true | string | id number at the beginning of the Trading record | greater than "1000000000" | |
page | true | integer | page number | starting from 1 |
Response
{
"result":{
"count":2,
"page":1,
"items":[
{
"id":"2251799823470863902",
"createdAt":1599730918000,
"account_type":0,
"coin_symbol":"BIX",
"currency_symbol":"USDT",
"order_side":1,
"order_type":2,
"price":"0.071500",
"amount":"9.6767",
"money":"0.69188405",
"pay_bix":0,
"fee_symbol":"BIX",
"fee":"0.00000000",
"is_maker":0,
"relay_id":"12826902662624234"
},
{
"id":"2251799825448005865",
"createdAt":1604312287000,
"account_type":0,
"coin_symbol":"BIX",
"currency_symbol":"USDT",
"order_side":2,
"order_type":2,
"price":"0.054330",
"amount":"100.0000",
"money":"5.43300000",
"pay_bix":0,
"fee_symbol":"USDT",
"fee":"0.00000000",
"is_maker":1,
"relay_id":"12874181782731851"
}
]
},
"cmd":"orderDetailsLast",
"state":0
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
sum | Total turnover |
orderList | Deal records |
id | Deal record id |
createdAt | Deal record time |
account_type | Account type, 0-spot account |
coin_symbol | Trading currency |
currency_symbol | Pricing currency |
order_side | Trading direction, 1-buy, 2-sell |
order_type | Order type, 1-market order, 2-limit order |
price | Deal price |
amount | Deal amount |
money | Deal value |
pay_bix | Wether pay fee with BIX, 0 not activated, 1 activated |
fee_symbol | fee currency |
fee | fee |
is_maker | Whether is maker, 0-No, 1-Yes |
relay_id | associated order id |
Other fields | Ignore |
Transfer Assets(Need ApiKey)
Wallet to Spot
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let timestamp = Date.now();
let param = {
"type": 0,
"amount": "100",
"symbol": 'USDT'
};
let strParam = JSON.stringify(param);
let strToSign = '' + timestamp + strParam;
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let sign = CryptoJS.HmacMD5(strToSign, secret).toString()
let url = "https://api.bibox.com/v3/assets/transfer/spot";
request.post({
url: url,
method: "POST",
headers: {
'content-type': 'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: strParam
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_reqeust():
path = '/v3/assets/transfer/spot'
body = {
"type": 0,
"amount": "100",
"symbol": 'USDT'
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_reqeust()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3/assets/transfer/spot";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
type = 0,
amount = "100",
symbol = "USDT",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request Path
POST https://api.bibox.com/v3/assets/transfer/spot
- 2.Params
Name | Necessary | Type | Description | Default | Range |
---|---|---|---|---|---|
symbol | true | string | |||
amount | false | string | |||
type | false | int | 0wallet to spot; 1 spot to wallet |
Response
{}
Wallet to Leverage
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let timestamp = Date.now();
let param = {
"pair": "*_USDT",
"amount": 100,
"symbol": 'USDT'
};
let strParam = JSON.stringify(param);
let strToSign = '' + timestamp + strParam;
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let sign = CryptoJS.HmacMD5(strToSign, secret).toString();
let url = "https://api.bibox.com/v3.1/credit/transferAssets/base2credit";
request.post({
url: url,
method: "POST",
headers: {
'content-type': 'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: strParam
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/credit/transferAssets/base2credit'
body = {
"pair": "*_USDT",
"amount": 100,
"symbol": 'USDT'
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/credit/transferAssets/base2credit";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
pair = "*_USDT",
amount = "100",
symbol = "USDT",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request Path
POST https://api.bibox.com/v3.1/credit/transferAssets/base2credit
- 2.Params
Name | Necessary | Type | Description | Default | Range |
---|---|---|---|---|---|
coin_symbol | true | string | |||
amount | false | double | |||
pair | false | string | EOS_USDT,BTC_USDT, *_USDT... |
Response
{}
Leverage to Wallet
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let timestamp = Date.now();
let param = {
"pair": "BTC_USDT",
"amount": 100,
"symbol": 'USDT'
};
let strParam = JSON.stringify(param);
let strToSign = '' + timestamp + strParam;
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842";
let sign = CryptoJS.HmacMD5(strToSign, secret).toString();
let url = "https://api.bibox.com/v3.1/credit/transferAssets/credit2base";
request.post({
url: url,
method: "POST",
headers: {
'content-type': 'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: strParam
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body)
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/credit/transferAssets/credit2base'
body = {
"pair": "BTC_USDT",
"amount": 100,
"symbol": 'USDT'
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/credit/transferAssets/credit2base";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
pair = "BTC_USDT",
amount = "100",
symbol = "USDT",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Request Path
POST https://api.bibox.com/v3.1/credit/transferAssets/credit2base
- 2.Params
Name | Necessary | Type | Description | Default | Range |
---|---|---|---|---|---|
coin_symbol | true | string | |||
amount | false | double | |||
pair | false | string | EOS_USDT,BTC_USDT, *_USDT... |
Response
{}
Credit/Leverage(Need ApiKey)
Lend Order
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let timestamp = Date.now(); // 1.timestamp
let param = {
"page":1,
"status":[
0,
1
],
"coin_symbol":"USDT",
"size":1
};
let strParam = JSON.stringify(param); // 2.params
let strToSign = '' + timestamp + strParam; // 3.signed params
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842"; //secret
let sign = CryptoJS.HmacMD5(strToSign, secret).toString();//4.signed
let url = "https://api.bibox.com/v3.1/credit/lendOrder/get";
request.post({
url: url,//path
method: "POST",//method
headers: {//5.headers
'content-type': 'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: strParam // 6.params
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body) //
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/credit/lendOrder/get'
body = {
"page": 1,
"status": [
0,
1
],
"coin_symbol": "USDT",
"size": 1
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/credit/lendOrder/get";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
coin_symbol = "USDT",
size = 1,
page = 1,
status = new [] {0, 1},
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Url
POST https://api.bibox.com/v3.1/credit/lendOrder/get
- 2. Request Params
Name | Necessary | Type | Description | Default | Range |
---|---|---|---|---|---|
coin_symbol | true | string | |||
status | false | int | 0-normal 1-part 2-finish | ||
page | false | int | |||
size | false | int |
Response
{
"count": 2,
"page": 1,
"items": [
{
"id": 14,
"user_id": 8114202916,
"coin_id": 60,
"coin_symbol": "USDT",
"amount": "1000.00000000",
"amount_receipt": "0.00000000",
"interest_rate": "0.00200000",
"insurance_rate": "0.10000000",
"fee": "0.00000000",
"insurance": "0.00000000",
"interest": "2.33333324",
"interest_receipt": "0.00000000",
"period": 7,
"expireAt": "2019-11-18T03:00:00.000Z",
"status": 0,
"createdAt": "2019-11-11T03:50:47.000Z",
"days": 1
}
],
"validSymbols": [
"USDT"
]
}
- Response
Name | Description |
---|---|
coin_symbol | |
amount | lend amount |
amount_receipt | receipt |
interest_rate | interest rate |
insurance_rate | insurance |
fee | fee |
insurance | insurance |
interest | interest |
status | 0:normal,part,finish |
Borrow Order
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let timestamp = Date.now(); // 1.timestamp
let param = {
"page":1,
"status":[
1,
2
],
"size":10,
"pair":"BTC_USDT"
};
let strParam = JSON.stringify(param); // 2.params
let strToSign = '' + timestamp + strParam; // 3.signed params
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842"; //secret
let sign = CryptoJS.HmacMD5(strToSign, secret).toString();//4.signed
let url = "https://api.bibox.com/v3.1/credit/borrowOrder/get";
request.post({
url: url,//path
method: "POST",//method
headers: {//5.headers
'content-type': 'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: strParam // 6.params
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body) //
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/credit/borrowOrder/get'
body = {
"page": 1,
"status": [
1,
2
],
"size": 10,
"pair": "BTC_USDT"
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/credit/borrowOrder/get";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
pair = "BTC_USDT",
size = 10,
page = 1,
status = new [] {1, 2},
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Url
POST https://api.bibox.com/v3.1/credit/borrowOrder/get
- 2. Request Params
Name | Necessary | Type | Description | Default | Range |
---|---|---|---|---|---|
coin_symbol | true | string | USDT, EOS... | ||
pair | true | string | BTC_USDT, ETH_USDT, *_USDT cross | ||
status | true | int or Array | status | 1Normal, 2Part, 3-6Finish | |
page | true | integer | |||
size | true | integer | 1-50 |
Response
{
"count": 2,
"page": 1,
"items": [
{
"id": 539354,
"user_id": 8114202916,
"coin_id": 60,
"coin_symbol": "USDT",
"pair": "BTC_USDT",
"amount": "406.00000000",
"amount_refund": "0.00000000",
"interest_rate": "0.00010000",
"interest_rate_hour": "0.00000417",
"interest": "0.26559180",
"interest_refund": "0.00000000",
"period": 7,
"expireAt": "2019-11-15T11:00:00.000Z",
"status": 1,
"createdAt": "2019-11-08T11:53:15.000Z"
}
],
"validSymbols": [
{
"coin_symbol": "USDT",
"pair": "BTC_USDT"
}
]
}
- Response
Name | Description |
---|---|
coin_symbol | |
pair | |
amount | borrow amount |
amount_refund | borrow refund |
interest_rate | interest rate |
interest | interest |
interest_refund | refund |
status | 1normal,2part,3finish |
LendOrder Pending
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let timestamp = Date.now(); // 1.timestamp
let param = {
"page":1,
"status":[
0,
1
],
"coin_symbol":"EOS",
"size":50
}
let strParam = JSON.stringify(param); // 2.params
let strToSign = '' + timestamp + strParam; // 3.signed params
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842"; //secret
let sign = CryptoJS.HmacMD5(strToSign, secret).toString();//4.signed
let url = "https://api.bibox.com/v3.1/credit/lendOrderbook/get";
request.post({
url: url,//path
method: "POST",//method
headers: {//5.headers
'content-type': 'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: strParam // 6.params
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body) //
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/credit/lendOrderbook/get'
body = {
"page": 1,
"status": [
0,
1
],
"coin_symbol": "EOS",
"size": 50
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/credit/lendOrderbook/get";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
coin_symbol = "EOS",
size = 50,
page = 1,
status = new [] {0, 1},
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Url
POST https://api.bibox.com/v3.1/credit/lendOrderbook/get
- 2. Request Params
Name | Necessary | Type | Description | Default | Range |
---|---|---|---|---|---|
coin_symbol | true | string | USDT, EOS, ... | ||
status | true | integer or integerArray | status | 0未成交, 1部分成交, 2已完成 | |
page | true | integer | |||
size | true | integer | 1-50 |
Response
{
"count":1,
"page":1,
"items":[
{
"id":1,
"user_id":10000000,
"coin_id":61,
"coin_symbol":"EOS",
"amount":5,
"amount_finish":0,
"interest_rate":0.001,
"period":7,
"expireAt":"2018-12-29T10:59:18.000Z",
"status":0,
"createdAt":"2018-12-22T10:59:18.000Z"
}
],
"validSymbols":[
"EOS"
]
}
- Response
Name | Description |
---|---|
coin_symbol | |
amount | unfill amount |
amount_finish | finish amount |
interest_rate | interest rate |
Lend Assets
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let timestamp = Date.now(); // 1.timestamp
let param = {
"coin_symbol":"EOS"
};
let strParam = JSON.stringify(param); // 2.params
let strToSign = '' + timestamp + strParam; // 3.signed params
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842"; //secret
let sign = CryptoJS.HmacMD5(strToSign, secret).toString();//4.signed
let url = "https://api.bibox.com/v3.1/credit/transferAssets/lendAssets";
request.post({
url: url,//path
method: "POST",//method
headers: {//5.headers
'content-type': 'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: strParam // 6.params
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body) //
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/credit/transferAssets/lendAssets'
body = {
"coin_symbol": "EOS"
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/credit/transferAssets/lendAssets";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
coin_symbol = "EOS",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Url
POST https://api.bibox.com/v3.1/credit/transferAssets/lendAssets
- 2. Request Params
Name | Necessary | Type | Description | Default | Range |
---|---|---|---|---|---|
coin_symbol | true | string |
Response
{
"balance":"1.52319980",
"lend":"0.00000000",
"lend_book":"0.00000000",
"interest":"0.00000000",
"lend_receipt":"1.44000000",
"interest_receipt":"0.16115200"
}
- Response
Name | Description |
---|---|
balance | avaliable |
lend | lend |
lend_book | pending |
interest | interest |
lend_receipt | receipt |
interest_receipt | interest |
Borrow Assets
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let timestamp = Date.now(); // 1.timestamp
let param = {
"pair":"BTC_USDT",
};
let strParam = JSON.stringify(param); // 2.params
let strToSign = '' + timestamp + strParam; // 3.signed params
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842"; //secret
let sign = CryptoJS.HmacMD5(strToSign, secret).toString();//4.signed
let url = "https://api.bibox.com/v3.1/credit/transferAssets/borrowAsset";
request.post({
url: url,//path
method: "POST",//method
headers: {//5.headers
'content-type': 'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: strParam // 6.params
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body) //
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/credit/transferAssets/borrowAsset'
body = {
"pair": "BTC_USDT",
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/credit/transferAssets/borrowAsset";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
pair = "BTC_USDT",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Url
POST https://api.bibox.com/v3.1/credit/transferAssets/borrowAssets
- 2. Request Params
Name | Necessary | Type | Description | Default | Range |
---|---|---|---|---|---|
pair | true | string | BTC_USDT, ETH_USDT, *_USDT cross |
Response
{
"pair": "BTC_USDT",
"currency_deposit": "8406.00000000",
"currency_borrow": "506.34642529",
"currency_can_borrow": "70590.53574710",
"margin_radio": "1660.13",
"max_leverage_ratio": 10,
"current_leverage_radio": "2",
"force_deal_radio": 110,
"force_price": "0",
"items": [
{
"coin_symbol": "BTC",
"coin_id": 42,
"balance": "0.00000000",
"freeze": "0.00000000",
"borrow": "0",
"can_transfer_credit": "0.00000000",
"can_transfer_main": "0",
"can_borrow": "8.82381696",
"borrow_book": "0",
"force_price": "0",
"bust_price": "0",
"price": "8000",
"interest": "0",
"total": "0.00000000"
},
{
"coin_symbol": "USDT",
"coin_id": 60,
"balance": "8406.00000000",
"freeze": "0.00000000",
"borrow": "506.34642529",
"can_transfer_credit": "7494.57643447",
"can_transfer_main": "5000.00000000",
"can_borrow": "70590.53574710",
"borrow_book": "0",
"force_price": "0",
"bust_price": "0",
"price": "1",
"interest": "0.34642529",
"total": "8406.00000000"
}
]
}
- Response
Name | Description |
---|---|
pair | |
currency_deposit | all amount |
currency_borrow | borrow amount |
currency_can_borrow | can borrow |
margin_radio | margin radio |
current_leverage_radio | current_leverage |
force_deal_radio | force deal radio |
force_price | force price(isolated) |
balance | avaliable |
freeze | freeze |
borrow | borrow |
interest | interest |
Borrow
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let timestamp = Date.now(); // 1.timestamp
let param = {
"coin_symbol": "BTC",
"pair": "BTC_USDT",
"amount":"5.0036"
};
let strParam = JSON.stringify(param); // 2.params
let strToSign = '' + timestamp + strParam; // 3.signed params
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842"; //secret
let sign = CryptoJS.HmacMD5(strToSign, secret).toString();//4.signed
let url = "https://api.bibox.com/v3.1/credit/borrowOrder/autobook";
request.post({
url: url,//path
method: "POST",//method
headers: {//5.headers
'content-type': 'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: strParam // 6.params
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body) //
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/credit/borrowOrder/autobook'
body = {
"coin_symbol": "BTC",
"pair": "BTC_USDT",
"amount": "5.0036"
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/credit/borrowOrder/autobook";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
coin_symbol = "BTC",
pair = "BTC_USDT",
amount = "5.0036",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Url
POST https://api.bibox.com/v3.1/credit/borrowOrder/autobook
- 2. Request Params
Name | Necessary | Type | Description | Default | Range |
---|---|---|---|---|---|
coin_symbol | true | string | EOS, BTC, USDT | ||
pair | true | string | BTC_USDT, *_USDT | ||
amount | true | double |
Response
{}
Refund
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let timestamp = Date.now(); // 1.timestamp
let param = {
"coin_symbol": "BTC",
"pair": "BTC_USDT",
"amount":"5.0036"
};
let strParam = JSON.stringify(param); // 2.params
let strToSign = '' + timestamp + strParam; // 3.signed params
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842"; //secret
let sign = CryptoJS.HmacMD5(strToSign, secret).toString();//4.signed
let url = "https://api.bibox.com/v3.1/credit/borrowOrder/refund";
request.post({
url: url,//path
method: "POST",//method
headers: {//5.headers
'content-type': 'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: strParam // 6.params
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body) //
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/credit/borrowOrder/refund'
body = {
"coin_symbol": "BTC",
"pair": "BTC_USDT",
"amount": "5.0036"
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/credit/borrowOrder/refund";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
coin_symbol = "BTC",
pair = "BTC_USDT",
amount = "5.0036",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Url
POST https://api.bibox.com/v3.1/credit/borrowOrder/refund
- 2. Request Params
Name | Necessary | Type | Description | Default | Range |
---|---|---|---|---|---|
coin_symbol | true | string | EOS, BTC, USDT | ||
pair | true | string | BTC_USDT, *_USDT | ||
amount | true | double |
Response
{}
Publish Lend
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let timestamp = Date.now(); // 1.timestamp
let param = {
"coin_symbol":"EOS",
"amount":"5",
"interest_rate":0.001,
"is_insurance":1,
"force":1
};
let strParam = JSON.stringify(param); // 2.params
let strToSign = '' + timestamp + strParam; // 3.signed params
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842"; //secret
let sign = CryptoJS.HmacMD5(strToSign, secret).toString();//4.signed
let url = "https://api.bibox.com/v3.1/credit/lendOrderbook/publish";
request.post({
url: url,//path
method: "POST",//method
headers: {//5.headers
'content-type': 'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: strParam // 6.params
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body) //
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/credit/lendOrderbook/publish'
body = {
"coin_symbol": "EOS",
"amount": "5",
"interest_rate": 0.001,
"is_insurance": 1,
"force": 1
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/credit/lendOrderbook/publish";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
coin_symbol = "EOS",
amount = "5",
interest_rate = "0.001",
is_insurance = 1,
force = 1,
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Url
POST https://api.bibox.com/v3.1/credit/lendOrderbook/publish
- 2. Request Params
Name | Necessary | Type | Description | Default | Range |
---|---|---|---|---|---|
coin_symbol | true | string | USDT, EOS, ... | ||
amount | true | double | |||
interest_rate | true | double | |||
is_insurance | true | integer | 0 or 1 | ||
force | true | integer | 1 |
Response
{}
Cancel LendOrder
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let timestamp = Date.now(); // 1.timestamp
let param = {
"orderbook_id":9064
};
let strParam = JSON.stringify(param); // 2.params
let strToSign = '' + timestamp + strParam; // 3.signed params
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842"; //secret
let sign = CryptoJS.HmacMD5(strToSign, secret).toString();//4.signed
let url = "https://api.bibox.com/v3.1/credit/lendOrderbook/cancel";
request.post({
url: url,//path
method: "POST",//method
headers: {//5.headers
'content-type': 'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: strParam // 6.params
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body) //
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/credit/lendOrderbook/cancel'
body = {
"orderbook_id": 9064
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/credit/lendOrderbook/cancel";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
orderbook_id = "9064",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Url
POST https://api.bibox.com/v3.1/credit/lendOrderbook/cancel
- 2. Request Params
Name | Necessary | Type | Description | Default | Range |
---|---|---|---|---|---|
orderbook_id | true | integer | order id |
Response
{}
Credit Trade
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let timestamp = Date.now(); // 1.timestamp
let param = {
"account_type":1,
"pair":"BTC_USDT",
"order_type":2,
"price":"100",
"amount":"1",
"money":"100.0000",
"order_side":1
};
let strParam = JSON.stringify(param); // 2.params
let strToSign = '' + timestamp + strParam; // 3.signed params
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842"; //secret
let sign = CryptoJS.HmacMD5(strToSign, secret).toString();//4.signed
let url = "https://api.bibox.com/v3.1/credit/trade/trade";
request.post({
url: url,//path
method: "POST",//method
headers: {//5.headers
'content-type': 'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: strParam // 6.params
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body) //
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/credit/trade/trade'
body = {
"account_type": 1,
"pair": "BTC_USDT",
"order_type": 2,
"price": "100",
"amount": "1",
"money": "100.0000",
"order_side": 1
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/credit/trade/trade";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
account_type = 1,
pair = "BTC_USDT",
order_type = 2,
price = "100",
amount = "1",
money = "100.0000",
order_side = 1,
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Url
POST https://api.bibox.com/v3.1/credit/trade/trade
- 2. Request Params
Name | Necessary | Type | Description | Default | Range |
---|---|---|---|---|---|
pair | string | 交易对 | |||
account_type | integer | 1-isolate 257-cross | |||
order_type | integer | 2-limit | |||
order_side | integer | 1-buy,2-sell | |||
price | string | price min 0.00000001 | |||
amount | string | amount min 0.0001 | |||
money | string | price*amount |
Response
{}
- Response
Name | Description |
---|---|
orders_id | order id |
Cancel
Request
let CryptoJS = require("crypto-js");
let request = require("request");
let timestamp = Date.now(); // 1.timestamp
let param = {
"orders_id": "4631142976192513"
};
let strParam = JSON.stringify(param); // 2.params
let strToSign = '' + timestamp + strParam; // 3.signed params
let apikey = "900625568558820892a8c833c33ebc8fd2701efe";
let secret = "c708ac3e70d115ec29efbee197330627d7edf842"; //secret
let sign = CryptoJS.HmacMD5(strToSign, secret).toString();//4.signed
let url = "https://api.bibox.com/v3.1/credit/trade/cancel";
request.post({
url: url,//path
method: "POST",//method
headers: {//5.headers
'content-type': 'application/json',
'bibox-api-key': apikey,
'bibox-api-sign': sign,
'bibox-timestamp': timestamp
},
body: strParam // 6.params
},
function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log(body) //
});
# -*- coding:utf-8 -*-
import hashlib
import hmac
import json
import time
import requests
API_KEY = '900625568558820892a8c833c33ebc8fd2701efe'
SECRET_KEY = 'c708ac3e70d115ec29efbee197330627d7edf842'
BASE_URL = 'https://api.bibox.com' # 'https://api.bibox.tel' #
def do_sign(body):
timestamp = int(time.time()) * 1000
# to_sign = str(timestamp)+json.dumps(body,separators=(',',':'))
to_sign = str(timestamp) + json.dumps(body)
sign = hmac.new(SECRET_KEY.encode("utf-8"), to_sign.encode("utf-8"), hashlib.md5).hexdigest()
print(to_sign)
headers = {
'bibox-api-key': API_KEY,
'bibox-api-sign': sign,
'bibox-timestamp': str(timestamp)
}
return headers
def do_request():
path = '/v3.1/credit/trade/cancel'
body = {
"orders_id": "4631142976192513"
}
headers = do_sign(body)
resp = requests.post(BASE_URL + path, json=body, headers=headers)
print(resp.text)
if __name__ == '__main__':
do_request()
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace ConsoleProgram
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Class1
{
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
string uri = "https://api.bibox.com/v3.1/credit/trade/cancel";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
string timestamp = GetTimeStamp();
var myobj = new {
orders_id = "4631142976192513",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string source = timestamp + payload;
string sign = HmacMD5(source, secret);
Console.WriteLine(source);
Console.WriteLine(sign);
client.DefaultRequestHeaders.Add("bibox-api-key", apikey);
client.DefaultRequestHeaders.Add("bibox-api-sign", sign);
client.DefaultRequestHeaders.Add("bibox-timestamp", timestamp);
HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
- 1. Url
POST https://api.bibox.com/v3.1/credit/trade/cancel
- 2. Request Params
Name | Necessary | Type | Description | Default | Range |
---|---|---|---|---|---|
orders_id | true | string | orderid |
Response
{}
WebSocket
Subscribe to Kline data
Example
'use strict'
const WebSocket = require('ws');
const zlib = require('zlib');
const biboxws = 'wss://npush.bibox360.com';
let wsClass = function () {
};
wsClass.prototype._decodeMsg = function (data) {
let data1 = data.slice(1, data.length);
zlib.unzip(data1, (err, buffer) => {
if (err) {
console.log(err);
} else {
try {
let res = JSON.parse(buffer.toString());
console.log(new Date(), buffer.toString());
} catch (e) {
console.log(e);
}
}
});
};
wsClass.prototype._initWs = async function () {
let that = this;
console.log(biboxws)
let ws = new WebSocket(biboxws);
that.ws = ws;
ws.on('open', function open() {
console.log(new Date(), 'open')
ws.send(JSON.stringify({
sub: 'BTC_USDT_kline_1min',
}));
});
ws.on('close', err => {
console.log('close, ', err);
});
ws.on('error', err => {
console.log('error', err);
});
ws.on('ping', err => {
console.log('ping ', err.toString('utf8'));
});
ws.on('pong', err => {
console.log('pong ', err.toString('utf8'));
});
ws.on('message', data => {
if (data[0] == '1') {
that._decodeMsg(data);
} else if (data[0] == '0') {
console.log(1, new Date(), JSON.parse(data.slice(1)));
} else {
console.log(2, new Date(), data);
}
});
};
let instance = new wsClass();
instance._initWs().catch(err => {
console.log(err);
});
# /usr/bin/env python
# -*- coding: UTF-8 -*-
import websocket # websocket-client
import json
import zlib
ws_url = 'wss://npush.bibox360.com'
def stringify(obj):
return json.dumps(obj, sort_keys=True).replace("\'", "\"").replace(" ", "")
def get_sub_str():
subdata = {
'sub': 'BTC_USDT_kline_1min',
}
# print(stringify(subdata))
return stringify(subdata)
def get_unsub_str():
subdata = {
'unsub': 'BTC_USDT_kline_1min',
}
return stringify(subdata)
def decode_data(message):
if message[0] == '\x01' or message[0] == 1:
message = message[1:]
data = zlib.decompress(message, zlib.MAX_WBITS | 32)
jmsgs = json.loads(data)
print(jmsgs)
print(type(jmsgs))
elif message[0] == '\x00' or message[0] == 0:
message = message[1:]
jmsgs = json.loads(message)
print(jmsgs)
print(type(jmsgs))
else:
jmsgs = json.loads(message)
print(jmsgs)
print(type(jmsgs))
def on_message(ws, message):
# print(message)
decode_data(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print("### closed ###")
def on_open(ws):
ws.send(get_sub_str())
def connect():
websocket.enableTrace(True)
ws = websocket.WebSocketApp(ws_url,
on_message=on_message,
on_error=on_error,
on_close=on_close)
ws.on_open = on_open
ws.run_forever(ping_interval=30, ping_timeout=5)
if __name__ == "__main__":
connect()
using System;
using WebSocketSharp;
using System.Net.Http;
using System.Text;
using System.IO.Compression;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace Example
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Program
{
public static string Decompress(byte[] bytes)
{
MemoryStream msIn = new MemoryStream(bytes, 1, bytes.Length - 1);
MemoryStream msOut = new MemoryStream();
GZipStream cprs = new GZipStream(msIn, CompressionMode.Decompress);
cprs.CopyTo(msOut);
cprs.Close();
return Encoding.ASCII.GetString(msOut.ToArray());//转换为普通的字符串
}
public static void Main (string[] args)
{
string wsuri = "wss://npush.bibox360.com";
using (var ws = new WebSocket (wsuri)) {
ws.OnMessage += (sender, e) => {
Console.WriteLine ("recv: " + e.Data);
if (e.IsText) {
Console.WriteLine ("data[0]: {");
} else if (e.IsBinary) {
if (e.RawData[0] == 1) {
Console.WriteLine ("RawData[0]: 1");
string strres = Decompress(e.RawData);
Console.WriteLine (strres);
} else if (e.RawData[0] == 0) {
Console.WriteLine ("RawData[0]: 0");
string strres = Encoding.ASCII.GetString(e.RawData);
Console.WriteLine (strres);
}
}
};
ws.Connect ();
var myobj = new {
sub = "BTC_USDT_kline_1min",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
ws.Send (payload);
ConsoleKey key;
do
{
key=Console.ReadKey().Key;
} while (key != ConsoleKey.Q);
}
}
}
}
- 1. Subscription path
wss://npush.bibox360.com
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
pair | true | string | trading pair | trading pair, BTC_USDT, ETH_USDT | |
period | true | string | candlestick period | 1min, 5min, 15min, 30min, 1hour, 2hour, 4hour, 6hour, 12hour, day, week | |
sub | true | string | ${pair} +'_kline_' + ${period} |
Response
{
"topic":"BTC_USDT_kline_1min",
"t":1,
"d":[
[
"1646705760000",
"38337.1",
"38356.0",
"38303.5",
"38309.2",
"2.180836"
],
[
"1646705820000",
"38309.1",
"38356.6",
"38309.1",
"38355.3",
"2.103583"
]
]
}
- 3. Response field description
[ Start time of a certain period of kline, Opening price, Highest price, Lowest price, Closing price, Volume ]
Subscribe to Market Data
Example
'use strict'
const WebSocket = require('ws');
const zlib = require('zlib');
const biboxws = 'wss://npush.bibox360.com';
let wsClass = function () {
};
wsClass.prototype._decodeMsg = function (data) {
let data1 = data.slice(1, data.length);
zlib.unzip(data1, (err, buffer) => {
if (err) {
console.log(err);
} else {
try {
let res = JSON.parse(buffer.toString());
console.log(new Date(), buffer.toString());
} catch (e) {
console.log(e);
}
}
});
};
wsClass.prototype._initWs = async function () {
let that = this;
console.log(biboxws)
let ws = new WebSocket(biboxws);
that.ws = ws;
ws.on('open', function open() {
console.log(new Date(), 'open')
ws.send(JSON.stringify({
sub: 'ALL_ALL_market',
}));
});
ws.on('close', err => {
console.log('close, ', err);
});
ws.on('error', err => {
console.log('error', err);
});
ws.on('ping', err => {
console.log('ping ', err.toString('utf8'));
});
ws.on('pong', err => {
console.log('pong ', err.toString('utf8'));
});
ws.on('message', data => {
if (data[0] == '1') {
that._decodeMsg(data);
} else if (data[0] == '0') {
console.log(1, new Date(), JSON.parse(data.slice(1)));
} else {
console.log(2, new Date(), data);
}
});
};
let instance = new wsClass();
instance._initWs().catch(err => {
console.log(err);
});
# /usr/bin/env python
# -*- coding: UTF-8 -*-
import websocket # websocket-client
import json
import zlib
ws_url = 'wss://npush.bibox360.com'
def stringify(obj):
return json.dumps(obj, sort_keys=True).replace("\'", "\"").replace(" ", "")
def get_sub_str():
subdata = {
'sub': 'ALL_ALL_market',
}
# print(stringify(subdata))
return stringify(subdata)
def get_unsub_str():
subdata = {
'unsub': 'ALL_ALL_market',
}
return stringify(subdata)
def decode_data(message):
if message[0] == '\x01' or message[0] == 1:
message = message[1:]
data = zlib.decompress(message, zlib.MAX_WBITS | 32)
jmsgs = json.loads(data)
print(jmsgs)
print(type(jmsgs))
elif message[0] == '\x00' or message[0] == 0:
message = message[1:]
jmsgs = json.loads(message)
print(jmsgs)
print(type(jmsgs))
else:
jmsgs = json.loads(message)
print(jmsgs)
print(type(jmsgs))
def on_message(ws, message):
# print(message)
decode_data(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print("### closed ###")
def on_open(ws):
ws.send(get_sub_str())
def connect():
websocket.enableTrace(True)
ws = websocket.WebSocketApp(ws_url,
on_message=on_message,
on_error=on_error,
on_close=on_close)
ws.on_open = on_open
ws.run_forever(ping_interval=30, ping_timeout=5)
if __name__ == "__main__":
connect()
using System;
using WebSocketSharp;
using System.Net.Http;
using System.Text;
using System.IO.Compression;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace Example
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Program
{
public static string Decompress(byte[] bytes)
{
MemoryStream msIn = new MemoryStream(bytes, 1, bytes.Length - 1);
MemoryStream msOut = new MemoryStream();
GZipStream cprs = new GZipStream(msIn, CompressionMode.Decompress);
cprs.CopyTo(msOut);
cprs.Close();
return Encoding.ASCII.GetString(msOut.ToArray());//转换为普通的字符串
}
public static void Main (string[] args)
{
string wsuri = "wss://npush.bibox360.com";
using (var ws = new WebSocket (wsuri)) {
ws.OnMessage += (sender, e) => {
Console.WriteLine ("recv: " + e.Data);
if (e.IsText) {
Console.WriteLine ("data[0]: {");
} else if (e.IsBinary) {
if (e.RawData[0] == 1) {
Console.WriteLine ("RawData[0]: 1");
string strres = Decompress(e.RawData);
Console.WriteLine (strres);
} else if (e.RawData[0] == 0) {
Console.WriteLine ("RawData[0]: 0");
string strres = Encoding.ASCII.GetString(e.RawData);
Console.WriteLine (strres);
}
}
};
ws.Connect ();
var myobj = new {
sub = "ALL_ALL_market",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
ws.Send (payload);
ConsoleKey key;
do
{
key=Console.ReadKey().Key;
} while (key != ConsoleKey.Q);
}
}
}
}
- 1. Subscription path
wss://npush.bibox360.com
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
sub | true | String | 'ALL_ALL_market' |
Response
{
"topic":"ALL_ALL_market",
"t":1,
"d":[
[
"858",
"0",
"1",
"15",
"AXS",
"USDT",
"46.670500",
"50.185800",
"45.701500",
"-0.768700",
"-1.62%",
"51042",
"2416310.31"
],
[
"100",
"0",
"0",
"8",
"CPC",
"ETH",
"0.00000210",
"0.00000211",
"0.00000173",
"+0.00000000",
"+0.00%",
"12173798",
"25.48"
]
]
}
- 3. Response field description
[ trading pair id, Ignore, Ignore, Ignore, Trading currency, Pricing currency, 24h latest price, 24h highest price, 24h lowest price, 24h change, 24h change percent, 24h Volume, 24h amount, ]
Subscribe to Depth data
Example
'use strict'
const WebSocket = require('ws');
const zlib = require('zlib');
const biboxws = 'wss://npush.bibox360.com';
let wsClass = function () {
};
wsClass.prototype._decodeMsg = function (data) {
let data1 = data.slice(1, data.length);
zlib.unzip(data1, (err, buffer) => {
if (err) {
console.log(err);
} else {
try {
let res = JSON.parse(buffer.toString());
console.log(new Date(), buffer.toString());
} catch (e) {
console.log(e);
}
}
});
};
wsClass.prototype._initWs = async function () {
let that = this;
console.log(biboxws)
let ws = new WebSocket(biboxws);
that.ws = ws;
ws.on('open', function open() {
console.log(new Date(), 'open')
ws.send(JSON.stringify({
sub: 'BIX_BTC_depth',
}));
});
ws.on('close', err => {
console.log('close, ', err);
});
ws.on('error', err => {
console.log('error', err);
});
ws.on('ping', err => {
console.log('ping ', err.toString('utf8'));
});
ws.on('pong', err => {
console.log('pong ', err.toString('utf8'));
});
ws.on('message', data => {
if (data[0] == '1') {
that._decodeMsg(data);
} else if (data[0] == '0') {
console.log(1, new Date(), JSON.parse(data.slice(1)));
} else {
console.log(2, new Date(), data);
}
});
};
let instance = new wsClass();
instance._initWs().catch(err => {
console.log(err);
});
# /usr/bin/env python
# -*- coding: UTF-8 -*-
import websocket # websocket-client
import json
import zlib
ws_url = 'wss://npush.bibox360.com'
def stringify(obj):
return json.dumps(obj, sort_keys=True).replace("\'", "\"").replace(" ", "")
def get_sub_str():
subdata = {
'sub': 'BTC_USDT_depth',
}
# print(stringify(subdata))
return stringify(subdata)
def get_unsub_str():
subdata = {
'unsub': 'BTC_USDT_depth',
}
return stringify(subdata)
def decode_data(message):
if message[0] == '\x01' or message[0] == 1:
message = message[1:]
data = zlib.decompress(message, zlib.MAX_WBITS | 32)
jmsgs = json.loads(data)
print(jmsgs)
print(type(jmsgs))
elif message[0] == '\x00' or message[0] == 0:
message = message[1:]
jmsgs = json.loads(message)
print(jmsgs)
print(type(jmsgs))
else:
jmsgs = json.loads(message)
print(jmsgs)
print(type(jmsgs))
def on_message(ws, message):
# print(message)
decode_data(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print("### closed ###")
def on_open(ws):
ws.send(get_sub_str())
def connect():
websocket.enableTrace(True)
ws = websocket.WebSocketApp(ws_url,
on_message=on_message,
on_error=on_error,
on_close=on_close)
ws.on_open = on_open
ws.run_forever(ping_interval=30, ping_timeout=5)
if __name__ == "__main__":
connect()
using System;
using WebSocketSharp;
using System.Net.Http;
using System.Text;
using System.IO.Compression;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace Example
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Program
{
public static string Decompress(byte[] bytes)
{
MemoryStream msIn = new MemoryStream(bytes, 1, bytes.Length - 1);
MemoryStream msOut = new MemoryStream();
GZipStream cprs = new GZipStream(msIn, CompressionMode.Decompress);
cprs.CopyTo(msOut);
cprs.Close();
return Encoding.ASCII.GetString(msOut.ToArray());//转换为普通的字符串
}
public static void Main (string[] args)
{
string wsuri = "wss://npush.bibox360.com";
using (var ws = new WebSocket (wsuri)) {
ws.OnMessage += (sender, e) => {
Console.WriteLine ("recv: " + e.Data);
if (e.IsText) {
Console.WriteLine ("data[0]: {");
} else if (e.IsBinary) {
if (e.RawData[0] == 1) {
Console.WriteLine ("RawData[0]: 1");
string strres = Decompress(e.RawData);
Console.WriteLine (strres);
} else if (e.RawData[0] == 0) {
Console.WriteLine ("RawData[0]: 0");
string strres = Encoding.ASCII.GetString(e.RawData);
Console.WriteLine (strres);
}
}
};
ws.Connect ();
var myobj = new {
sub = "BTC_USDT_depth",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
ws.Send (payload);
ConsoleKey key;
do
{
key=Console.ReadKey().Key;
} while (key != ConsoleKey.Q);
}
}
}
}
- 1. Subscription path
wss://npush.bibox360.com
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
pair | true | string | trading pair | BIX_BTC, BIX_ETH, BTC_USDT, ETH_USDT...... | |
sub | true | string | ${pair} +'_depth' |
Response
{
"topic":"BIX_USDT_depth",
"t":1,
"d":{
"pair":"BIX_USDT",
"ut":1646708795071,
"seq":2794,
"add":{
"asks":[
[
"3957.61",
"0.040961"
]
],
"bids":[
[
"7468.53",
"0.040438"
],
[
"10605.08",
"0.040273"
]
]
},
"del":{
"asks":[
[
"9326.05",
"0.041173"
]
],
"bids":[
[
"1309.51",
"0.040411"
]
]
}
}
}
- 3. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
t | 0 Represents full data,1 represents incremental data |
pair | Trading pair |
update_time | Timestamp |
asks | Seller Depth |
bids | Buyer Depth |
price | Pending price |
volume | Pending volume |
Other fields | Ignore |
Subscribe to Deals data
Example
const WebSocket = require('ws');
const zlib = require('zlib');
const biboxws = 'wss://npush.bibox360.com';
let wsClass = function () {
};
wsClass.prototype._decodeMsg = function (data) {
let data1 = data.slice(1, data.length);
zlib.unzip(data1, (err, buffer) => {
if (err) {
console.log(err);
} else {
try {
let res = JSON.parse(buffer.toString());
console.log(3, new Date(), buffer.toString());
} catch (e) {
console.log(e);
}
}
});
};
wsClass.prototype._initWs = async function () {
let that = this;
console.log(biboxws)
let ws = new WebSocket(biboxws);
that.ws = ws;
ws.on('open', function open() {
console.log(new Date(), 'open')
{// kline
ws.send(JSON.stringify({
event: 'addChannel',
sub: 'BTC_USDT_deals',
}));
}
});
ws.on('close', err => {
console.log('close, ', err);
});
ws.on('error', err => {
console.log('error', err);
});
ws.on('ping', err => {
console.log('ping ', err.toString('utf8'));
});
ws.on('pong', err => {
console.log('pong ', err.toString('utf8'));
});
ws.on('message', data => {
if (data[0] == '1') {
that._decodeMsg(data);
} else if (data[0] == '0') {
console.log(1, new Date(), JSON.parse(data.slice(1)));
} else {
console.log(2, new Date(), data);
}
});
};
let instance = new wsClass();
instance._initWs().catch(err => {
console.log(err);
});
# /usr/bin/env python
# -*- coding: UTF-8 -*-
import websocket # websocket-client
import json
import zlib
ws_url = 'wss://npush.bibox360.com'
def stringify(obj):
return json.dumps(obj, sort_keys=True).replace("\'", "\"").replace(" ", "")
def get_sub_str():
subdata = {
'sub': 'BTC_USDT_deals',
}
# print(stringify(subdata))
return stringify(subdata)
def get_unsub_str():
subdata = {
'unsub': 'BTC_USDT_deals',
}
return stringify(subdata)
def decode_data(message):
if message[0] == '\x01' or message[0] == 1:
message = message[1:]
data = zlib.decompress(message, zlib.MAX_WBITS | 32)
jmsgs = json.loads(data)
print(jmsgs)
print(type(jmsgs))
elif message[0] == '\x00' or message[0] == 0:
message = message[1:]
jmsgs = json.loads(message)
print(jmsgs)
print(type(jmsgs))
else:
jmsgs = json.loads(message)
print(jmsgs)
print(type(jmsgs))
def on_message(ws, message):
# print(message)
decode_data(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print("### closed ###")
def on_open(ws):
ws.send(get_sub_str())
def connect():
websocket.enableTrace(True)
ws = websocket.WebSocketApp(ws_url,
on_message=on_message,
on_error=on_error,
on_close=on_close)
ws.on_open = on_open
ws.run_forever(ping_interval=30, ping_timeout=5)
if __name__ == "__main__":
connect()
using System;
using WebSocketSharp;
using System.Net.Http;
using System.Text;
using System.IO.Compression;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace Example
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Program
{
public static string Decompress(byte[] bytes)
{
MemoryStream msIn = new MemoryStream(bytes, 1, bytes.Length - 1);
MemoryStream msOut = new MemoryStream();
GZipStream cprs = new GZipStream(msIn, CompressionMode.Decompress);
cprs.CopyTo(msOut);
cprs.Close();
return Encoding.ASCII.GetString(msOut.ToArray());//转换为普通的字符串
}
public static void Main (string[] args)
{
string wsuri = "wss://npush.bibox360.com";
using (var ws = new WebSocket (wsuri)) {
ws.OnMessage += (sender, e) => {
Console.WriteLine ("recv: " + e.Data);
if (e.IsText) {
Console.WriteLine ("data[0]: {");
} else if (e.IsBinary) {
if (e.RawData[0] == 1) {
Console.WriteLine ("RawData[0]: 1");
string strres = Decompress(e.RawData);
Console.WriteLine (strres);
} else if (e.RawData[0] == 0) {
Console.WriteLine ("RawData[0]: 0");
string strres = Encoding.ASCII.GetString(e.RawData);
Console.WriteLine (strres);
}
}
};
ws.Connect ();
var myobj = new {
sub = "BTC_USDT_deals",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
ws.Send (payload);
ConsoleKey key;
do
{
key=Console.ReadKey().Key;
} while (key != ConsoleKey.Q);
}
}
}
}
- 1. Subscription path
wss://npush.bibox360.com
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
pair | true | string | trading pair | BIX_BTC, BIX_ETH, BTC_USDT, ETH_USDT...... | |
sub | true | string | ${pair} +'_deals' |
Response
{
topic: 'BTC_USDT_deals',
t: 1,
d: [
'BTC_USDT',
'38640.9',
'0.005175',
'2',
'1646709274432',
'36292624'
]
}
- 3. Response field description
Name | Description |
---|---|
t | 0 Represents full data,1 represents incremental data |
d | [Trading pair, Deal price, Deal amount, taker trading direction( 1-buy and 2-sell), Deal time, Ignore] |
Subscribe to Ticker data
Example
'use strict'
const WebSocket = require('ws');
const zlib = require('zlib');
const biboxws = 'wss://npush.bibox360.com';
let wsClass = function () {
};
wsClass.prototype._decodeMsg = function (data) {
let data1 = data.slice(1, data.length);
zlib.unzip(data1, (err, buffer) => {
if (err) {
console.log(err);
} else {
try {
let res = JSON.parse(buffer.toString());
console.log(new Date(), buffer.toString());
} catch (e) {
console.log(e);
}
}
});
};
wsClass.prototype._initWs = async function () {
let that = this;
console.log(biboxws)
let ws = new WebSocket(biboxws);
that.ws = ws;
ws.on('open', function open() {
console.log(new Date(), 'open')
ws.send(JSON.stringify({
sub: 'BTC_USDT_ticker',
}));
});
ws.on('close', err => {
console.log('close, ', err);
});
ws.on('error', err => {
console.log('error', err);
});
ws.on('ping', err => {
console.log('ping ', err.toString('utf8'));
});
ws.on('pong', err => {
console.log('pong ', err.toString('utf8'));
});
ws.on('message', data => {
if (data[0] == '1') {
that._decodeMsg(data);
} else if (data[0] == '0') {
console.log(1, new Date(), JSON.parse(data.slice(1)));
} else {
console.log(2, new Date(), data);
}
});
};
let instance = new wsClass();
instance._initWs().catch(err => {
console.log(err);
});
# /usr/bin/env python
# -*- coding: UTF-8 -*-
import websocket # websocket-client
import json
import zlib
ws_url = 'wss://npush.bibox360.com'
def stringify(obj):
return json.dumps(obj, sort_keys=True).replace("\'", "\"").replace(" ", "")
def get_sub_str():
subdata = {
'sub': 'BTC_USDT_ticker',
}
# print(stringify(subdata))
return stringify(subdata)
def get_unsub_str():
subdata = {
'unsub': 'BTC_USDT_ticker',
}
return stringify(subdata)
def decode_data(message):
if message[0] == '\x01' or message[0] == 1:
message = message[1:]
data = zlib.decompress(message, zlib.MAX_WBITS | 32)
jmsgs = json.loads(data)
print(jmsgs)
print(type(jmsgs))
elif message[0] == '\x00' or message[0] == 0:
message = message[1:]
jmsgs = json.loads(message)
print(jmsgs)
print(type(jmsgs))
else:
jmsgs = json.loads(message)
print(jmsgs)
print(type(jmsgs))
def on_message(ws, message):
# print(message)
decode_data(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print("### closed ###")
def on_open(ws):
ws.send(get_sub_str())
def connect():
websocket.enableTrace(True)
ws = websocket.WebSocketApp(ws_url,
on_message=on_message,
on_error=on_error,
on_close=on_close)
ws.on_open = on_open
ws.run_forever(ping_interval=30, ping_timeout=5)
if __name__ == "__main__":
connect()
using System;
using WebSocketSharp;
using System.Net.Http;
using System.Text;
using System.IO.Compression;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace Example
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Program
{
public static string Decompress(byte[] bytes)
{
MemoryStream msIn = new MemoryStream(bytes, 1, bytes.Length - 1);
MemoryStream msOut = new MemoryStream();
GZipStream cprs = new GZipStream(msIn, CompressionMode.Decompress);
cprs.CopyTo(msOut);
cprs.Close();
return Encoding.ASCII.GetString(msOut.ToArray());//转换为普通的字符串
}
public static void Main (string[] args)
{
string wsuri = "wss://npush.bibox360.com";
using (var ws = new WebSocket (wsuri)) {
ws.OnMessage += (sender, e) => {
Console.WriteLine ("recv: " + e.Data);
if (e.IsText) {
Console.WriteLine ("data[0]: {");
} else if (e.IsBinary) {
if (e.RawData[0] == 1) {
Console.WriteLine ("RawData[0]: 1");
string strres = Decompress(e.RawData);
Console.WriteLine (strres);
} else if (e.RawData[0] == 0) {
Console.WriteLine ("RawData[0]: 0");
string strres = Encoding.ASCII.GetString(e.RawData);
Console.WriteLine (strres);
}
}
};
ws.Connect ();
var myobj = new {
sub = "BTC_USDT_ticker",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
ws.Send (payload);
ConsoleKey key;
do
{
key=Console.ReadKey().Key;
} while (key != ConsoleKey.Q);
}
}
}
}
- 1. Subscription path
wss://npush.bibox360.com
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
pair | true | string | trading pair | BIX_BTC, BIX_ETH, BTC_USDT, ETH_USDT...... | |
sub | true | string | ${pair} +'_ticker' |
Response
{
"topic":"BTC_USDT_ticker",
"t":1,
"d":[
"BTC_USDT",
"38635.8",
"38635.80",
"246109.80",
"39526.4000",
"37152.6000",
"38635.7",
"0.053551",
"38635.8",
"0.012292",
"4388.91754000",
"+2.66%",
"1646709436031",
"246109.80000000"
]
}
- 3. Response field description
[ Trading pair, Latest price, Latest price(usd), Latest price(cny), 24h highest price, 24h lowest price, Latest buying price, Latest selling amount, Latest selling price, Latest selling amount, 24h volume, 24h change percent, Timestamp, Latest price(cny) ]
How to subscribe to user data
Practical example
'use strict'
const WebSocket = require('ws');
const zlib = require('zlib');
let CryptoJS = require("crypto-js");
const biboxws = 'wss://npush.bibox360.com'; // 1. Request path
let ws;
let apikey = '900625568558820892a8c833c33ebc8fd2701efe'; // 你的apikey
let secret = 'c708ac3e70d115ec29efbee197330627d7edf842'; // apikey的密码
let subparam = JSON.stringify({ // 格式化参数对象,得到subparam
apikey,
sub: 'ALL_ALL_login'
});
let sign = CryptoJS.HmacMD5(subparam, String(secret)).toString(); // 用apikey的密码secret对得到subparam进行HmacMD5签名,得到签名结果sign
let form = { // 得到最终的订阅参数
apikey,
sign,
sub: 'ALL_ALL_login',
};
console.log('form', form)
let reiniting = false;
let resend = function (user_id) {
if (ws.readyState != WebSocket.OPEN) {
return setTimeout(function () {
resend(user_id);
}, 1000 * 10);
}
ws.send(JSON.stringify(form));
};
setInterval(function () {
if (ws && ws.readyState == WebSocket.OPEN) {
ws.ping(new Date().getTime());
}
}, 1000 * 10);
let reinit = function () {
if (reiniting) {
return;
}
reiniting = true;
try {
if (ws && ws.readyState == WebSocket.OPEN) {
console.log('manu close ')
ws.close();
}
} catch (err) {
}
setTimeout(function () {
init();
}, 1000 * 30);
};
let init = function (user_id) {
console.log('init', user_id);
reiniting = false;
ws = new WebSocket(biboxws);
setTimeout(function () {
if (!ws || ws.readyState != WebSocket.OPEN) {
reinit(user_id);
}
}, 1000 * 60);
ws.on('open', function open() {
resend(user_id);
});
ws.on('close', err => {
console.log('close, ', err);
reinit(user_id);
});
ws.on('error', err => {
console.log('error', err);
reinit(user_id);
});
ws.on('ping', err => {
console.log('ping on', err.toString('utf8'));
});
ws.on('pong', err => {
// console.log('pong ', err.toString('utf8'));
});
ws.on('message', function incoming(data) {
if (data[0] == '1') {
decodeMsg(data);
} else {
console.log(1, JSON.parse(data));
}
});
};
let login = function () {
if (reiniting) {
return;
}
reiniting = false;
init();
};
let decodeMsg = function (data) {
let data1 = data.slice(1, data.length);
zlib.unzip(data1, (err, buffer) => {
if (err) {
console.log('2', err);
} else {
try {
let res = JSON.parse(buffer.toString());
console.log('3', buffer.toString());
} catch (e) {
console.log('4', e);
}
}
});
};
module.exports = {};
login();
# /usr/bin/env python
# -*- coding: UTF-8 -*-
import websocket # websocket-client
import json
import zlib
import hmac
import hashlib
ws_url = 'wss://npush.bibox360.com'
apikey = '900625568558820892a8c833c33ebc8fd2701efe' # your apikey
secret = 'c708ac3e70d115ec29efbee197330627d7edf842' # your apikey secret
def stringify(obj):
return json.dumps(obj, sort_keys=True).replace("\'", "\"").replace(" ", "")
def get_sign(data, secret):
return hmac.new(secret.encode("utf-8"), data.encode("utf-8"), hashlib.md5).hexdigest()
def get_sub_str():
subdata = {
'apikey': apikey,
'sub': 'ALL_ALL_login',
}
# print(stringify(subdata))
sign = get_sign(stringify(subdata), secret)
subdata = {
'apikey': apikey,
'sign': sign,
'sub': 'ALL_ALL_login',
}
# print(stringify(subdata))
return stringify(subdata)
def get_unsub_str():
subdata = {
'unsub': 'ALL_ALL_login',
}
return stringify(subdata)
def decode_data(message):
if message[0] == '\x01' or message[0] == 1:
message = message[1:]
data = zlib.decompress(message, zlib.MAX_WBITS | 32)
jmsgs = json.loads(data)
print(jmsgs)
print(type(jmsgs))
else:
jmsgs = json.loads(message)
print(jmsgs)
print(type(jmsgs))
def on_message(ws, message):
# print(message)
decode_data(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print("### closed ###")
def on_open(ws):
ws.send(get_sub_str())
def connect():
websocket.enableTrace(True)
ws = websocket.WebSocketApp(ws_url,
on_message=on_message,
on_error=on_error,
on_close=on_close)
ws.on_open = on_open
ws.run_forever(ping_interval=30, ping_timeout=5)
if __name__ == "__main__":
connect()
using System;
using WebSocketSharp;
using System.Net.Http;
using System.Text;
using System.IO.Compression;
using System.Security.Cryptography;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace Example
{
public class SortContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);
return properties.OrderBy(x=>x.PropertyName).ToList();
}
}
public class Program
{
public static string Decompress(byte[] bytes)
{
MemoryStream msIn = new MemoryStream(bytes, 1, bytes.Length - 1);
MemoryStream msOut = new MemoryStream();
GZipStream cprs = new GZipStream(msIn, CompressionMode.Decompress);
cprs.CopyTo(msOut);
cprs.Close();
return Encoding.ASCII.GetString(msOut.ToArray());//转换为普通的字符串
}
static string HmacMD5(string source, string key)
{
HMACMD5 hmacmd = new HMACMD5(Encoding.Default.GetBytes(key));
byte[] inArray = hmacmd.ComputeHash(Encoding.Default.GetBytes(source));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < inArray.Length; i++)
{
sb.Append(inArray[i].ToString("X2"));
}
hmacmd.Clear();
return sb.ToString().ToLower();
}
public static void Main (string[] args)
{
string wsuri = "wss://npush.bibox360.com";
string apikey = "900625568558820892a8c833c33ebc8fd2701efe";
string secret = "c708ac3e70d115ec29efbee197330627d7edf842";
using (var ws = new WebSocket (wsuri)) {
ws.OnMessage += (sender, e) => {
Console.WriteLine ("recv: " + e.Data);
if (e.IsText) {
Console.WriteLine ("data[0]: {");
} else if (e.IsBinary) {
if (e.RawData[0] == 1) {
Console.WriteLine ("RawData[0]: 1");
string strres = Decompress(e.RawData);
Console.WriteLine (strres);
} else if (e.RawData[0] == 0) {
Console.WriteLine ("RawData[0]: 0");
string strres = Encoding.ASCII.GetString(e.RawData);
Console.WriteLine (strres);
}
}
};
ws.Connect ();
var myparam = new {
apikey = apikey,
sub = "ALL_ALL_login",
};
string myparamstr = JsonConvert.SerializeObject(myparam, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
string sign = HmacMD5(myparamstr, secret);
var myobj = new {
apikey = apikey,
sign = sign,
sub = "ALL_ALL_login",
};
string payload = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings { ContractResolver = new SortContractResolver() });
ws.Send (payload);
ConsoleKey key;
do
{
key=Console.ReadKey().Key;
} while (key != ConsoleKey.Q);
}
}
}
}
- 1. Request path
wss://npush.bibox360.com
- 2. Request parameter
Name | Necessary or not | Type | Description | Default value | Value range |
---|---|---|---|---|---|
apikey | true | string | The apikey you applied for on Bibox Exchange | ||
sign | true | string | Use the apisecret you applied for on Bibox Exchange to sign the entire request data | ||
sub | true | string | 'ALL_ALL_login' |
- 3. Signature method
- Define the parameter object param, need to use apikey
let apikey ='thisisyourapikey';
let param = { "apikey": apikey, "sub": "ALL_ALL_login", };
- Format the parameter object param to get strParam
let strParam = JSON.stringify(param);
- Use apikey's password secret to sign strParam with HmacMD5, and get the signature result sign
let CryptoJS = require("crypto-js");
let secret ='c708ac3e70d115ec29efbee197330627d7edf842';
let sign = CryptoJS.HmacMD5(strParam, secret).toString();
- Generate subscription parameters wsparam
let wsparam = { "apikey": apikey, "sign": sign, "sub": "ALL_ALL_login", };
Response
{
"topic":"ALL_ALL_login",
"uid":"100000",
"t":0,
"d":{
"result":"订阅成功"
}
}
- 4. Response field description
Name | Description |
---|---|
result | "订阅成功" means subscribed successfully |
Other fields | Ignore |
Subscribe to user data to analyze spot assets
- 1. Key fields
assets
Response
{
"topic":"ALL_ALL_login",
"uid":"100000",
"t":1,
"d":{
"assets":{
"normal":{
"BIX":{
"balance":"497.59601765",
"freeze":"0.00000000"
},
"USDT":{
"balance":"20.52027574",
"freeze":"22.12000000"
}
}
}
}
}
- 2. Response field description
Name | Description |
---|---|
normal | Spot account assets |
balance | Available assets |
freeze | freeze assets |
Other fields | Ignore |
Subscribe to user data to analyze orders
- 1. Key fields
orderpending
Response
{
"topic":"ALL_ALL_login",
"uid":"100000",
"t":1,
"d":{
"orderpending":{
"id":"12875281286404369",
"client_oid":"0",
"account_type":0,
"coin_symbol":"BIX",
"currency_symbol":"USDT",
"price":"0.053000",
"deal_price":"0.000000",
"amount":"100.0000",
"vamount":"100.0000",
"deal_amount":"0.0000",
"money":"5.30000000",
"deal_money":"0.00000000",
"deal_count":0,
"deal_percent":"0.00%",
"order_from":1,
"order_side":2,
"order_type":2,
"status":1,
"unexecuted":"100.0000",
"createdAt":1604325924719
}
}
}
- 2. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
count | The number of records on the current page, if there is a next page, count=the number of records on the current page+1 |
page | page number, starting from 1 |
items | records |
id | order id |
createdAt | Creation time |
account_type | Account type 0-spot account |
coin_symbol | Trading currency |
currency_symbol | Pricing currency |
order_side | Trading direction, 1-buy, 2-sell |
order_type | Order type, 1-market order, 2-limit order |
price | Order price, market order is 0 |
amount | Order quantity |
money | Order value |
deal_amount | Deal quantity |
deal_percent | Deal percentage |
unexecuted | Unexecuted quantity |
status | Status, -1 Failed 0 or 1-Pending, 2-Partially completed, 3-Completely completed, 4-Partially cancelled, 5-Completely cancelled |
Other fields | Ignore |
Subscribe to user data to analyze the deal records
- 1. Key fields
history
Response
{
"topic":"ALL_ALL_login",
"uid":"100000",
"t":1,
"d":{
"history":{
"id":"2251799825471069694",
"account_type":0,
"coin_symbol":"BIX",
"currency_symbol":"USDT",
"price":"0.050921",
"amount":"64.2237",
"money":"3.27033502",
"fee":"0.00000000",
"order_from":0,
"order_side":1,
"order_type":2,
"is_maker":0,
"relay_id":"12939052839213054",
"createdAt":1604387364308
}
}
}
- 2. Response field description
Name | Description |
---|---|
state | 0 means success, otherwise means failure |
id | Deal record id |
createdAt | Deal record time |
account_type | Account type, 0-spot account |
coin_symbol | Trading currency |
currency_symbol | Pricing currency |
order_side | Trading direction, 1-buy, 2-sell |
order_type | Order type, 1-market order, 2-limit order |
price | Deal price |
amount | Deal amount |
money | Deal value |
fee | fee |
is_maker | Whether is maker, 0-No, 1-Yes |
relay_id | associated order id |
Other fields | Ignore |
Errors
错误码
Code | 描述 | Msg |
---|---|---|
2003 | Cookie 失效 | Cookie expired |
2033 | 操作失败!订单已完成或已撤销 | Operation failed! Order completed or canceled |
2034 | 操作失败!请检查参数是否正确 | Operation failed! Please check parameter |
2040 | 操作失败!没有该订单 | Operation failed! No record |
2064 | 订单撤销中,不能再次撤销 | Canceling. Unable to cancel again |
2065 | 委托价格设置过高,请重新设置价格 | Precatory price is exorbitant, please reset |
2066 | 委托价格设置过低,请重新设置价格 | Precatory price is low , please reset |
2067 | 暂不支持市价单 | Limit Order Only |
2068 | 下单数量不能低于0.0001 | Min Amount:0.0001 |
2069 | 市价单无法撤销 | Market order can not be canceled |
2078 | 下单价格非法 | unvalid order price |
2085 | 币种最小下单数量限制 | the trade amount is low |
2086 | 账户资产异常,限制下单 | Abnormal account assets, trade is forbiden |
2091 | 请求过于频繁,请稍后再试 | request is too frequency, please try again later |
2092 | 币种最小下单金额限制 | Minimum amount not met |
3000 | 请求参数错误 | Requested parameter incorrect |
3002 | 参数不能为空 | Parameter cannot be null |
3009 | 推送订阅channel不合法 | Illegal subscription channel |
3010 | websocket连接异常 | websocket connection error |
3011 | 接口不支持apikey请求方式 | Illegal subscribe event |
3012 | apikey无效 | Interface does not support apikey request method |
3016 | 交易对错误 | Invalid apikey |
3017 | 推送订阅event不合法 | Trading pair error |
3024 | apikey权限不足 | apikey authorization insufficient |
3025 | apikey签名验证失败 | apikey signature verification failed |
3026 | apikey ip受限制 | apikey ip is restricted |
3027 | 账户没有apikey | No apikey in your account |
3028 | 账户apikey数量超过了限制数量 | Account apikey has exceeded the limit amount |
3029 | apikey允许ip数量超过了限制数量 | apikey ip has exceeded the limit amount |
3033 | 查询类请求限制一个cmd | query allow only one cmd |
3034 | 最大cmd个数限制 | maxinum cmds |
3035 | cmd请求个数限制 | too many cmds |
4000 | 当前网络连接不稳定,请稍候重试 | the network is unstable now, please try again later |
4003 | 服务器繁忙,请稍后再试 | The server is busy, please try again later |