Upbit API 使用指南:如何高效获取交易数据?新手必看!

日期: 栏目:文档 浏览:95

Upbit API 文档语言

概述

Upbit API 提供了全面且强大的接口,允许开发者访问 Upbit 数字资产交易平台的各类数据,并执行交易操作。通过该 API,您可以实时获取市场行情数据,包括但不限于交易对的最新成交价、成交量、深度信息等,从而为量化交易策略提供数据支持。API 还提供对订单信息的查询和管理功能,方便开发者追踪订单状态,进行订单取消等操作。对于用户账户信息,API 提供了余额查询、交易记录查询等功能,帮助开发者了解账户资金情况。更重要的是,Upbit API 支持直接进行交易操作,包括下单、取消订单等,使得开发者能够构建自动化的交易系统。

Upbit API 的设计理念围绕着易用性、可靠性和安全性展开。在易用性方面,API 采用 RESTful 架构风格,使用标准的 HTTP 请求方法,并提供清晰的 JSON 格式数据响应,降低了开发者的学习成本。在可靠性方面,Upbit 采用了多层架构和容错机制,保证 API 的稳定运行,并提供详细的错误码和异常处理机制,帮助开发者快速定位和解决问题。在安全性方面,Upbit API 采用了严格的身份验证和授权机制,包括 API 密钥和签名验证,确保用户数据的安全和交易的可靠性。同时,Upbit 鼓励开发者遵循安全最佳实践,例如限制 API 密钥的访问权限,定期更换 API 密钥等。

本文档旨在全面阐述 Upbit API 的设计理念、底层数据结构、详细的请求方式(包括请求参数、请求头、请求体等)、各种交易类型(市价单、限价单等)的使用方法,以及常见问题的解决方法。我们将深入探讨 API 的各种功能,并提供实际的代码示例,以帮助开发者更好地理解和使用 Upbit API。通过阅读本文档,开发者可以快速上手 Upbit API,构建自己的交易应用,并充分利用 Upbit 平台的优势。

认证

为保障用户账户安全及API接口的合规使用,Upbit API采取严格的身份验证机制。开发者必须拥有有效的Upbit账户,并通过Upbit官方网站的API管理页面创建专属的API密钥(access key)和安全密钥(secret key)。这些密钥是访问Upbit API资源的关键凭证。

所有对Upbit API的请求都需要携带认证信息,认证信息通过标准HTTP头部传递,而非请求体或URL参数。以下是具体需要添加的头部信息及其详细说明:

  • Authorization : 此头部承载API请求的认证信息,采用行业标准的JSON Web Token (JWT) 格式。JWT是一种紧凑、自包含的方式,用于安全地传输信息。JWT的结构包括头部(Header)、载荷(Payload)和签名(Signature)。

JWT的具体构建要求如下:

  • Payload(载荷) : JWT的payload部分必须包含以下两个核心字段:
    • access_key : 您的Upbit账户API密钥,用于标识您的身份。
    • nonce : 一个随机字符串,用于防止重放攻击。每次API请求都应生成一个不同的nonce值。Nonce应具有足够的随机性,以保证安全性。可以使用UUID或其他随机数生成方法。
  • Signature(签名) : JWT的签名至关重要,它保证了JWT的完整性和真实性。签名使用您生成的 secret_key 对JWT的头部和载荷进行加密签名。Upbit API推荐使用HMAC SHA256 (HS256) 算法进行签名。 secret_key 务必妥善保管,切勿泄露。

正确构建并签名的JWT字符串需放置在 Authorization 头部中,并添加 Bearer 前缀。例如: Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJaccess_keyIjoieWF1ci1hY2Nlc3Mta2V5Iiwibm9uY2UiOiJkNzM1MjkyYS0wZDU5LTQyMGQtYjQxOC00N2M4YTMwNzQ2MDcifQ.signture

未提供有效身份验证信息或身份验证信息不正确的API请求将被拒绝,并返回相应的错误代码。

JWT 生成示例 (Python):

本示例展示了如何使用 Python 的 jwt 库生成 JSON Web Token (JWT)。 JWT 是一种开放标准 (RFC 7519),用于在各方之间安全地传输 JSON 对象。 它通常用于身份验证和授权。

需要安装 jwt 库。可以使用 pip 进行安装: pip install pyjwt 。 你可能还需要安装 uuid 库用于生成唯一标识符: pip install uuid

import jwt
import uuid
import hashlib

