合约 V3 REST API
概述
HTTP API允许通过公共端点读取公共市场数据,并通过私有端点读取/写入私有账户。
- HTTP API:
https://api.poloniex.com
所有公共请求都不需要身份验证(API签名)。
私有HTTP端点(例如https://api.poloniex.com/v3/orders)使用HMAC-SHA256签名的请求进行身份验证。 详情请点击身份验证。
交易对的命名规则为 <baseCcy>_<quoteCcy>_PERP
,例如 BTC_USDT_PERP
,与以往系统的规则相反。
API Key 权限设置
- 新创建的API的默认权限是 只读。
- 如果需要通过API提款, 需要在UI修改权限, 选中提币。
- 如果需要通过API交易, 需要在UI修改权限, 选中对应合约交易权限
身份验证
所有公共请求都不需要身份验证(API签名)。
所有私有HTTP端点需要使用HMAC-SHA256签名请求进行身份验证,并包含以下头部信息:
- key:输入调用者的API密钥, 例如
A...-99...
。 - signatureMethod:可选项,输入签名方法, 例如
hmacSHA256
。 - signatureVersion:可选项,输入签名版本, 例如
1
。 - signTimestamp:输入时间戳, 例如
1649371360000
。 - signature:输入API调用者请求生成的签名, 例如
4F…%3D
。 - recvWindow:可选项,输入持续时间,用毫秒表示, 例如
1500
。 该字段提供了额外的控制层,如果指定了该字段并且请求的Poloniex系统时间和signTimestamp对差值超过了recvWindow值,则请求会被拒绝。 以下是错误代码响应:- 400:signTimestamp比Poloniex系统时间多过1秒。
- 408:请求超时,超过了recvWindow阈值。
提示
POST和DELETE请求应包含application/json类型的内容,并且格式必须是有效的JSON格式。
签名代码示例
以下是三种语言(Java/Python/Node.js)的API签名代码以及请求代码示例。点此查看详情.
生成API签名
步骤如下:
- 写一个"请求字符串",用于生成数字签名,包括:
- 请求方法类型(GET/POST/DELETE等),随后写
"\n"
,例如GET\n
- 访问路径,随后写
"\n"
,例如/orders\n
- 添加时间戳参数和按ASCII顺序排序的参数列表,参数之间用&分 隔,例如
limit=5&signTimestamp=1659259836247&symbol=ETH_USDT
- 注:所有参数必须以URL/UTF-8编码, 即空格编码为
"%20"
- 根据上述示例值生成的签名串为:
GET\n
/orders\n
limit=5&symbol=ETH_USDT
- 对于带有HTTP正文的DELETE或POST方法,例如根据ID取消订单:
/orders/cancelByIds\n
- 添加requestBody和时间戳:
requestBody={"orderIds":["1234567890"],"clientOrderIds": ["myId-1"]}
signTimestamp=1631018760000
- 需要加时间戳。 时间戳有效期为1分钟。 按照以上顺序使用字符
&
连接参数:
requestBody={"orderIds":["1234567890"],"clientOrderIds":["myId-1"]}&signTimestamp=1631018760000}
- 签名计算最后一个字符串:
DELETE\n
/orders/cancelByIds/\n
- 添加requestBody和时间戳:
- 不带HTTP正文的DELETE或POST方法,例如按ID取消订单:
/orders/1
- 需要加时间戳。 时间戳有效期为1分钟。
signTimestamp=1631018760000
- 签名计算最后一个字符串:
DELETE\n
/orders/1\n
signTimestamp=1631018760000
- 需要加时间戳。 时间戳有效期为1分钟。
- 请求方法类型(GET/POST/DELETE等),随后写
- 用上一步生成的“请求字符串”和密钥生成数字签名:
- 调用HmacSHA256哈希函数,使用上一步中获取的请求字符串和API私钥作为两个参数,获取哈希值。
- 使用Base64将该哈希值进行编码,编码后的值用作接口调用的数字签名。
- 例如
5g4Rx5A2bLyMWFgR3Aqp+B4w+iJkL7n5OD3SuYtCJK8=
- 请求示例:(使用上述产生的签名)
注:POST和DELETE请求应包含application/json类型的内容,并且格式必须是 有效的JSON格式。
GET命令:
curl -X GET \
--header 'key: A3xxxxxx-99xxxxxx-84xxxxxx-72xxxxxx' \
--header 'signatureMethod: HmacSHA256' \
--header 'signatureVersion: 2' \
--header 'signTimestamp: 1631018760000' \
--header 'signature: 5g4Rx5A2bLyMWFgR3Aqp+B4w+iJkL7n5OD3SuYtCJK8=' \
限频规则
您可以根据下列表格,参考限频的规则,合理使用您的交易策略。
如有其他问题,请通过电子邮件联系客服询问(api-support@poloniex.com)。
注:交易、持仓与账户相关的接口,根据UID维度,进行限频。行情相关的接口,根 据IP纬度进行限频。
类型 | 接口名称 | Url | 普通用户 | Silver | Gold | Market Maker | Token Market Maker |
---|---|---|---|---|---|---|---|
交易 | 下单 | /v3/trade/order | 50 | 80 | 100 | 1000 | 1000 |
批量下单 | /v3/trade/orders | 5 | 8 | 10 | 100 | 100 | |
撤单 | /v3/trade/order | 100 | 160 | 200 | 1000 | 1000 | |
批量撤单 | /v3/trade/batchOrders | 10 | 16 | 20 | 100 | 100 | |
全部撤单 | /v3/trade/allOrders | 10 | 16 | 20 | 100 | 100 | |
市价全平 | /v3/trade/position | 10 | 16 | 20 | 200 | 200 | |
一键全平 | /v3/trade/positionAll | 2 | 4 | 8 | 16 | 16 | |
查询当前委托 | /v3/trade/order/opens | 10 | 20 | 30 | 40 | 50 | |
查询成交明细 | /v3/trade/order/trades | 10 | 15 | 15 | 20 | 20 | |
查询历史委托 | /v3/trade/order/history | 10 | 15 | 15 | 20 | 20 | |
仓位 | 查询当前持仓 | /v3/trade/position/opens | 10 | 20 | 30 | 40 | 50 |
查询历史持仓 | /v3/trade/position/history | 10 | 15 | 15 | 20 | 20 | |
调整逐仓仓位保证金 | /v3/trade/position/margin | 10 | 20 | 30 | 40 | 50 | |
查看持仓模式 | /v3/position/mode | 10 | 20 | 30 | 40 | 50 | |
切换持仓模式 | /v3/position/mode | 10 | 20 | 30 | 40 | 50 | |