Version:1.1.7, Update: 2018-11-26, ©️DigiFinex
Api接口调用频率上限为:GET接口180次/min,POST接口60次/min,超过上限后将暂停调用5分钟
Post请求采用:content-type: application/x-www-form-urlencoded
更多问题可加入电报群交流:https://t.me/digifinex_api
前往DigiFinex官网(www.digifinex.com),注册账号,登录后进入“个人中心”-“API管理”页面,获取ApiKey和ApiSecret。
调用每一个接口的返回值中都会包含code参数。code取0表示接口调用成功,可正常返回结果数据。若code取值非0,表示接口调用出错,则不会返回结果数据,请参照下表查看错误原因。
错误代码 | 详细描述 |
---|---|
0 | 成功 |
10002 | ApiKey错误 |
10003 | 签名错误 |
10004 | 参数错误 |
10005 | 频率限制 |
10006 | 无权限 |
10007 | 访问者IP不在白名单内 |
10008 | 时间戳不在1分钟内 |
20001 | 交易未开启,请在交易时间内进行交易 |
20002 | 该币种对暂时不允许交易 |
20003 | 您的挂单价格或数量有误 |
20004 | 交易价格超出了跌停价格限制 |
20005 | 交易价格超出了涨停价格限制 |
20006 | 交易额不能低于10元 |
20007 | 价格精度限制 |
20008 | 数量精度限制 |
20009 | 最小交易数量限制 |
20010 | 最小交易额限制 |
20011 | 账户余额不足 |
20012 | 无效的交易类型(buy/sell) |
20013 | 没有找到该订单 |
20014 | 日期格式不对,例:2018-07-25 |
20015 | 查询的订单日期超过限制 |
在调用本文档接口时,会多次使用到参数签名sigh,该签名是将调用接口时使用到的参数(不包括sign)和私钥apiSecret排序后,再进行MD5运算得到。
具体实例如下,以获取K线接口为例:
[PHP]
<?php
$arr = [
'type' => 'kline_1m',
'symbol' => 'usdt_btc',
'timestamp' => TimeStampNow,
'apiKey' => 'YOUR_APIKEY',
'apiSecret' => 'YOUR_APISECRET'
];
ksort($arr);
$string = implode('', array_values($arr));
$sign = md5($string);
echo $sign;
?>
[NodeJS]
let md5 = require('md5');
const APIKEY = 'YOUR_APIKEY';
const APISECRET = 'YOUR_APISECRET';
let params = {type: 'kline_1m', symbol: 'usdt_btc', timestamp: TimeStampNow, apiKey: APIKEY, apiSecret: APISECRET};
let keys = Object.keys(params).sort(), arr = [];
keys.forEach(function(key){
arr.push(params[key]);
});
let sign = md5(arr.join(''));
console.log(sign);
[Python]
#!/usr/bin/python
import hashlib
m = hashlib.md5()
APIKEY = 'YOUR_APIKEY'
APISECRET = 'YOUR_APISECRET'
params = {'symbol': 'usdt_btc', 'type': 'kline_1m', 'timestamp': TimeStampNow, 'apiKey': APIKEY, 'apiSecret': APISECRET}
keys = sorted(params.keys())
str = ''
for key in keys:
str = str + params[key]
m.update(str)
encodestr = m.hexdigest()
print encodestr
[JAVA]
import java.util.*;
import java.security.MessageDigest;
public class Demo {
private static String md5(String s) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] bytes = md.digest(s.getBytes("utf-8"));
return toHex(bytes);
}
catch (Exception e) {
throw new RuntimeException(e);
}
}
private static String toHex(byte[] bytes) {
final char[] hexDigits = "0123456789abcdef".toCharArray();
StringBuilder ret = new StringBuilder(bytes.length * 2);
for (int i=0; i<bytes.length; i++) {
ret.append(hexDigits[(bytes[i] >> 4) & 0x0f]);
ret.append(hexDigits[bytes[i] & 0x0f]);
}
return ret.toString();
}
public static void main(String[] args) {
Map<String, Object> treemap = new TreeMap<String, Object>();
treemap.put("symbol", "usdt_btc");
treemap.put("type", "kline_1m");
treemap.put("timestamp", new Date().getTime()/1000);
treemap.put("apiKey", "YOUR_APIKEY");
treemap.put("apiSecret", "YOUR_APISECRET");
String str = "";
Iterator titer = treemap.entrySet().iterator();
while(titer.hasNext()){
Map.Entry ent = (Map.Entry)titer.next();
String key = ent.getKey().toString();
String value = ent.getValue().toString();
str += value;
}
System.out.println(str);
System.out.println(md5(str));
}
}
- URL:
https://openapi.digifinex.com/v2/ticker
- 请求方法: GET
- 请求参数:
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
symbol | string | 0 | 要查询的交易对,例如usdt_btc(基础币在前交易币在后),不填则返回全部授权交易对 |
apiKey | string | 1 | 你的APIKEY |
- 示例:
# Request
GET https://openapi.digifinex.com/v2/ticker?apiKey=59328e10e296a
# Response
{
"code":0,
"date":1410431266,
"ticker":{
"usdt_btc": {
"buy":6713.12,
"high":6751.00,
"last":6713.95,
"low":6617.60,
"sell":6714.12,
"vol":15091.39199642,
"change":0.0108
},
"btc_eth":{
"buy":0.119241,
"high":0.121186,
"last":0.119341,
"low":0.117405,
"sell":0.119341,
"vol":39159.39199642,
"change":-0.0812
},
...
}
}
- 返回值说明:
code: 错误码
date: 服务器返回数据时的时间戳(UTC+8)
usdt_btc: 交易对symbol,表示以usdt作为基础币,btc作为交易币
buy: 买一价
high: 24h最高价
last: 最新成交价
low: 24h最低价
sell: 卖一价
vol: 24h成交量
change: 24h涨跌幅百分比(当前价格与24h前价格相比), 取值0.0108表示价格上涨1.08%
- URL:
https://openapi.digifinex.com/v2/otc_market_price
- 请求方法: GET
- 请求参数:
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
apiKey | string | 1 | 你的APIKEY |
timestamp | int | 1 | 请求接口时的UTC+8时间戳,例timestamp=1410431266 |
sign | string | 1 | 参数签名 |
- 示例:
# Request
GET https://openapi.digifinex.com/v2/otc_market_price?apiKey=59328e10e296a×tamp=1410431266&sign=0a8d39b515fd8f3f8b848a4c459884c2
# Response
{
"code":0,
"date":1410431266,
"price":{
"cny_usdt":6.4
}
}
- 返回值说明:
code: 错误码
date: 服务器返回数据时的时间戳(UTC+8)
price: 市场价
cny_usdt:通过otc代理购买出售usdt的中间价
- URL:
https://openapi.digifinex.com/v2/depth
- 请求方法: GET
- 请求参数:
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
symbol | string | 1 | 要查询的交易对,例如usdt_btc |
apiKey | string | 1 | 你的APIKEY |
timestamp | int | 1 | 请求接口时的UTC+8时间戳,例timestamp=1410431266 |
sign | string | 1 | 参数签名 |
- 示例:
# Request
GET https://openapi.digifinex.com/v2/depth?symbol=usdt_btc&apiKey=59328e10e296a×tamp=1410431266&sign=0a8d39b515fd8f3f8b848a4c459884c2
# Response
{
"code":0,
"date":1410431266,
"asks": [
[6967.14, 0.1234], //[价格, 数量]
[6967.15, 0.1234],
...
],
"bids":[
[6967.13, 0.1234], //[价格, 数量]
[6967.12, 0.1234],
...
]
}
- 返回值说明:
code: 错误码
date: 服务器返回数据时的时间戳(UTC+8)
asks: 卖方深度,按价格正序排列
[价格,数量]
bids: 买方深度,按价格倒序排列
[价格,数量]
- URL:
https://openapi.digifinex.com/v2/trade_detail
- 请求方法: GET
- 请求参数:
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
symbol | string | 1 | 要查询的交易对,例如usdt_btc |
apiKey | string | 1 | 你的APIKEY |
timestamp | int | 1 | 请求接口时的UTC+8时间戳,例timestamp=1410431266 |
sign | string | 1 | 参数签名 |
- 示例:
# Request
GET https://openapi.digifinex.com/v2/trade_detail?symbol=usdt_btc&apiKey=59328e10e296a×tamp=1410431266&sign=0a8d39b515fd8f3f8b848a4c459884c2
# Response
{
"code":0,
"data":[ //按时间倒序排列
{
"date": 1420431266,
"price": 787.71,
"amount": 0.003,
"type": "sell"
},
{
"date": 1410431266,
"price": 787.5,
"amount": 0.091,
"type": "buy"
},
...
]
}
- 返回值说明:
code: 错误码
date: 成交时间
price: 交易价格
amount: 交易数量
type: buy/sell
- URL:
https://openapi.digifinex.com/v2/kline
- 请求方法: GET
- 请求参数:
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
symbol | string | 1 | 要查询的交易对,例如usdt_btc |
type | string | 1 | K线类型: kline_1m/kline_5m/kline_15m/kline_30m/kline_1h/kline_1d/kline_1w |
apiKey | string | 1 | 你的APIKEY |
timestamp | int | 1 | 请求接口时的UTC+8时间戳,例timestamp=1410431266 |
sign | string | 1 | 参数签名 |
- 示例:
# Request
GET https://openapi.digifinex.com/v2/kline?symbol=usdt_btc&type=kline_1m&apiKey=59328e10e296a×tamp=1410431266&sign=0a8d39b515fd8f3f8b848a4c459884c2
# Response
{
"code":0,
"data":[ //按时间正序排列
[
1410431226, //起始时间
0.81428, //交易量
0.00929514, //收盘
0.00939414, //最高
0.00929618, //最低
0.00929313 //开盘
],
[
1410431366, //起始时间
0.81428, //交易量
0.00929414, //收盘
0.00949888, //最高
0.00929999, //最低
0.00929111 //开盘
],
...
]
}
- 返回值说明:
code: 错误码
1410431266, //起始时间
0.81428, //交易量
0.00929514, //收盘
0.00939514, //最高
0.00929371, //最低
0.00929371 //开盘
获取开通权限的交易对,以及每个交易对的下单精度限制
- URL:
https://openapi.digifinex.com/v2/trade_pairs
- 请求方法: GET
- 请求参数:
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
apiKey | string | 1 | 你的APIKEY |
timestamp | int | 1 | 请求接口时的UTC+8时间戳,例timestamp=1410431266 |
sign | string | 1 | 参数签名 |
- 示例:
# Request
GET https://openapi.digifinex.com/v2/trade_pairs?apiKey=59328e10e296a×tamp=1410431266&sign=0a8d39b515fd8f3f8b848a4c459884c2
# Response
{
"code":0,
"date":1410431266,
"data":{
"usdt_btc":[4,2,0.001,10.0],
"usdt_eth":[4,2,0.01,10.0],
"btc_eth":[4,4,0.01,0.001],
...
}
}
- 返回值说明:
code: 错误码
date: 服务器返回数据时的时间戳(UTC+8)
[4,2,0.001,10.0]:数量精度,价格精度,最小下单数量,最小下单金额
例:"usdt_btc":[4,2,0.001,10.0]
BTC对USDT交易对,下单数量(BTC量)支持4位小数,下单价格(以USDT计价)支持2位小数,最小下单0.001BTC,最小下单总金额10USDT。必须同时满足以上条件才可下单成功。
- URL:
https://openapi.digifinex.com/v2/trade
- 请求方法: POST
- 请求参数:
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
symbol | string | 1 | 要交易的交易对,例:usdt_btc |
price | float | 1 | 交易价格 |
amount | float | 1 | 交易数量 |
type | string | 1 | 交易类型:buy/sell |
post_only | int | 0 | 1:使用,0:不使用。post_only订单将保证该订单总是支付maker手续费,该订单如果不能进入买卖盘则会自动取消。 |
apiKey | string | 1 | 你的APIKEY |
timestamp | int | 1 | 请求接口时的UTC+8时间戳,例timestamp=1410431266 |
sign | string | 1 | 参数签名 |
- 示例:
# Request
POST https://openapi.digifinex.com/v2/trade
POST参数:
symbol=usdt_btc
price=6000.12
amount=0.1
type=buy
apiKey=59328e10e296a
timestamp=1410431266
sign=0a8d39b515fd8f3f8b848a4c459884c2
# Response
{
"code":0,
"order_id":"1000001"
}
- 返回值说明:
code: 错误码
order_id: 订单ID
- URL:
https://openapi.digifinex.com/v2/open_orders
- 请求方法: GET
- 请求参数:
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
symbol | string | 0 | 要查询交易对,例:usdt_btc,不填返回全部交易对 |
type | string | 0 | 交易类型:buy/sell/buy_market/sell_market,不填则返回全部类型 |
page | int | 0 | 要查询的订单页码,page=1表示第一页,不填默认返回第1页 |
apiKey | string | 1 | 你的APIKEY |
timestamp | int | 1 | 请求接口时的UTC+8时间戳,例timestamp=1410431266 |
sign | string | 1 | 参数签名 |
- 示例:
# Request
GET https://openapi.digifinex.com/v2/open_orders?symbol=usdt_btc&page=1&apiKey=59328e10e296a×tamp=1410431266&sign=0a8d39b515fd8f3f8b848a4c459884c2
# Response
{
"code":0,
"date":1410431266,
“total”:123,
"page":1,
"num_per_page":20,
"orders":[ //按时间倒序排列
{
"order_id":"1234567",
"created_date":1420431266,
"symbol": "usdt_btc",
"price":6000.12,
"amount":0.0,
"executed_amount":0.1,
"cash_amount":1000.12,
"avg_price":6000.12,
"type":"buy_market",
"status":1
},
{
"order_id":"1234568",
"created_date":1410431266,
"symbol": "usdt_btc",
"price":6001.12,
"amount":0.2,
"executed_amount":0.0,
"cash_amount":0.0,
"avg_price":0.0,
"type":"sell",
"status":0
},
...
]
}
- 返回值说明:
code: 错误码
date: 服务器返回数据时的时间戳(UTC+8)
total: 活跃订单总数
page: 当前页码
num_per_page: 每页返回的记录条数
orders: 订单信息按照下单时间倒序排列
order_id: 订单号
created_date: 下单时间
symbol: 交易对
price: 订单价格
amount: 订单数量
executed_amount: 已成交数量
cash_amount: 委托金额,不适用显示0.0
avg_price: 平均成交价格,未成交显示0.0
type: buy限价买单,sell限价卖单,buy_market市价买单,sell_market市价卖单
status: 订单状态:0未成交 1部分成交
不包括活跃订单,只支持查询最近3天的历史订单
- URL:
https://openapi.digifinex.com/v2/order_history
- 请求方法: GET
- 请求参数:
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
symbol | string | 0 | 要查询交易对,例:usdt_btc,不填返回全部交易对 |
date | string | 0 | 要查询的下单日期(UTC+8),例date=2018-07-18,不填默认为当天。 |
type | string | 0 | 交易类型:buy/sell/buy_market/sell_market,不填则返回全部类型 |
page | int | 0 | 要查询的订单页码,page=1表示第一页,不填默认返回第1页 |
apiKey | string | 1 | 你的APIKEY |
timestamp | int | 1 | 请求接口时的UTC+8时间戳,例timestamp=1410431266 |
sign | string | 1 | 参数签名 |
- 示例:
# Request
GET https://openapi.digifinex.com/v2/order_history?apiKey=59328e10e296a×tamp=1410431266&sign=0a8d39b515fd8f3f8b848a4c459884c2
# Response
{
"code":0,
"date":1410431266,
"total":123,
"page":1,
"num_per_page":20,
"orders":[ //按时间倒序排列
{
"order_id":"1234567",
"created_date":1430431266,
"finished_date":1420431266,
"symbol": "usdt_btc",
"price":6000.12,
"amount":0.2,
"executed_amount":0.1,
"cash_amount":0.0,
"avg_price":6000.00,
"type":"buy",
"status":1
},
{
"order_id":"1234568",
"created_date":1410431266,
"finished_date":1440431266,
"symbol": "usdt_btc",
"price":6001.12,
"amount":0.2,
"executed_amount":0,
"cash_amount":0.0,
"avg_price":0.0,
"type":"sell",
"status":0
},
{
"order_id":"1234568",
"created_date":1400431266,
"finished_date":1460431266,
"symbol": "usdt_btc",
"price":6001.12,
"amount":0.2,
"executed_amount":0.2,
"cash_amount":0.0,
"avg_price":6000.11,
"type":"sell",
"status":2
},
...
]
}
- 返回值说明:
code: 错误码
date: 服务器返回数据时的时间戳(UTC+8)
total: 所选日期记录总条数
page: 当前页码
num_per_page: 每页返回的记录条数
orders: 订单信息按照下单时间倒序排列
order_id: 订单号
created_date: 下单时间
finished_date: 撤销订单或完全成交时间
symbol: 交易对
price: 订单价格
amount: 订单数量
executed_amount: 已成交数量
cash_amount: 委托金额,不适用显示0.0
avg_price: 平均成交价格,未成交显示0.0
type: buy限价买单,sell限价卖单,buy_market市价买单,sell_market市价卖单
status: 订单状态:2全部成交 3已撤销未成交 4已撤销部分成交
- URL:
https://openapi.digifinex.com/v2/order_info
- 请求方法: GET
- 请求参数:
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
order_id | string | 1 | 要查询的订单ID,多个订单用逗号分隔,最多支持20个订单 |
apiKey | string | 1 | 你的APIKEY |
timestamp | int | 1 | 请求接口时的UTC+8时间戳,例timestamp=1410431266 |
sign | string | 1 | 参数签名 |
- 示例:
# Request
GET https://openapi.digifinex.com/v2/order_info?order_id=1000001,1000002&apiKey=59328e10e296a×tamp=1410431266&sign=0a8d39b515fd8f3f8b848a4c459884c2
# Response
{
"code":0,
"data":[
{
"order_id":"1000001",
"created_date":1410431266,
"finished_date":0,
"price":6001.12,
"amount":0.2,
"executed_amount":0.2,
"cash_amount":0.0,
"avg_price":6000.11,
"type":"buy",
"status":2
},
{
"order_id":"1000002",
"created_date":1510431266,
"finished_date":0,
"price":6001.12,
"amount":0.2,
"executed_amount":0.2,
"cash_amount":0.0,
"avg_price":6000.11,
"type":"buy",
"status":2
}
]
}
- 返回值说明:
code: 错误码
order_id: 订单号
created_date: 下单时间
finished_date: 订单全部成交时间或撤单时间
price: 委托价格
amount: 委托数量
executed_amount: 已成交数量
cash_amount: 委托金额,不适用显示0.0
avg_price: 平均成交价格
type: buy限价买单,sell限价卖单,buy_market市价买单,sell_market市价卖单
status: 订单状态:0未成交 1部分成交 2全部成交 3已撤销未成交 4已撤销部分成交
- URL:
https://openapi.digifinex.com/v2/order_detail
- 请求方法: GET
- 请求参数:
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
order_id | string | 1 | 要查询的订单ID |
apiKey | string | 1 | 你的APIKEY |
timestamp | int | 1 | 请求接口时的UTC+8时间戳,例timestamp=1410431266 |
sign | string | 1 | 参数签名 |
- 示例:
# Request
GET https://openapi.digifinex.com/v2/order_detail?order_id=1000001&apiKey=59328e10e296a×tamp=1410431266&sign=0a8d39b515fd8f3f8b848a4c459884c2
# Response
{
"code":0,
"order_id":"1234568",
"created_date":1410431266,
"finished_date":0,
"price":6001.12,
"amount":0.2,
"executed_amount":0.2,
"cash_amount":0.0,
"avg_price":6000.11,
"type":"buy",
"status":2
"detail":[ //按时间倒序排列
{
"date":1430431266,
"executed_amount":0.10000000,
"executed_price":6000.11,
"tid":"230435"
},
{
"date":1420431266,
"executed_amount":0.10000000,
"executed_price":6000.11,
"tid":"230436"
},
...
]
}
- 返回值说明:
code: 错误码
order_id: 订单号
created_date: 下单时间
finished_date: 订单全部成交时间或撤单时间
price: 委托价格
amount: 委托数量
executed_amount: 已成交数量
cash_amount: 委托金额,不适用显示0.0
avg_price: 平均成交价格
type: buy限价买单,sell限价卖单,buy_market市价买单,sell_market市价卖单
status: 订单状态:0未成交 1部分成交 2全部成交 3已撤销未成交 4已撤销部分成交
detail: 具体成交明细(仅支持最近15天的数据)
date: 成交时间
executed_amount: 成交数量
executed_price: 成交价格
tid: 交易ID
- URL:
https://openapi.digifinex.com/v2/cancel_order
- 请求方法: POST
- 请求参数:
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
order_id | string | 1 | 要撤销的订单ID,多个订单用逗号分隔,最多支持20个订单 |
apiKey | string | 1 | 你的APIKEY |
timestamp | int | 1 | 请求接口时的UTC+8时间戳,例timestamp=1410431266 |
sign | string | 1 | 参数签名 |
- 示例:
# Request
POST https://openapi.digifinex.com/v2/cancel_order
POST参数:
order_id=1000001,1000002,1000003
apiKey=59328e10e296a
timestamp=1410431266
sign=0a8d39b515fd8f3f8b848a4c459884c2
# Response
{
"code":0,
"date":1410431266,
"success":[1000001, 1000002],
"fail":[
[1000003, 10001]
]
}
- 返回值说明:
code: 错误码
date: 服务器返回数据时的时间戳(UTC+8)
success: 撤销成功的订单ID
fail: [撤销失败的订单ID, 错误码]
- URL:
https://openapi.digifinex.com/v2/myposition
- 请求方法: GET
- 请求参数:
参数名 | 参数类型 | 必填 | 描述 |
---|---|---|---|
apiKey | string | 1 | 你的APIKEY |
timestamp | int | 1 | 请求接口时的UTC+8时间戳,例timestamp=1410431266 |
sign | string | 1 | 参数签名 |
- 示例:
# Request
GET https://openapi.digifinex.com/v2/myposition?apiKey=59328e10e296a×tamp=1410431266&sign=0a8d39b515fd8f3f8b848a4c459884c2
# Response
{
"code":0,
"date":1410431266,
"free":{
"usdt":123.12345678,
"btc":0.12345678,
...
},
"frozen":{
"usdt":123.12345678,
"btc":0.12345678,
...
}
}
- 返回值说明:
code: 错误码
date: 服务器返回数据时的时间戳(UTC+8)
free: 账户可用余额
frozen: 账户冻结余额