代码首先导入必要的库: jwt 用于 JWT 的编码和解码, uuid 用于生成唯一 ID, hashlib (虽然在示例中未使用,但通常用于密码哈希和其他安全操作,在实际应用中可能会用到)。

access_key = "YOUR_ACCESS_KEY"
secret_key = "YOUR_SECRET_KEY"

接下来,定义 access_key secret_key 重要提示:在实际应用中,请勿将密钥硬编码到代码中。 应该从环境变量、配置文件或密钥管理系统中安全地获取它们。 access_key 通常用于标识用户或应用程序,而 secret_key 用于对 JWT 进行签名,以防止篡改。

payload = {
    'access_key': access_key,
    'nonce': str(uuid.uuid4())
}

创建一个包含声明(claims)的 payload。 access_key 作为声明之一包含在内。 nonce (number used once) 是一个随机生成的唯一字符串,用于防止重放攻击。 使用 uuid.uuid4() 生成一个 UUID,并将其转换为字符串。 其他常见的 JWT 声明包括 iss (issuer)、 sub (subject)、 aud (audience)、 exp (expiration time)、 iat (issued at time) 和 jti (JWT ID)。

jwt_token = jwt.encode(payload, secret_key, algorithm='HS256')
authorization_token = 'Bearer {}'.format(jwt_token)

使用 jwt.encode() 函数将 payload 编码为 JWT。 第一个参数是 payload,第二个参数是 secret_key ,第三个参数是签名算法。 这里使用 HS256 (HMAC with SHA-256) 算法。 其他常见的算法包括 RS256 (RSA with SHA-256) 和 ES256 (ECDSA with SHA-256)。 jwt.encode() 返回一个编码后的 JWT 字符串。

然后,创建一个 Authorization 头部的值,它将 JWT 包含在 "Bearer" 方案中。 这是在 HTTP 请求中传递 JWT 的标准方法。

print(authorization_token)

Authorization token 打印到控制台。 在实际应用中,此 token 将被包含在 HTTP 请求的 Authorization 头部中,以向服务器进行身份验证。

Nonce 的重要性: 每次 API 请求都必须生成一个新的 nonce。重复使用 nonce 将导致请求被拒绝。 强烈建议使用 UUID 等方法生成唯一的 nonce

请求方式

Upbit API 采用 RESTful 架构风格,旨在提供简洁、一致和易于理解的接口。所有与 Upbit 服务器之间的 API 请求都必须通过安全的 HTTPS 协议进行传输,以确保数据的机密性和完整性,防止中间人攻击。

  • 请求方法: Upbit API 支持多种标准的 HTTP 方法,包括但不限于 GET (用于检索数据), POST (用于创建或修改数据), 和 DELETE (用于删除数据)。选择正确的 HTTP 方法对于确保 API 的语义正确至关重要。
  • 请求头: 每一个 API 请求都**必须**包含 Authorization 头部,该头部用于对请求进行身份验证和授权。通常,该头部会包含一个基于 API 密钥生成的 JWT (JSON Web Token),用于验证请求者的身份和权限。强烈建议添加 Content-Type 头部,用于明确指定请求体的数据类型。常用的 Content-Type 值包括 application/ ,用于告知服务器请求体的内容为 JSON 格式。
  • 请求体: 对于需要发送数据的 POST DELETE 请求,通常需要携带请求体 (request body),用于传递请求参数。请求体的数据类型通常为 JSON 格式,这是一种轻量级的数据交换格式,易于解析和生成。请求体应该包含服务器端执行操作所需的所有必要信息。
  • 响应: 来自 Upbit API 的响应通常采用 JSON 格式进行编码。每个响应都包含一个 HTTP 状态码,用于指示请求的成功或失败 (例如,200 表示成功,400 表示客户端错误,500 表示服务器错误)。响应体则包含 API 请求返回的实际数据,例如交易信息、账户余额等。开发者应根据 HTTP 状态码和响应体的内容来判断 API 请求的结果并采取相应的处理措施。

数据格式

Upbit API 采用 JavaScript 对象简谱 (JSON) 作为其标准且唯一的数据交换格式。这意味着所有向 Upbit API 发出的请求,以及 API 返回的所有响应数据,都必须且仅能以 JSON 格式进行编码和解码。JSON 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,使其成为网络 API 通信的理想选择。

