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:
返回示例:
{ "error": [], "result": { "XBT": "0.0015", "ETH": "0.5000", "USD": "1000.00", ... } }
字段说明: - 返回的字段为用户在不同资产类别中的余额。
2. 创建订单
此接口用于在 Kraken 上创建一个新的交易订单。
POST /0/private/AddOrder
请求示例:
bash
POST /0/private/AddOrder
Headers:
Key:
返回示例:
{ "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:
返回示例:
{ "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 的身份验证和安全机制为用户提供了强有力的保护手段,确保用户的敏感数据和交易安全无虞。