KrakenAPI接口文档:功能、请求方式与响应格式解析

频道: 词典 日期: 浏览:107

Kraken API 接口文档

Kraken 是一家著名的加密货币交易所,提供各种功能,包括交易、账户管理以及市场数据查询等。为了方便开发者与系统的集成,Kraken 提供了丰富的 API 接口文档,用户可以通过这些 API 进行自动化操作与数据交互。本文将详细介绍 Kraken API 的使用,包括常用接口的功能、请求方式及其响应格式。

Kraken API 基础概述

Kraken API 主要分为两大类:公共 API私人 API。公共 API 是无需身份验证即可访问的接口,旨在为开发者和用户提供实时的市场数据、交易对信息、价格历史、市场深度等。这些功能帮助用户获取市场行情、分析交易趋势、监控加密货币的动态,并且可以用于构建数据分析和交易策略。公共 API 的典型使用场景包括数据获取、图表绘制、交易对查询等。所有这些接口都可以在不暴露用户个人身份的情况下使用,适用于对加密货币市场进行数据分析的外部应用和网站。

与公共 API 相对的是 私人 API,这种 API 需要通过 API 密钥进行身份验证,才能访问与账户相关的敏感信息及执行特定操作。私人 API 提供更为高级的功能,包括查询账户余额、获取历史订单记录、管理挂单、提交新的市场或限价订单、执行资产转账等。通过私人 API,用户可以实现自动化交易、账户监控、风险管理等操作,极大提高了交易的灵活性和效率。每个私人 API 密钥通常与特定账户绑定,确保只有授权的用户能够进行敏感操作。

公共 API 接口

公共 API 接口不需要 API 密钥即可使用,主要包括以下几个部分:

1. Ticker 数据

获取指定交易对的最新市场数据(如当前价格、成交量等)。常用的 API 路径为:

GET /0/public/Ticker?pair=<交易对>

请求示例

GET /0/public/Ticker?pair=XBTUSD

返回示例

{ "error": [], "result": { "XXBTZUSD": { "a": ["46380.10000", "1", "1.000"], "b": ["46379.80000", "1", "1.000"], "c": ["46379.80000", "0.02730000"], "v": ["178.63155844", "912.83061985"], "p": ["46418.29700", "46397.70959"], "t": [2372, 11774], "l": ["46138.20000", "46010.50000"], "h": ["46999.90000", "46991.90000"], "o": "46375.20000" } } }

字段说明: - a:卖盘(Ask)的价格、数量、数量单位 - b:买盘(Bid)的价格、数量、数量单位 - c:最后成交价格、成交量 - v:成交量(24小时内) - p:加权平均价格(24小时内) - t:成交笔数(24小时内) - l:最低价(24小时内) - h:最高价(24小时内) - o:开盘价(24小时内)

2. OHLC 数据

获取指定交易对的历史K线数据,常用于图表分析和交易策略的制定。

GET /0/public/OHLC?pair=<交易对>&interval=<时间间隔>

请求示例

GET /0/public/OHLC?pair=XBTUSD&interval=1440

返回示例

{ "error": [], "result": { "XXBTZUSD": [ [1585008000, "46516.20000", "46639.80000", "46177.40000", "46352.40000", "411.94612855", 1585094399], [1585094400, "46352.20000", "46395.30000", "45956.70000", "46222.10000", "321.10335458", 1585180799], ... ] } }

字段说明: - 每一项数据为一个时间段的K线信息,包括时间戳、开盘价、最高价、最低价、收盘价、成交量等。

3. 交易对信息

查询指定交易对的相关信息,包括当前支持的交易对列表及其属性。

GET /0/public/AssetPairs

返回示例

{ "error": [], "result": { "XBTUSD": { "altname": "XBTUSD", "aclass_base": "currency", "aclass_quote": "currency", "base": "XBT", "quote": "USD", "lot": "unit", "pair_decimals": 2, "lot_decimals": 8, "lot_multiplier": 1, "leverage_buy": [2, 3, 4, 5], "leverage_sell": [2, 3, 4, 5], "fees": [ [0, 0.0026], [500000, 0.0024], ... ] }, ... } }

字段说明: - altname:交易对名称 - aclass_base:基础货币类型 - aclass_quote:计价货币类型 - base:基础货币符号 - quote:计价货币符号 - lot:最小交易量单位 - pair_decimals:交易对价格小数位数 - leverage_buy:购买杠杆倍数 - leverage_sell:卖出杠杆倍数 - fees:交易费用阶梯

私人 API 接口

私人 API 接口是加密货币平台提供的一种重要功能,允许用户通过身份验证和 API 密钥来访问其账户的详细数据并执行各种操作。这些操作包括但不限于获取账户余额、查询交易历史、管理订单、执行市场交易等。为了保证操作的安全性和数据的隐私性,平台要求用户生成并使用唯一的 API 密钥。该密钥是访问和操作账户数据的关键,且通常具有权限控制机制,允许用户设定不同级别的访问权限,例如读取权限、写入权限以及交易权限等。

私人 API 接口通常通过 HTTPS 协议进行加密通信,确保传输中的数据不会被第三方窃取或篡改。除了基础的 API 密钥验证外,一些平台还可能要求额外的身份验证措施,如两步验证(2FA),以进一步增强账户的安全性。不同平台的 API 接口有不同的访问限制和调用频率限制,以防止滥用和确保系统的稳定运行。用户需要根据平台的文档来正确使用 API,避免不必要的错误或违反服务条款。