JSON 数据结构基于键值对(key-value pairs),其中键 (key) 必须是字符串,值 (value) 可以是字符串、数字、布尔值、数组、或其他 JSON 对象。这种结构化的数据表示方式使得开发者能够以清晰和高效的方式处理来自 Upbit API 的市场数据、订单信息和账户详情。

在使用 Upbit API 时,务必确保您的应用程序能够正确地序列化数据为 JSON 格式发送给 API,并能够正确地反序列化从 API 收到的 JSON 格式数据。不符合 JSON 格式的请求可能会导致 API 返回错误,影响您的交易和数据获取。

JSON 示例 (市场行情):

以下 JSON 示例展示了加密货币市场行情数据的常见结构,特别是针对韩国交易所 (KRW) 的比特币 (BTC) 交易对。

[ { "market": "KRW-BTC", "trade_date": "20231027", "trade_time": "103000", "trade_date_kst": "20231027", "trade_time_kst": "193000", "trade_timestamp": 1698422400000, "opening_price": 38000000.0, "high_price": 38500000.0, "low_price": 37800000.0, "trade_price": 38200000.0, "prev_closing_price": 37900000.0, "change": "RISE", "change_price": 300000.0, "change_rate": 0.0079155673, "signed_change_price": 300000.0, "signed_change_rate": 0.0079155673, "trade_volume": 1.23456789, "acc_trade_price": 47000000000.0, "acc_trade_price_24h": 94000000000.0, "acc_trade_volume": 1234.56789, "acc_trade_volume_24h": 2469.13578, "highest_52_week_price": 60000000.0, "highest_52_week_date": "2023-01-01", "lowest_52_week_price": 20000000.0, "lowest_52_week_date": "2022-07-01", "timestamp": 1698422400000 } ]

字段解释:

  • market: 市场标识符,此处为 "KRW-BTC",表示韩元计价的比特币市场。
  • trade_date: 交易日期 (UTC 时间)。格式为 YYYYMMDD。
  • trade_time: 交易时间 (UTC 时间)。格式为 HHMMSS。
  • trade_date_kst: 交易日期 (韩国标准时间,KST)。
  • trade_time_kst: 交易时间 (KST)。
  • trade_timestamp: 交易时间戳 (Unix 时间戳,毫秒)。表示自1970年1月1日00:00:00 UTC以来的毫秒数。
  • opening_price: 开盘价。
  • high_price: 最高价。
  • low_price: 最低价。
  • trade_price: 最新成交价。
  • prev_closing_price: 前一日收盘价。
  • change: 价格变动状态。例如 "RISE" (上涨), "FALL" (下跌), "EVEN" (不变)。
  • change_price: 价格变动金额。
  • change_rate: 价格变动百分比。
  • signed_change_price: 带符号的价格变动金额 (正号表示上涨,负号表示下跌)。
  • signed_change_rate: 带符号的价格变动百分比。
  • trade_volume: 最新成交量。
  • acc_trade_price: 累计成交额。
  • acc_trade_price_24h: 24 小时累计成交额。
  • acc_trade_volume: 累计成交量。
  • acc_trade_volume_24h: 24 小时累计成交量。
  • highest_52_week_price: 52 周最高价。
  • highest_52_week_date: 52 周最高价对应的日期。
  • lowest_52_week_price: 52 周最低价。
  • lowest_52_week_date: 52 周最低价对应的日期。
  • timestamp: 数据生成时间戳 (Unix 时间戳,毫秒)。

此数据结构是加密货币交易所和数据提供商常用的标准格式,用于提供实时的市场行情信息,方便开发者和交易者进行数据分析和交易决策。

错误处理

当与 Upbit API 交互时,客户端应用程序应妥善处理可能出现的各种错误。当 API 请求未能成功执行时,Upbit API 会返回一个包含详细错误信息的 JSON 响应。通过分析这些错误信息,开发者可以诊断问题并采取适当的措施。

标准的 Upbit API 错误响应结构包含以下关键字段,它们嵌套在一个 JSON 对象中:

  • error : 这是一个JSON对象,包含了关于错误的具体信息。它本身包含以下两个字段:
    • message : 错误的详细描述,以人类可读的语言呈现。这个字段通常会提供问题的具体上下文,例如“无效的 API 密钥”或“请求参数缺失”。开发者可以利用此消息来诊断客户端应用程序中的问题。
    • name : 错误的类型标识符。这是一个字符串,表示错误的预定义类型。常见的错误类型包括“Invalid Access Key”、“Insufficient Funds”或“Rate Limit Exceeded”等。应用程序可以根据错误类型进行自动化处理。

