-
Notifications
You must be signed in to change notification settings - Fork 1.5k
HTTP Protocol
haipo yang edited this page May 16, 2017
·
44 revisions
192.168.1.1:8080
接口使用基于 HTTP 协议的 JSON RPC 方案,HTTP 请求方法必须为 POST, URL 为:/ , Content-Type 为:application/json
Server 不做缓存,请调用方做好数据缓存
Request
- method: 方法,String
- params: 参数,Array
- id: Request id, Integer
Response
- result: Json 对象,null 表示失败
- error: Json 对象,null 表示成功,非 null 表示失败
- code: error code
- message: error message
- id: Request id, Integer
通用 error code:
- 1: invalid argument
- 2: internal error
- 3: service unavailable
- 4: method not found
- 5: service timeout
资金查询
- method:
balance.query - params: 不固定参数,第一个参数为用户ID,后面为资产名列表,如果列表为空,则返回用户所有资产情况
- user_id:用户 ID,Integer
- result: {"asset": {"available": "amount", "freeze": "amount"}}
- example:
"params": [1, "BTC"]
"result": {"BTC": {"available": "1.10000000","freeze": "9.90000000"}}
资金变更
- method:
balance.update - params:
- user_id: 用户 ID,Integer
- asset: 资产名,String
- business: 业务类型,String
- business_id: 业务 ID,Integer, 多次相同 user_id, asset, business, business_id 的操作只会成功一次
- change: 变化金额,String, 负数表示扣除
- detail: Json 对象,附带信息
- result: "success"
- error code:
- repeat update
- balance not enough
- example:
"params": [1, "BTC", "deposit", 100, "1.2345"]
"result": "success"
资金历史
- method:
balance.history - params:
- user_id: 用户 ID, Integer
- asset: 资产名,可以为空
- business: 业务,可以为空,多个业务以 ',' 分割
- start_time: 起始时间,0 表示不限制,Integer
- end_time: 结束时间,0 表示不限制, Integer
- offset: 偏移位置,Integer
- limit: 数量限制,Integer
- result:
{
"total":
"offset":
"limit":
"records": [
{
"time": timestamp,
"asset": asset,
"business": business,
"change": change,
"balance":balance,
"detail": detail
}
...
]
下现价单
- method:
order.put_limit - params:
- user_id: 用户 ID,Integer
- market: 市场名,String
- side: 1: 卖单, 2: 买单,Integer
- amount: 数量,String
- pride: 价格,String
- taker_fee_rate: String, taker 费率
- maker_fee_rate: String, maker 费率
- source: String, 来源,最长不超过30个字节
- result: success
- error:
- balance not enough
- example:
params: [1, "BTCCNY", 1, "10", "8000", "0.002", "0.001"]
下市价单
- method:
order.put_market - params:
- user_id: 用户 ID,Integer
- market: 市场名,String
- side: 1: 卖单, 2: 买单,Integer
- amount: 数量或金额,String
- taker_fee_rate: taker 费率
- source: String, 来源,最长不超过30个字节
- result: success
- error:
- balance not enough
- example:
params: '[1, "BTCCNY", 1, "10","0.002"]'
取消订单
- method:
order.cancel - params:
- user_id: 用户ID
- market:市场
- order_id: 订单ID
- result: success
- error:
- order not found
- user not match
成交详情
- method:
order.deals - params:
- order_id: 订单ID, Integer
- offset
- limit
- result:
- example:
"result": {
"offset":
"limit":
"total":
"records": [
{
"time": 时间戳
"amount": 数量
"price": 价格
"deal": 成交金额
"fee": 费用
"deal_order_id": 对手交易 ID
"role": 角色,1:Maker, 2: Taker
}
...
]
订单列表
- method:
order.book - params:
- market:
- side: 方向,1:卖单,2:买单
- offset:
- limit:
- result:
订单深度
- method:
order.depth - params:
- market:市场名
- limit: 数量限制,Integer
- interval: 间隔,String, 比如 "1" 表示间隔 1 个单位, "0" 表示无间隔
- result:
"result": {
"asks": [
[
"8000.00",
"9.6250"
]
],
"bids": [
[
"7000.00",
"0.1000"
]
]
}
查询未成交订单
- method:
order.pending - params:
- user_id: 用户 ID,Integer
- market: 市场名,String
- offset: 偏移量,Integer
- limit: 限制量,Integer
- result:
- example:
"params": [1, "BTCCNY", 0, 100]"
"result": {
"offset": 0,
"limit": 100,
"total": 1,
"records": [
{
"id": 2,
"ctime": 1492616173.355293,
"mtime": 1492697636.238869,
"market": "BTCCNY",
"user": 2,
"type": 1, // 1: 限价单,2:市价单
"side": 2, // 1:卖单,2:买单
"amount": "1.0000".
"price": "7000.00",
"taker_fee": "0.0020",
"maker_fee": "0.0010",
"source": "web",
"deal_money": "6300.0000000000",
"deal_stock": "0.9000000000",
"deal_fee": "0.0009000000"
}
]
}
未成交订单详情
- method:
order.pending_detail - params:
- market:
- order_id: 订单ID,Interger
- result:
查询已成交订单
- method:
order.finished - params:
- user_id: 用户 ID,Integer
- market: 市场名,String
- start_time: 起始时间,0 表示不限制,Integer
- end_time: 结束时间,0 表示不限制, Integer
- offset: 偏移量,Integer
- limit: 限制量,Integer
- result:
已成交订单详情
- method:
order.finished_detail - params:
- order_id: 订单ID,Interger
- result:
市场价格
- method:
market.last - params:
- market
- result: "price"
成交历史
- method:
market.deals - params:
- market:
- limit: 数量,不超过 10000
- last_id: id 限制
- result:
"result": [
{
"id": 5,
"time": 1492697636.238869,
"type": "sell",
"amount": "0.1000",
"price": "7000.00"
},
{
"id": 4,
"time": 1492697467.1411841,
"type": "sell",
"amount": "0.1000"
"price": "7000.00",
}
}
KLine
- method:
market.kline - params:
- market: 市场
- start: 开始时间,Integer
- end: 结束时间, Integer
- interval: 周期秒数, Integer
- result:
"result": [
[
1492358400, 时间
"7000.00", 开盘
"8000.0", 收盘
"8100.00", 最高
"6800.00", 最低
"1000.00" 成交量
]
]
市场状态
- method:
market.status - params:
- market: 市场名
- period: 周期秒数,Integer, 比如 86400 表示过去 24 小时
- result:
"result": {
"period": 86400,
"last": "7000.00",
"open": "0",
"close": "0",
"high": "0",
"low": "0",
"volume": "0"
}
今日市场状态
- method:
market.status_today - params:
- market: 市场名
- result:
{
"open": 今日开盘
"last": 最新价格
"high": 最高价格
"low": 最低价格
"volume": 24小时成交量
}