在使用私人 API 接口时,用户可以灵活地集成第三方应用或自定义脚本,实现自动化交易、数据分析或风险管理等功能。API 密钥的生成和管理需要谨慎,尤其是避免将密钥泄露给不受信任的方,或者将密钥嵌入到公开的代码库中。定期更新 API 密钥和审查密钥的权限配置是保护账户安全的重要步骤。

1. 账户余额查询

通过此接口可以获取用户在 Kraken 账户中的各个资产余额。

POST /0/private/Balance

请求示例: bash POST /0/private/Balance Headers: Key: Sign:

返回示例

{ "error": [], "result": { "XBT": "0.0015", "ETH": "0.5000", "USD": "1000.00", ... } }

字段说明: - 返回的字段为用户在不同资产类别中的余额。

2. 创建订单

此接口用于在 Kraken 上创建一个新的交易订单。

POST /0/private/AddOrder

请求示例: bash POST /0/private/AddOrder Headers: Key: Sign: Body: { "pair": "XBTUSD", "type": "buy", "ordertype": "limit", "price": "47000", "volume": "0.1" }

返回示例

{ "error": [], "result": { "descr": "Buy 0.10000000 XBTUSD @ 47000", "txid": "1234567890" } }

字段说明: - pair:交易对 - type:订单类型(buy 或 sell) - ordertype:订单类型(如 limit、market 等) - price:订单价格 - volume:订单数量 - txid:交易ID

3. 查询订单

查询用户的订单状态。

POST /0/private/QueryOrders

请求示例: bash POST /0/private/QueryOrders Headers: Key: Sign: Body: { "txid": "1234567890" }

返回示例

{ "error": [], "result": { "1234567890": { "status": "open", "pair": "XBTUSD", "type": "buy", "ordertype": "limit", "price": "47000", "volume": "0.1", ... } } }

字段说明: - status:订单状态(如 open、closed) - pair:交易对 - type:订单类型 - price:订单价格 - volume:订单数量

错误处理

Kraken API 的每个请求都会返回一个 error 字段,用于指示请求是否成功。error 字段为空表示请求成功,非空则表示请求失败,并且会返回相关错误信息。对于每个错误,API 会返回一个描述性错误代码以及详细的错误信息,以帮助开发者排查问题并采取适当的措施。常见的错误信息包括:

  • Invalid API key:API 密钥无效。此错误通常发生在提供的 API 密钥无效、已过期或与当前账户不匹配时。开发者需要确保传递正确的 API 密钥,并检查该密钥是否仍然有效。
  • Insufficient funds:账户余额不足。此错误通常出现在尝试执行交易或提现时,账户余额不足以满足操作所需的资金。用户需要确保账户中有足够的余额,或者重新检查所提交的交易金额。
  • Order not found:订单未找到。此错误指示在指定的账户中无法找到相应的订单,可能是由于订单 ID 错误或订单已经取消。用户可以检查订单 ID 是否正确,或者确认订单是否已经完成或被取消。
  • Rate limit exceeded:超出请求速率限制。Kraken API 对请求频率有限制,如果在短时间内发送了过多请求,可能会触发此错误。开发者应根据 Kraken 提供的文档调整请求频率,避免频繁请求导致错误。
  • Invalid order type:无效的订单类型。此错误通常发生在订单提交时,所选的订单类型(如市价单、限价单等)不被支持或不符合要求。确保使用正确的订单类型,并查阅 Kraken API 文档以获取支持的类型。
  • API permissions:API 权限不足。若 API 密钥没有正确配置所需的权限,用户可能会遇到此错误。用户需要在 Kraken 帐号的 API 设置中确认是否启用了相关的权限,如交易、提现等。
  • Technical error:技术性错误。此错误通常由系统内部问题引起,可能与 Kraken 服务器、网络连接问题或其他未知因素有关。在出现此类错误时,用户可以尝试稍后重新提交请求,或联系 Kraken 客服了解更多信息。

对于遇到的任何错误,Kraken API 会尽量提供清晰的错误信息,包括错误代码和可能的解决方案。开发者可以通过查询 Kraken API 文档或与 Kraken 支持团队联系,进一步解决遇到的问题。

安全性与身份验证

Kraken API 采用了基于密钥和签名的身份验证机制,旨在为用户提供高水平的安全保护。用户在 Kraken 账户设置中生成 API 密钥后,可以通过该密钥访问私人 API 接口。API 密钥由一对公钥和私钥组成,公钥用于识别用户身份,而私钥则用于生成加密签名,确保请求的合法性与完整性。在每次向 Kraken 服务器发起请求时,用户需要通过其私钥生成一个唯一的签名,签名基于请求的内容和当前时间戳。该签名会附带在请求中,服务器会对其进行验证,以确保请求未被篡改,并确认请求确实是由授权的用户发起的。

为了增强安全性,Kraken API 还采用了额外的安全措施。例如,用户可以设置 IP 白名单,确保只有特定的 IP 地址可以访问 API,防止恶意攻击者通过盗取密钥来发起请求。Kraken 强烈建议用户定期更换 API 密钥,并启用 API 密钥的访问权限限制,仅授予必需的权限,以减少潜在的风险。

Kraken 还为用户提供了与 API 交互时的限额控制功能。通过设置请求频率限制,用户可以有效防止滥用行为,确保 API 请求的稳定性和安全性。通过这种方式,Kraken 能够有效地保护其系统免受暴力破解和其他安全威胁。

总体而言,Kraken API 的身份验证和安全机制为用户提供了强有力的保护手段,确保用户的敏感数据和交易安全无虞。