例如,一个典型的错误响应可能如下所示:


{
  "error": {
    "message": "无效的访问密钥",
    "name": "Invalid Access Key"
  }
}

客户端应用程序应当具备解析和处理这些错误响应的能力,以便向用户提供有用的反馈,并根据错误类型采取适当的重试或回退策略。例如,遇到“Rate Limit Exceeded”错误时,应用程序应该暂停一段时间后重试请求;遇到“Invalid Access Key”错误时,应该提示用户检查其 API 密钥是否正确。

错误示例:

当与加密货币交易所或服务进行 API 交互时,可能会遇到以下错误响应示例:

{
  "error": {
      "message": "Invalid Access Key",
    "name": "invalid_access_key"
  }
}

此错误表明提供的访问密钥无效。为了确保安全性和防止未经授权的访问,API 密钥必须有效且与您的账户关联。

常见的错误类型包括:

  • invalid_access_key : 无效的 API 密钥。这通常意味着提供的 API 密钥不正确、已过期或已被撤销。请仔细检查您的 API 密钥是否正确,并确保其处于活动状态。检查密钥是否包含空格或其他不可见字符。
  • jwt_verification_error : JWT (JSON Web Token) 验证失败。这表明提供的 JWT 无效或已过期。JWT 通常用于身份验证和授权。确保 JWT 根据 API 文档正确生成,并且未被篡改。检查服务端时间是否与客户端同步。
  • nonce_used : nonce (一次性随机数) 已被使用。 nonce 用于防止重放攻击。确保每次 API 请求都使用唯一的 nonce 值。 nonce 通常是一个递增的数字或者时间戳。
  • insufficient_funds : 账户余额不足。在尝试进行交易或操作时,您的账户可能没有足够的资金。检查您的账户余额,并确保有足够的资金来完成请求的操作。交易手续费也应考虑在内。
  • order_not_found : 找不到订单。这意味着您尝试访问或修改的订单不存在。检查订单 ID 是否正确,并确保订单确实存在。订单ID大小写是否正确也需要检查。
  • too_many_requests : 请求频率过高。您在短时间内发送了过多的请求,超过了 API 的速率限制。请降低请求频率,并遵守 API 的速率限制。可以实现指数退避策略来处理此类错误。
  • signature_mismatch : 请求签名不匹配。请求的签名未能通过验证,表明请求可能被篡改。请检查签名算法和密钥是否正确,并确保请求参数未被更改。
  • invalid_parameter : 请求参数无效。一个或多个请求参数不符合 API 的要求。请检查参数类型、格式和范围是否正确。
  • authentication_required : 需要身份验证。在访问受保护的资源或执行需要身份验证的操作时,您需要提供有效的身份验证凭据。
  • service_unavailable : 服务不可用。API 服务暂时不可用。您可以稍后重试该请求。

开发者应该根据错误信息,采取相应的措施进行处理。这可能包括验证 API 密钥、检查账户余额、调整请求频率或更正请求参数。详细的错误日志记录有助于调试和解决问题。始终参考 API 文档以获取有关错误代码和解决方法的具体信息。

API 速率限制

为保障 Upbit 平台的稳定性和所有用户的服务质量,Upbit API 实施了严格的速率限制机制。速率限制旨在防止恶意请求、过度使用以及其他可能对服务器性能造成不利影响的行为,确保所有开发者和用户都能公平地访问API资源。该机制通过限制单位时间内特定API端点的请求次数来实现。

速率限制的具体数值取决于多个因素,包括但不限于:所请求的API端点、用户的认证级别(例如,是否已进行KYC验证、VIP等级等)、以及用户使用的API密钥的类型。一般来说,不同的API端点具有不同的速率限制,交易相关的端点通常会比行情查询端点具有更严格的限制。已通过身份验证的用户通常会比未认证的用户享有更高的速率限制。

当API请求超过设定的速率限制时,Upbit API服务器将返回一个HTTP 429 Too Many Requests 错误响应。该错误表明客户端在给定的时间内发送了过多的请求。错误响应通常包含信息,例如重试所需的时间(以秒为单位),允许开发者在稍后重试请求。

