应用程序编程

了解我们的API

WebSockets API

WebSockets文件

REST API

一般使用

请注意: 所有API链接请使用此域名: api.kraken.com.

公共方法可以使用GET或者POST。

私人方法请使用POST并按如下方法设置:

HTTP header:

API-Key = API key
API-Sign = 消息签名使用 HMAC-SHA512 (URI 路径 + SHA256(nonce + POST 数据)) 和 64位解码的秘密API密钥

POST 数据:

nonce = 持续增长的未签名的64位整数动态令牌
otp = 双重认证(如果开启了双重身份认证,否则不需要)

注意:随机数一旦设定,无法重设为更低的数值。因此请确认您使用的随机数生成器不会生成比前一次数值低的数值。可使用持续计数器或者精确到0.01秒及以上的当前时间作为您设定的随机数。 多次输入比前次有效随机数数值低的数(EAPI:无效随机数)可能会使你短时间内无法使用API。

注意:有时随机数请求失序,或者NTP(网络时间协定)使您的时钟逆转,都可能导致您的随机数出现问题。如果您遇到了这类问题,可以更改您API设定页的随机数窗口。自定义的数据取决于您随机数的增量。也取决于您的连通性,您的设定最好包含3-15秒的网络延迟。

API 订单里提及资产货币名称的可以使用他们的ISO注册ISO4217-A3名,若没有ISO注册,则使用他们通用名(3字母)或X-ISO4217-A3码。 (请看 http://www.ifex-project.org/).

回复是通过以下形式进行的JSON编码

错误 = 错误消息数组,格式为:
<char-severity code><string-error category>:<string-error type>[:<string-extra info>]
严重性代码可以是错误表示为E,W表示警告
结果 = API呼叫的结果(如果发生错误,可能不出现)

注意:应小心处理表示为字符串的任何数字,因为这些数字可能会溢出标准数据类型。

API呼叫速率限制

我们也有保护措施来防止滥用/ DoS攻击和快速发生和取消引起的订单薄操纵。

我们API的每个用户都有一个“呼叫计数器”,从0开始。

分类账/交易历史呼叫计数将增加2。

发出/取消订单呼叫不会影响计数器。

所有其他API呼叫都会将计数器都将增加1。

用户的计数器每几秒钟减少一次,如果是计数器超出用户的最大API访问权限被暂停15分钟。 通过初级验证的用户最多为15次,他们的计数器每3秒减少1次。 通过中级和专业验证的用户最多为20次; 对于中级用户,计数器每2秒减少1次。专业级用户每1秒减少1次。

虽然下订单和取消订单不会增加计数器, 有单独的限制来防止操纵订单薄。 只下达您打算填写的订单并将费率保持在1,每秒通常不足以达到此限制。

公开市场数据

获取服务器时间

网址:https://api.kraken.com/0/public/Time

结果:服务器的时间

unixtime = as unix 时戳
rfc1123 =RFC 1123时间格式

注意:这有助于近似服务器和客户端之间的偏差时间。

获取资产信息

网址:https://api.kraken.com/0/public/Assets

输入:

信息 =要检索的信息(可选):
信息 =所有信息(默认)
分类 =资产类(可选):
货币(默认)
资产 =逗号分隔的资产列表以获取信息(可选。默认=所有给定资产类别)

获取可交易资产对

网址:https://api.kraken.com/0/public/AssetPairs

输入:

信息 =要检索的信息(可选):
信息 =所有信息(默认)
杠杆=杠杆信息
费用=费用表
保证金=保证金信息
对 =逗号分隔的资产对列表以获取信息(可选。默认=全部)

结果:货币对的名称数组及其信息

&LT; 对_名称&GT; =对名称
备用 =备用对名称
ws名称 = WebSocket对名称(如果可用)
基本分类 =基本组件的资产类别
基本 =基本组件的资产ID
报价分类 =报价组件的资产类别
报价 =报价组件的资产ID
lot =批量大小
货币对小数 =货币对的小数位数
lot_小数 =交易量的小数位数
lot_批量 =将批量交替乘以获得货币量的数量
杠杆_买入 =购买时可用的杠杆数量数组
杠杆_卖出 =卖出时可用的杠杆数量数组
费用=费用计划数组[交易量,百分比]元组
费用_挂单 =挂单费用计划数组[体积,百分比费用]元组(如果在制造商/接受者)
费用_交易量_货币 =交易量折扣货币
追加保证金 =通知追加保证金水平
保证金_止损 =止损/清算保证金水平

注意:如果资产对符合挂单/收单费用表,则为收单方面的“费用”和挂单方面的“挂单费用”。对于没有挂单/收单的货币对,他们将只收取“费用”。

获取工单信息

网址:https://api.kraken.com/0/public/Ticker

输入:

对 =逗号分隔的资产对列表以获取信息

结果:对名称数组及其工单信息

&LT; 货币对名称&GT; =对名称
a =询问数组(&lt; 价格&gt;,&lt;所有批量&gt;,&lt;批量&gt;),
b =出价数组(&lt; 价格&gt;,&lt;所有批量&gt;,&lt;批量&gt;),
c =最后交易关闭数组(&lt; 价格&gt;,&lt; 批量&gt;),
v =交易量数组(&lt; 今天&gt;,&lt; 最近24小时&gt;),
p =交易量加权平均价格数组(&lt; 今天&gt;,&lt; 最近24小时&gt;),
t =交易数组(&lt; 今天&gt;,&lt; 最近24小时&gt;),
l =低数组(&lt; 今天&gt;,&lt; 最近24小时&gt;),
h =高数组(&lt; 今天&gt;,&lt; 最近24小时&gt;),
o =今天的开盘价

注意:今天的价格从00:00:00 UTC开始

获取OHLC数据

网址:https://api.kraken.com/0/public/OHLC

输入:

对 =资产对获取OHLC数据
间隔 =以分钟为单位的时间帧间隔(可选):
1(默认),5,15,30,60,240,1440,10080,21600
since =返回已提交的OHLC数据,因为给定的id(可选。仅仅)

结果:对名称和OHLC数据的数组

&LT; 对名称&GT; =对名称
输入条目数组(&lt; 时间&gt;,&lt; 开设&gt;,&lt; 高的&gt;,&lt; 低的&gt;,&lt; 关闭&gt;,&lt; vwap&gt;,&lt; 交易量&gt;,&lt; 计算&gt;)
最近 = id,用于自新一轮开始,已实施的OHLC数据

注意:OHLC数组中的最后一个条目用于当前的尚未提交的帧,并且始终存在,无论"since"的值是什么。

获取订单

网址:https://api.kraken.com/0/public/Depth

输入:

货币对 =资产对以获得市场深度
计算 =最大要求/出价数量(可选)

结果:对名称和市场深度数组

&LT; 对名称&GT; =对名称
询价 =询问数组条目的副数组(&lt; 价格&gt;,&lt; 交易量&gt;,&lt; 时戳&gt;)
买价 =数组条目的出价侧数组(&lt; 价格&gt;,&lt; 交易量&gt;,&lt; 时戳&gt;)

获取近期交易

网址:https://api.kraken.com/0/public/Trades

输入:

对 =资产对来获取交易数据
since =返回自给定id以来的交易数据(可选。独占)

结果:对名称和最近交易数据的数组

&LT; 对名称&GT; =对名称
数组条目数组(&lt; 价格&gt;,&lt; 交易量&gt;,&lt; 时间&gt;,&lt; 买/卖&gt;,&lt; 市价/限值&gt;,&lt; miscellaneous&gt;)
最新 =在新一轮的交易数据时使用的id

获取最近的传播数据

网址:https://api.kraken.com/0/public/Spread

输入:

对 =资产对来获取传播数据
since =返回传播数据,因为给定的id(可选。包括)

结果:对名称和最近传播数据的数组

&LT; 对名称&GT; =对名称
数组条目数组(&lt; 时间&gt;,&lt; 买价&gt;,&lt; 要价&gt;)
最新 =用作新一轮传播数据时的id

注意:“since”以来是包容性的,因此任何与前一组相同的返回数据都应该覆盖当时所有先前集合的条目

私人用户数据

获取帐户余额

网址:https://api.kraken.com/0/private/Balance

结果:资产名称数组和余额

获取交易余额

网址:https://api.kraken.com/0/private/TradeBalance

输入:

资产分类 =资产类(可选):
货币(默认)
资产 =用于确定余额的基础资产(默认= 美元)

结果:交易余额信息数组

eb =等值余额(所有货币的总余额)
tb =交易差额(所有权益货币的合并余额)
m =未结头寸的保证金金额
n =未实现的净利润/未平仓头寸的损失
c =未结头寸的成本基础
v =未平仓头寸的当前浮动估值
e =股权=贸易差额+未实现净利润/亏损
mf =可用保证金=权益 - 初始保证金(可用于开立新头寸的最大保证金)
ml =保证金水平=(权益/初始保证金)* 100

注意:用于浮动估值的费率是最佳买入价和卖出价的中点

获取未结订单

网址:https://api.kraken.com/0/private/OpenOrders

输入:

交易 =是否在输出中包含交易(可选。默认= 错误)
userref =将结果限制为给定的用户引用标识(可选)

结果:打开数组中以txid为键

的订单信息数组
refid =创建此订单的推荐订单交易ID
userref =用户参考ID
状态 =订单状态:
待定 =订单挂单簿条目
未结 =未结订单
关闭 =关闭订单
取消 =订单取消
已过期 =订单已过期
opentm =放置订单时的unix时间戳
starttm =订单开始时间的unix时间戳(如果未设置,则为0)
expiretm =订单结束时间的unix时间戳(如果未设置,则为0)
descr =订单描​​述信息
对 =资产对
类型 =订单类型(买/卖)
订单类型 =订单类型(请参阅添加标准订单)
价格 =主要价格
价格2 =二级价格
杠杆=杠杆数量
订单 =订单描​​述
关闭 =条件关闭订单描述(如果是条件收盘价)
vol =订单量(除非viqc设置为oflags,否则基础货币)
vol_exec =已执行的交易量(基本货币,除非在oflags中设置了viqc)
成本=总成本(除非viqc设置为oflags,否则报价货币)
费用=总费用(报价货币)
价格=平均价格(除非viqc设置为oflags,否则报价货币)
止损价格 =停止价格(报价货币,追踪止损)
限定价格 =触发限价(报价货币,当触发基于限价的订单类型时)
misc =逗号分隔的杂项信息列表
停止 =由止损价触发
触发 =触摸价格触发
清算 =清算
部分 =部分填充
oflags =逗号分隔的订单标志列表
viqc =报价货币的数量
fcib =基本货币的优惠费用(如果卖出则默认)
fciq =更喜欢报价货币的费用(如果购买则默认)
nompp =没有市场价格保护
交易=与订单相关的交易ID数组(如果要求交易信息和可用数据)

注意:除非另有说明,否则成本,费用,价格和数量均以资产对的比例计算,而非货币的比例。例如,如果资产对使用比例为8的手数,则即使其所代表的货币的比例为2,该交易量也将使用8的等级。同样,如果资产对的定价比例为5 ,即使基础货币的比例为8,该比例也将保持为5。

获取已关闭的订单

网址:https://api.kraken.com/0/private/ClosedOrders

输入:

交易 =是否在输出中包含交易(可选。默认= 错误)
userref =将结果限制为给定的用户引用标识(可选)
开始 =启动unix时间戳或命令结果的tx id(可选。不包括)
结束 =结束unix时间戳或命令结果的tx id(可选。包括)
ofs =结果偏移量
关闭时间 =使用的时间(可选)
开设
关闭
两者(默认)

结果:订单信息数组

关闭 =订单信息数组。请参阅获取未结订单。其他字段:
closetm =订单关闭时的unix时间戳
理由 =有关状态的其他信息(如果有)
计算 =可用订单信息匹配条件的数量

注意:订单ID给出的时间比unix时间戳更准确。如果时间给出了订单id,则使用订单的开放时间

查询订单信息

网址:https://api.kraken.com/0/private/QueryOrders

输入:

交易 =是否在输出中包含交易(可选。默认=错误 )
userref =将结果限制为给定的用户引用标识(可选)
txid =逗号分隔的事务ID列表,用于查询有关的信息(最多50个)

结果:订单信息的关联数组

&lt; 订单_txid&GT; =订单信息。请参阅获取未结订单 / 获取已结订单

获取交易记录

网址:https://api.kraken.com/0/private/TradesHistory

输入:

类型 =交易类型(可选)
所有 =所有类型(默认)
任何头寸 =任意头寸(开放或关闭)
关闭头寸 =已关闭的头寸
平仓头寸 =任意平仓全部或部分头寸的交易
没有头寸 = 非头寸的交易
交易 =是否包括与产出中的头寸相关的交易(可选。默认=错误)
开始 =启动unix时间戳或交易结果的tx id(可选。独占)
结束 =结束unix时间戳或交易结果的tx id(可选。包括)
ofs =结果偏移量

结果:交易信息数组

交易 =以txid为关键字的交易信息数组
订单txid =负责执行交易的订单
对=资产对
时间 = unix贸易时间戳
类型 =订单类型(买/卖)
订单类型 =订单类型
价格 =平均价格订单执行于(报价货币)
成本 =订单总成本(报价货币)
费用 =总费用(报价货币)
交易量 =交易量(基础货币)
保证金 =初始保证金(报价货币)
misc =逗号分隔的杂项信息列表
关闭=交易关闭全部或部分头寸
计算 =可用交易信息匹配条件的数量

如果交易开仓,则跟随的字段也会出现在交易信息中:

posstatus =头寸状态(开/关)
c价格 =持仓的平均价格(报价货币)
c成本 =持仓的封闭部分的总成本(报价货币)
c费用 =头寸的封闭部分的总费用(报价货币)
c交易量 =持仓部分的总费用(报价货币)
c保证金 =在头寸的封闭部分释放的总保证金(报价货币)
净 =净利润/头寸的封闭部分损失(报价货币,报价货币比例)
交易 =头寸平仓交易清单(如果有)

注意:

  • 除非另有说明,否则成本,费用,价格和数量均为资产组的规模,而非货币的规模。
  • 交易ID给出的时间比unix时间戳更准确。

查询交易信息

网址:https://api.kraken.com/0/private/QueryTrades

输入:

txid =逗号分隔的事务ID列表,用于查询有关的信息(最多20个)
交易=是否包括与产出中的头寸相关的交易(可选。默认=错误)

结果:交易信息的关联数组

&lt; 交易_txid&gt; =交易信息。请参阅获取交易记录

获取未结头寸

网址:https://api.kraken.com/0/private/OpenPositions

输入:

txid =逗号分隔的事务ID列表,用于限制输出
docalcs =是否包括损益计算(可选。默认= 错误)

结果:未结头寸信息的关联数组

&lt; 头寸_txid&GT; =未结头寸信息
订单txid =负责执行交易的订单
对=资产对
时间 = unix贸易时间戳
类型 =用于开仓的订单类型(买入/卖出)
订单类型 =用于开仓的订单类型
成本 =开仓成本(除非viqc设置为oflags,否则报价货币)
费用 =开仓费(报价货币)
交易量 =头寸量(基本货币,除非viqc设置为oflags)
交易量_关闭 =头寸交易量已关闭(基础货币除非viqc设置为oflags)
保证金 =初始保证金(报价货币)
价值 =剩余位置的当前值(如果请求docalcs。报价货币)
净值 =剩余头寸的未实现利润/亏损(如果要求的是docalcs。报价货币,报价货币比例)
misc =逗号分隔的杂项信息列表
oflags =逗号分隔的订单标志列表
viqc =报价货币的数量

注意:除非另有说明,否则成本,费用,价格和交易量均以资产对的比例计算,而非货币的比例。

获取分类帐信息

网址:https://api.kraken.com/0/private/Ledgers

输入:

分类 =资产类(可选):
货币(默认)
资产 =逗号分隔的限制输出的资产列表(可选。默认=全部)
类型 =要检索的分类帐类型(可选):
全部(默认)
存款
取款
交易
保证金
开始 =启动结果的unix时间戳或分类帐id(可选. 唯一)
结束 =结束unix时间戳或结果的分类帐id(可选。包括)
ofs =结果偏移量

结果:分类帐信息的关联数组

&lt; 分类账_id&gt; =分类帐信息
refid =引用ID
分类帐时间 = unx时间戳
类型 =分类帐条目的类型
分类 =资产类别
资产 =资产
金额 =交易金额
费用 =交易费
余额 =结果余额 

注意:分类帐ID给出的时间比unix时间戳更准确。

查询分类帐

URL: https://api.kraken.com/0/private/QueryLedgers

输入:

id =逗号分隔的分类帐ID列表,用于查询有关的信息(最多20个)

结果:分类帐信息的关联数组

&lt;分类账_id&gt; =分类帐信息。请参阅获取分类帐信息

获取交易量

网址:https://api.kraken.com/0/private/TradeVolume

输入:

对 =逗号分隔的资产对列表以获取费用信息(可选)
费用信息 =是否在结果中包含费用信息(可选)

结果:关联数组

货币=交易量货币
交易量 =当前折扣量
费用 =资产对数组和费用等级信息(如果要求)
费用 =当前费用百分比
最低费用 =配对的最低费用(如果不是固定费用)
最高费用 =配对的最高费用(如果不是固定费用)
下一级费用 =下一级的成对费用(如果不是固定费用。如果是最低费用等级则为零)
下一级交易量 =下一级的交易量(如果不是固定费用,如果是最低费用等级则为零)
当前交易量 =当前等级的交易量(如果不是固定费用,如果是最低费用等级则为零)
挂单费用 =挂单/收单计划中任何货币对的资产对数组和挂单费用等级信息(如果请求)
费用= 当前费用百分比
最低费用 =配对的最低费用(如果不是固定费用)
最高费用 =配对的最高费用(如果不是固定费用)
下一级费用 =下一级的成对费用(如果不是固定费用。如果是最低费用等级则为零)
下一级交易量 =下一级的交易量(如果不是固定费用,如果是最低费用等级则为零)
当前交易量 =当前等级的交易量(如果不是固定费用,如果是最低费用等级则为零)

注意:如果资产对符合挂单/收单费用表,则为收单方面给出的“费用”和挂单方面给出的“费用”。对于没有的 挂单/收单的货币对,他们将只收取“费用”。

请求导出报告

网址:https://api.kraken.com/0/private/AddExport

输入:

描述 =报告描述信息
报告 =报告类型(交易/分类账)
格式 =(CSV / TSV)(可选。默认= CSV)
字段 =逗号分隔的要包含在报告中的字段列表(可选。默认=全部)
注意:字段选项基于报告类型
&lt;交易&gt;
订单txid
时间
订单类型
价钱
成本
费用
交易量
保证金
杂项
分类帐
&lt;分类帐&gt;
REFID
时间
类型
分类
资产
数额
费用
余额
资产 =逗号分隔的限制输出的资产列表(可选。默认=全部)
开始 =报告开始时间(可选。默认=一年前):
&lt;n&gt; =开始时间的unix时间戳
endtm =报告结束时间(可选。默认=现在):
&lt;n&gt; =结束时间的unix时间戳

结果:

id =报告ID

错误:错误包括(但不限于):

EGeneral:无效的参数
EQuery:未知资产对

获取导出状态

URL: https://api.kraken.com/0/private/ExportStatus

输入:

报告 =报告类型(交易/分类账)

结果:报告数组及其信息

id =报告ID
descr =报告描述信息
格式=(CSV/TSV)
报告 =报告类型(交易/分类账)
状态 =订单状态:
已排队 =报告已排队等待创建
处理 =报告正在处理中
已处理 =报告已完成
创建tm =时间报告已创建
到期tm =时间报告到期
开始tm =报告开始时间
结束tm =报告结束时间
完成tm =时间报告已完成
分类 =资产类别
资产 =逗号分隔的资产列表
字段 =逗号分隔的字段列表
&lt;交易&gt;
TxID添加
订单txid
货币对
时间
类型
订单类型
价格
成本
费用
交易量
保证金
杂项
分类帐
&lt;分类账&gt;
txid
refid
时间
类型
分类
资产
数额
费用
余额

错误:错误包括(但不限于):

EGeneral:无效的参数

获取导出报告

网址:https://api.kraken.com/0/private/RetrieveExport

输入:

id =报告ID

结果:包含报告的二进制zip存档

注意:如果内容类型不是app/json,text或html, 二进制报告将被传回。如果它是这些类型之一,您可能会在响应中出现错误。

注意:根据所选的报告类型和所选字段, 报告可以包含以下字段。带*的字段会永远出现。

   
&lt;交易&gt;
*txid
订单txid
*货币对
时间
*类型
订单类型
价格
成本
费用
交易量
保证金
杂项
分类帐
&lt;分类张&gt;
*txid
REFID
时间
类型
分类
资产
数额
费用
余额

删除导出报告

网址:https://api.kraken.com/0/private/RemoveExport

输入:

类型 =删除类型(取消/删除)
id =报告ID

结果:呼叫结果bool

取消/删除=删除类型

注意:删除删除类型只能用于报表 已经处理完毕。对排队和处理状态使用取消。

错误:错误包括(但不限于):

EGeneral:无效的参数
WExport:已经处理完毕

注意:在取消或删除操作的情况下 已经发生在特定的报告ID上,你会得到返回WExport:已经处理错误。




私人用户交易

添加标准订单

网址:https://api.kraken.com/0/private/AddOrder

输入:

对=资产对
类型 =订单类型(买/卖)
订单类型 =订单类型:
市场
限价(价格=限价)
止损(价格=止损价格)
获利(价格=获利价格)
止损 - 利润(价格=止损价格,价格2 =获利价格)
止损 - 利润限制(价格=止损价格,价格2 =获利价格)
止损限价(价格=止损触发价格,价格2 =触发限价)
获利限制(价格=获利触发价格,价格2 =触发限价)
追踪止损(价格=追踪止损)
追踪止损限价(价格=追踪止损,价格2 =触发限价抵消)
止损和限价(价格=止损价格,价格2 =限价)
结算头寸
价格=价格(可选。取决于订单类型)
价格2 =次要价格(可选。取决于订单类型)
交易量 =批量订单量
杠杆 =所需的杠杆数量(可选。默认=无)
oflags =逗号分隔的订单标志列表(可选):
viqc =报价货币的数量(不适用于杠杆订单)
fcib =基本货币的优惠费用
fciq =优先报价货币的费用
nompp =没有市场价格保护
发布 =仅发布订单(当订单类型=限制时可用)
开始tm =预定开始时间(可选):
0 =现在(默认)
+lt;n&gt; =日程安排开始时间&lt;n&gt;从现在起几秒钟
&lt;n&gt; =开始时间的unix时间戳
到期tm =到期时间(可选):
0 =没有到期(默认)
+lt;n&gt; =到期&lt;n&gt;从现在起几秒钟
&lt;n&gt; =到期时间的unix时间戳
用户ref =用户参考ID。 32位有符号数。 (可选的)
有效日期 =仅验证输入。不提交订单(可选)

在订单填写时添加到系统的可选结账订单:
关闭 [订单类型] =订单类型
关闭[价格] =价格
关闭[价格2] =二级价格

结果:

描述 =订单描​​述信息
订单 =订单描​​述
关闭 =有条件关闭订单描述(如果是条件收盘价)
txid =订单的事务ID数组(如果订单已成功添加)

错误:错误包括(但不限于):

EGeneral:无效的参数
EService:不可用
ETrade:无效的请求
EOrder:无法开仓
EOrder:无法打开对立头寸
EOrder:超出保证金限额
EOrder:保证金水平太低
EOrder:保证金不足(交易所没有足够的资金来进行保证金交易)
EOrder:资金不足(用户资金不足)
EOrder:不达最低订单(数量太低)
EOrder:超出订单限制
EOrder:超出头寸限制
EOrder:超出限额
EOrder:超出预定订单限额
EOrder:未知头寸

注意:

  • 有关资产对价格,交易量和杠杆的规范,请参阅获取可交易资产对
  • 价格前面可以加上+, - 或#来表示价格作为相对金额(除了跟踪止损,它们总是相对的)。+将金额添加到当前的报价中。-从当前的报价中减去金额。#将根据所使用的类型和订单类型向当前提供的价格添加或减去金额。相对价格可以以%为后缀,表示相对金额占提供价格的百分比。
  • 对于使用杠杆的订单,可以使用0来自动填充关闭头寸所需的交易量。
  • 如果您收到错误“EOrder:需要交易协议”,请参阅您的API密钥管理页面以获取更多详细信息。

取消未结订单

网址:https://api.kraken.com/0/private/CancelOrder

输入:

txid =交易ID

结果:

计算 =已取消的订单数量
待定 =如果设置,则订单正在等待取消

注意:txid可能是用户引用ID。

示例API客户端

以下是编写自己的API客户端时可以使用的示例API客户端代码库。请记住,Payward和第三方对由于错误或不当使用API​​而造成的损失负责。在列出第三方代码之前,Payward已对第三方代码的安全性进行了初步审核,但无法保证从那时起添加的任何更改。如果您有疑虑,请联系客服

C

请参阅第三方提交的 https://github.com/hANSIc99/Kraken_C_API

C#

请参阅第三方提交的 https://bitbucket.org/arrivets/krakenapi

C ++

请参阅第三方提交的 https://github.com/voidloop/krakenapi

GO

请参阅第三方提交的https://github.com/Beldur/kraken-go-api-client

Node.JS

请参阅第三方提交的https://github.com/nothingisdead/npm-kraken-api.

PERL

请参阅第三方提交的 http://search.cpan.org/~philippe/Finance-Bank-Kraken-0.1/ .

Python 3

请参阅第三方提交的 https://github.com/veox/ python3-krakenex.

Python 2

请参阅第三方提交的 https://github.com/veox/ python2-krakenex .

Ruby

请参阅第三方提交的 https://github.com/jonatack/kraken_ruby_client.

PHP

Kraken团队提供了一个基本的PHP库,用于与Kraken REST API进行交换。Payward的也提供了来源和使用示例。 kraken-api-client github存储库并且得到麻省理工学院

使用此库类通过PHP客户端调用Kraken REST API。它会自动确定API方法的正确URL路径,为每个请求生成一个nonce,并使用您的API密钥和生成的nonce添加一个带符号的标头。

 <?php 
/ **
* Kraken REST API的实用参考。
*
*更多信息请参阅https://www.kraken.com/help/api。
*
*
* MIT许可证(MIT)
*
*版权所有(c)2013 Payward,Inc 
*
*特此授予获得本软件及相关文档文件(“软件”)副本
*的任何人免费许可,无限制地在软件中交易
*,无限制包括权利
*使用,复制,修改,合并,出版,分发,再许可和/或出售
*本软件的副本,并允许向其提供软件的人员这样做,但须符合以下条件:
*
*以上版权声明和本许可声明应包含在本软件的所有副本或实质部分中。
*
*本软件按“原件”提供,不提供任何形式,包括明示或暗示的保证,包括但不限于以下保证:适销性,
*适用于特定用途和不侵权的适用性。在任何情况下,
*作者或版权所有者均不对任何索赔,损害或其他责任承担任何责任,无论是在合同,侵权行为还是其他方面,由本软件或其他方式或其他方式引起或与之相关在*软件中进行交易。* /

类 KrakenAPIException扩展ErrorException {};

类 KrakenAPI
{
protected $key; // API key
protected $secret; // API secret
protected $url; // API base URL
protected $version; // API version
protected $curl; // curl handle

/**
*KrakenAPI的构造函数
*
* @param string $key API key
* @param string $secret API secret
* @param string $url base URL for Kraken API
* @param string $version API version
* @param bool $sslverify enable/disable SSL peer verification. disable if using beta.api.kraken.com
*/
function __construct($ key,$ secret,$ url ='https://api.kraken.com',$ version ='0',$ sslverify = true)
{
$this->key = $key;
$this->secret = $secret;
$this->url = $url;
$this->version = $version;
$this->curl = curl_init();

curl_setopt_array($this->curl, array(
CURLOPT_SSL_VERIFYPEER => $sslverify,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_USERAGENT => 'Kraken PHP API Agent',
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true)
);
}

function __destruct()
{
curl_close($this->curl);
}

/**
*查询公共方法
*
* @param string $method method name
* @param array $request request parameters
* @return array request result on success
* @throws KrakenAPIException
*/
函数 QueryPublic($method, array $request = array())
{
////构建POST数据字符串
$postdata = http_build_query($request, '', '&');

//提出要求
curl_setopt($this->curl,CURLOPT_URL,$this->url. '/' . $this->version . '/public/' .
$method);
curl_setopt($this->curl, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($this->curl, CURLOPT_HTTPHEADER, array());
$result = curl_exec($this->curl);
if($result===false)
throw new KrakenAPIException('CURL error: ' . curl_error($this->curl));

//解码结果
$result = json_decode($result, true);
if(!is_array($result))
throw new KrakenAPIException('JSON decode error');

return $result;
}

/**
*查询私有方法
*
* @param string $path method path
* @param array $request request parameters
* @return array request result on success
* @throws KrakenAPIException
*/
函数 QueryPrivate($method, array $request = array())
{
if(!isset($request['nonce'])) {
// generate a 64 bit nonce using a timestamp at microsecond resolution
// string functions are used to avoid problems on 32 bit systems
$nonce = explode(' ', microtime());
$request['nonce'] = $nonce[1] . str_pad(substr($nonce[0], 2, 6), 6, '0');}
}

//构建POST数据字符串
$postdata = http_build_query($request, '', '&');

//设置API密钥并签署信息
$path = '/' . $this->version . '/private/' . $method;
$sign = hash_hmac('sha512', $path . hash('sha256', $request['nonce'] . $postdata, true), base64_decode($this->secret), true);
$headers = array(
'API-Key: ' . $this->key,
'API-Sign: ' . base64_encode($sign));
);

// 提出要求
curl_setopt($this->curl, CURLOPT_URL, $this->url . $path);
curl_setopt($this->curl, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($this->curl, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($this->curl);
if($result===false)
throw new KrakenAPIException('CURL error: ' . curl_error($this->curl));

//解码结果
$result = json_decode($result, true);
if(!is_array($result))
throw new KrakenAPIException('JSON decode error');

return $result;
}
} 
示例用法

以下是初始化KrakenAPI库类所涉及的步骤,以及一些示例API方法调用。格式化的结果集显示在每个相应的API调用代码段下方。

初始化

包含库文件,并在实例化KrakenAPI对象时提供API密钥和密码。

<?php

一旦_请求'KrakenAPI客户.php';
$ kraken = new KrakenAPI('你的API密钥','你的API秘密');
方法呼叫

查询活动资产及其属性的公开列表:

$res =$kraken-&gt;公开询问('资产');
的print_r($res);

返回的资产由其ISO-4217-A3-X名称键控,示例输出:

序列

[错误] =&gt;序列
(
(
)

[结果] =&gt;序列
(
[XXBT] =&gt;序列
(
[分类] =&gt;货币
[替换名称] =&gt;XBT
[小数] =&gt;10
[显示_小数] =&gt;5
)

[XLTC] =&gt;序列
(
[分类] =&gt;货币
[替换名称] =&gt;LTC
[小数] =&gt;10
[显示_小数] =&gt;5
)

[XXRP] =&gt;序列
(
[分类] =&gt;货币
[替换名称] =&gt;XRP
[小数] =&gt;8
[显示_小数] =&gt;5
)

[ZEUR] =&gt;序列
(
[分类] =&gt;货币
[替换名称] =&gt;EUR
[小数] =&gt;4
[显示_小数] =&gt;2
)
...
)

查询XBT/USD货币对的公开股票信息:

$res=$kraken-&gt;公开查询('工单',序列('对'=&gt;'XXBTZUSD'));
的print_r($res);

示例输出:

(
[错误] =&gt;序列
(
)

[结果] =&gt;序列
(
[XXBTZUSD] =&gt;序列
(
[a] =&gt;序列
(
[0] =&gt; 106.09583
[1] =&gt; 111
)

[b] =&gt;序列
(
[0] =&gt; 105.53966
[1] =&gt; 4
)

[c] =&gt;序列
(
[0] =&gt; 105.98984
[1] =&gt; 0.13910102
)

...
)
)

自2013-08-07T18:20:42 + 00:00起查询XBT/EUR货币对的公开近期交易:

注意:'since'参数将来可能会发生变化:它的精度可能会被修改,并且可能不再代表时间戳。最佳做法是将其基于结果集中返回的“最新”值。

$res=$kraken-&gt;公开查询('交易',序列('对'=&gt;'XXBTZEUR','since'=&gt;'137589964200000000'));
的print_r($res);

示例输出:

序列
(
[错误] =&gt;序列
(
)

[结果] =&gt;序列
(
[XXBTZEUR] =&gt;序列
(
[0] =&gt;序列
(
[0] =&gt; 78.60500
[1] =&gt; 2.03990000
[2] =&gt; 1375897934.1176
[3] =&gt; s
[4] =&gt; m
[5] =&gt;
)

[1] =&gt;序列
(
[0] =&gt; 79.41809
[1] =&gt; 2.02203000
[2] =&gt; 1375898123.0771
[3] =&gt; b
[4] =&gt; m
[5] =&gt;
)

[2] =&gt; 序列
(
[0] =&gt; 79.86999
[1] =&gt; 7.00000000
[2] =&gt; 1375898123.2587
[3] =&gt; b
[4] =&gt; m
[5] =&gt;
)
...
)
[last] =&gt; 137589925237491170
)
)

查询私人资产余额:

$res=$kraken-&gt;私人询问('余额');
print_r($res);

示例输出:

序列
(
[错误] =&gt;序列
(
)

[结果] =&gt;序列
(
[ZUSD] =&gt; 3415.8014
[ZEUR] =&gt; 155.5649
[XXBT] =&gt; 149.9688412800
[XXRP] =&gt; 499889.51600000
)

)

查询私人未结订单并包含相关交易:

$res =$kraken-&gt; 私人询问('未结订单',序列('交易'=&gt;真));
print_r($res);

示例输出:

序列
(
[错误] =&gt; 序列
(
)

[结果] =&gt; 序列
(
[开设] =&gt; 序列
(
[O7ICPO-F4CLJ-MVBLHC] =&gt;序列
(
[refid] =&gt;
[userref] =&gt;
[状态] =&gt; 开设
[开设tm] =&gt; 1373750306.9819
[开始tm] =&gt; 0
[到期tm] =&gt; 0
[descr] =&gt; 序列
(
[订单] =&gt;卖出3.00000000 XBTUSD@限价500.00000
)

[交易量] =&gt; 3.00000000
[执行_交易量] =&gt; 0.00000000
[费用] =&gt; 0.00000
[费用] =&gt; 0.00000
[价格] =&gt; 0.00000
[misc] =&gt;
[oflags] =&gt;
)
...
)
)
)

添加标准订单:卖出1.123 XBT/USD @限价$120

$res=$kraken-&gt; 私人询问('添加订单',序列(
'对'=&gt; 'XXBTZUSD',
'类型'=&gt; '卖',
'订单类型'=&gt; '限制',
'价格'=&gt; '120',
'交易量'=&gt; '1.123'
));
print_r($res);

示例输出:

序列
(
[错误] =&gt;序列
(
)

[结果] =&gt;序列
(
[描述] =&gt;序列
(
[订单] =&gt;卖出1.12300000 XBTUSD@限价120.00000
)

[txid] =&gt;序列
(
[0] =&gt; OAVY7T-MV5VK-KHDF5X
)

)

)

添加标准订单:2013-08-12T09:27:22 + 0000在市场上购买价值300欧元的XBT

$res=$kraken-&gt; 私人询问('添加订单',序列(
'对'=&gt; 'XXBTZEUR',
'类型'=&gt; '购买',
'订单类型'=&gt; '市场',
'oflags'=&gt; 'viqc',
'交易量'=&gt; '300',
'开始tm'=&gt; '1376299642'
));
print_r($res);

示例输出:

序列
(
[错误] =&gt;序列
(
)

[结果] =&gt;序列
(
[descr] =&gt;序列
(
[订单] =&gt;买入300.00000000 XBTEUR@市价
)

[txid] =&gt;序列
(
[0] =&gt; ONQN65-L2GNR-HWJLF5
)

)

)

添加标准订单:以2:1杠杆购买2.12345678 XBTUSD @限价$ 101.9901, 跟进止损,止盈卖单:止损-5%,止盈 + 10美元的价格上涨(使用#符号自动确定签署的止损/亏损价格):

$res=$kraken-&gt;私人询问('添加订单',序列(
'对'=&gt; 'XXBTZUSD',
'额理性'=&gt; '购买',
'订单类型'=&gt; '限价',
'价格'=&gt; '101.9901',
'交易量'=&gt; '2.12345678',
'杠杆'=&gt; '2:1',
'关闭'=&gt;序列(
'订单类型'=&gt; “止损追求利润”,
'价格'=&gt; '#5%',//止损价格(相对百分比增量)
'价格2'=&gt; '#10'//获利价格(相对差价)
)
));
print_r($res);

示例输出:

序列
(
[错误] =&gt;序列
(
)

[结果] =&gt;序列
(
[descr] =&gt;序列
(
[订单] =&gt;以2:1的比例购买2.12345678 XBTUSD @限价101.99010
[关闭] =&gt;收盘位置@止损-5.0000%,止盈+10.00000
)

[txid] =&gt;序列
)

)

)

私人用户出资

注意这是一个实验性的API,未来也许会有更新。请移步主站 API 来获取更多使用此API的详细信息

获取存款方式

URL: https://api.kraken.com/0/private/DepositMethods

输入

aclass = 资产类型(可填):货币(默认)资产: = 存入的资产

结果: 存款方式的关联数组:

方式 = 存入方式名称限额 = 可以被存入的净资产数额,填入否如果没有限额费用 = 需要被支付的费用账户启动费用 = 该存入方式是否有账户启动资金(可填)

获取存入地址

URL: https://api.kraken.com/0/private/DepositAddresses

输入

aclass = 资产类型(可填):货币(默认)资产: = 存入的资产方式 = 存入方式的名称新 = 是否需要生成一个新的地址 (可填, 默认 = 否)

结果:存入地址的关联数组

地址 = 存入地址过期时间 = Unix时间戳的过期时间, 如果未开始过期则显示为0新 = 一个地址是否被用过

获取近期存款记录

URL: https://api.kraken.com/0/private/DepositStatus

输入:

aclass = 资产类型(可填):货币(默认)资产 = 被存入的资产方式 = 资产存入的方式

结果:存款状态数组:

方式 = 使用的存款方式aclass = 资产类型资产 = 资产 X-ISO4217-A3 码refid = 参考号转账号 txid= 转账码info = 转账方式信息数额 = 存款数额费用 = 支付费用时间 = 请求发出时的unix 时间戳状态 = 存款状态status-prop = 额外的状态信息(如果存在)退款 = 由kraken发起的退款存款暂停 = 存款被暂停观察中
关于资产状态的更多信息,请参考 IFEX 金融转账状态.

获取取款信息

URL: https://api.kraken.com/0/private/WithdrawInfo

Input:

aclass = 资产类型(可填):货币(默认)资产 = 被提取的资产key = 您在账户上设定的提款密钥名称金额 = 取款金额

结果: 取款信息的关联数组

方法 = 将要使用的取款方式限额 = 当前可被立即支取的最大金额费用 = 需要被支付的费用

支取资产

URL: https://api.kraken.com/0/private/Withdraw

Input:

aclass = 资产类型(可填):货币(默认)资产 = 被支取的资产密钥 = 您在账户上设定的提款密钥名称金额 = 要支取的金额,包括手续费

结果:提款转账的关联数组:

refid = 参考号

获取近期取款信息

URL: https://api.kraken.com/0/private/WithdrawStatus

Input:

aclass = 资产类型(可填):货币(默认)资产 = 被取出的资产方式 = 取款方式名称 (可填

结果:取款状态信息的关联数组:

方式 = 被使用的取款方式名称aclass = 资产类型资产 = 资产 X-ISO4217-A3 码refid = 参考号txid = 转账号info = 转战信息金额 = 转账金额费用 = 支付的费用时间 = 请求发出时的unix 时间戳状态 = 取款状态status-prop = 额外的状态信息 (若存在)取消处理中 = 取消取款请求发出已取消 = 取款已取消取消驳回 = 取款取消请求被驳回退款 = 由 Kraken发起的退款; 无法被取消取款暂停 = 取款被暂停观察中
关于资产状态的更多信息,请参考 IFEX 金融转账状态.

取款请求取消

URL: https://api.kraken.com/0/private/WithdrawCancel

输入:

aclass = 资产类型 (可填)货币 (默认)资产 = 北区宽的资产refid = 取款参考号

结果: 成功

注意: 取消无法被保证 提出一个取消申请。取决于您的取款过程进行到哪个步骤,也许无法被取消。 排除