开发者在使用Upbit API时,务必仔细阅读并理解相关的速率限制文档。合理的API请求频率控制是高效开发的关键。一种有效的策略是实现重试机制,当收到 429 错误时,程序会暂停一段时间(根据响应头中的提示或其他算法计算得出),然后再重新发送请求。另外,开发者应根据实际需求优化请求策略,例如,批量获取数据以减少请求次数,或者缓存已获取的数据,避免重复请求。Upbit 可能会在响应头中提供关于剩余请求次数、重置时间等速率限制的具体信息,开发者可以利用这些信息动态调整请求频率,从而避免触发速率限制。

WebSockets

除了传统的 REST API 接口,Upbit 还提供强大的 WebSockets 接口,专门用于实时订阅市场行情数据和订单簿的更新信息。 相较于 REST API 需要轮询请求的方式,WebSockets 提供了显著更低的延迟和更高的传输效率,特别适用于对数据实时性有极高要求的应用程序,例如高频交易机器人、实时行情监控平台以及需要快速响应市场变化的交易策略。

为了保障数据安全和用户账户的安全,WebSockets 连接需要进行身份验证。 开发者需要在建立连接时发送包含有效的 API 密钥和 nonce (一次性随机数) 的 JSON Web Token (JWT) 认证信息。 nonce 的引入是为了防止重放攻击,确保每次连接请求的唯一性和安全性。 正确配置 JWT 认证信息对于成功连接 Upbit 的 WebSockets 服务至关重要,开发者需要仔细阅读 Upbit 官方文档,了解关于 API 密钥的获取、JWT 签名以及 nonce 生成的详细步骤和最佳实践。

WebSocket 连接示例:

以下代码展示了如何使用 Python 的 websocket 库连接到 WebSocket 服务器,并进行身份验证和数据订阅。该示例使用了 JWT(JSON Web Token)进行身份验证,并订阅了 Upbit 交易所的 BTC/KRW 交易对的 ticker 数据。

需要安装必要的 Python 库:

pip install websocket-client pyjwt

接下来,导入所需的模块:

import websocket
import 
import uuid
import jwt

设置 API 访问密钥和密钥。请务必替换 YOUR_ACCESS_KEY YOUR_SECRET_KEY 为您自己的 Upbit API 密钥:

access_key = "YOUR_ACCESS_KEY"
secret_key = "YOUR_SECRET_KEY"

构建 JWT payload,其中包括 access_key 和一个唯一的 nonce (number used once):

payload = {
    'access_key': access_key,
    'nonce': str(uuid.uuid4())
}

使用 jwt.encode 方法生成 JWT token。 指定使用 HS256 算法进行签名:

jwt_token = jwt.encode(payload, secret_key, algorithm='HS256')
authorization_token = 'Bearer {}'.format(jwt_token)

定义 WebSocket 回调函数,用于处理接收到的消息、错误和连接关闭事件:

def on_message(ws, message):
    print(message)

def on_error(ws, error):
    print(error)

def on_close(ws):
    print("### closed ###")

定义 on_open 函数,在 WebSocket 连接建立后调用。 该函数构造一个订阅消息,并将其发送到服务器。 消息中包含一个唯一的 ticket 、订阅的 type (这里是 'ticker')和要订阅的 codes (这里是 'KRW-BTC',表示韩元-比特币交易对):

def on_open(ws):
    subscribe_message = [
        {'ticket': str(uuid.uuid4()), 'type': 'ticker', 'codes': ['KRW-BTC']},
    ]
    ws.send(.dumps(subscribe_message))

主程序入口:

if __name__ == "__main__":
    websocket.enableTrace(True) # 启用 WebSocket 跟踪,用于调试
    ws = websocket.WebSocketApp(
        "wss://api.upbit.com/websocket/v1",  # Upbit WebSocket API 地址
        on_message=on_message,
        on_error=on_error,
        on_close=on_close,
        header={'Authorization': authorization_token}  # 设置授权头部
    )
    ws.on_open = on_open  # 关联 on_open 回调函数
    ws.run_forever()  # 运行 WebSocket 客户端,保持连接

注意:

  • 请务必保管好您的 API 密钥,不要泄露给他人。
  • Upbit API 可能会有速率限制,请参考官方文档进行调整。
  • 这段代码只是一个基本的示例,您可以根据自己的需求进行修改和扩展。

API 端点概览

以下是一些常用的 Upbit API 端点,涵盖市场数据、账户管理和订单交易等核心功能:

  • 市场数据:
    • GET /market/all : 获取 Upbit 交易所支持的所有交易市场代码。返回市场代码、市场名称和是否支持交易等详细信息。
    • GET /ticker : 获取指定市场的实时行情信息。包括最新成交价、最高价、最低价、交易量、涨跌幅等关键指标。
    • GET /trades/ticks : 获取指定市场最近发生的成交记录。返回成交时间、成交价格、成交数量、买卖方向等交易详情。
    • GET /candles/minutes/{unit} : 获取指定市场的分K线数据。 {unit} 参数指定K线的时间周期,例如1、5、15、30、60分钟。返回K线开盘价、收盘价、最高价、最低价、成交量等数据。
    • GET /candles/days : 获取指定市场的日K线数据。返回每日的开盘价、收盘价、最高价、最低价、成交量等数据。
    • GET /candles/weeks : 获取指定市场的周K线数据。返回每周的开盘价、收盘价、最高价、最低价、成交量等数据。
    • GET /candles/months : 获取指定市场的月K线数据。返回每月的开盘价、收盘价、最高价、最低价、成交量等数据。
  • 账户管理:
    • GET /accounts : 获取当前用户的账户信息。包括账户持有的币种、可用余额、冻结余额、平均买入价格等信息。需要API Key和Secret Key进行身份验证。
  • 订单交易:
    • POST /orders : 提交新的买入或卖出订单。需要指定市场代码、订单类型(市价单或限价单)、订单方向(买入或卖出)、下单数量和价格(限价单需要)。
    • GET /orders/chance : 获取指定市场下单的可能性。返回账户在该市场可以下单的最大数量、最小下单数量、手续费率等信息,帮助用户评估下单的可行性。
    • GET /order : 根据订单ID查询特定订单的详细信息。返回订单状态、订单类型、下单时间、成交数量、未成交数量等信息。
    • DELETE /order : 根据订单ID取消尚未完全成交的订单。
    • GET /orders : 获取当前用户的所有订单列表。可以根据订单状态、市场代码、下单时间等条件进行筛选和排序。

版本控制

Upbit API 致力于提供稳定且功能强大的交易接口,因此会不断进行更新和改进,以适应快速发展的加密货币市场和用户需求。为了最大限度地保证应用程序的兼容性,减少因API变更导致的服务中断,Upbit 采用了版本控制策略。 开发者在集成 Upbit API 时,应始终关注并使用最新的 API 版本,以便获取最新的功能特性和性能优化,同时避免因使用过时版本而可能产生的兼容性问题。

目前,Upbit API 的最新版本为 v1 。这意味着所有新的功能、改进和安全更新都将在此版本上发布。为了清晰地标识 API 版本,所有 API 请求路径通常会包含版本号信息。 例如,获取市场交易信息的API路径可能为 /api/v1/ticker 。通过明确的版本号,开发者可以准确地指定所使用的API版本,确保应用程序的稳定性和可靠性。

注意事项

  • API 密钥安全: 请务必妥善保管您的 API 密钥(API Key)和安全密钥(Secret Key),切勿将其泄露给任何第三方。密钥泄露可能导致您的账户被盗用或滥用,造成资金损失。建议定期更换密钥,并启用双重身份验证等安全措施。
  • API 文档研读: 在使用 Upbit API 之前,请务必仔细阅读官方 API 文档。了解每个 API 端点的具体参数、数据类型、请求方法以及返回值格式。这将帮助您正确地构建 API 请求,并有效地解析 API 响应。
  • Upbit 使用条款遵从: 请严格遵守 Upbit 官方的 API 使用条款。这些条款规定了 API 的使用规范、限制以及责任义务。违反使用条款可能导致您的 API 访问权限被限制或终止。
  • API 频率控制: 请合理控制 API 请求的频率,避免过于频繁地发送请求。Upbit 对 API 请求的频率有限制(速率限制),超出限制可能导致您的请求被拒绝。建议使用合理的延迟机制,并监控 API 的响应头信息,了解剩余的请求配额。
  • API 错误处理: 请及时处理 API 返回的错误信息。API 错误可能表明您的请求存在问题,或者 Upbit 系统出现异常。通过分析错误代码和错误信息,您可以快速定位问题并采取相应的纠正措施,例如重新构建请求、重试请求或联系 Upbit 技术支持。
  • 交易测试先行: 在进行任何实际的交易操作之前,请务必在 Upbit 提供的测试环境(如果可用)或使用小额资金进行充分的测试。测试可以帮助您验证交易策略的有效性,并避免因程序错误或市场波动造成的资金损失。