Bigone 接口查数据
Bigone API 简介
Bigone 是一家全球性的数字资产交易平台,致力于为用户提供安全、高效、便捷的加密货币交易服务。为了方便开发者和机构投资者进行量化交易、数据分析和自动化交易策略的实施,Bigone 提供了全面的 API(应用程序编程接口)接口。这些 API 接口允许用户通过编程方式访问 Bigone 的核心功能,无需手动操作网页界面。
通过 Bigone API,开发者可以获取各种加密货币的实时市场数据,包括但不限于实时价格、成交量、深度图、以及历史交易记录。更进一步,开发者可以利用 API 执行交易操作,如创建、修改和取消订单,实现自动化交易。API 还提供了账户管理功能,允许用户查询账户余额、交易历史以及其他账户相关信息。Bigone API 为开发者提供了一个强大的工具集,可以用于构建各种加密货币交易应用程序。
使用 Bigone API 需要进行身份验证,通常涉及 API 密钥(API Key)和密钥(Secret Key)。API Key 用于标识您的应用程序,Secret Key 用于对请求进行签名,确保交易的安全性。在本文档中,我们将详细介绍如何进行 API 身份验证,以及如何安全地管理您的 API 密钥。
我们将深入探讨 Bigone API 中最常用的接口,包括:
- 市场数据 API: 用于获取实时价格、成交量、深度图等市场数据。我们将详细介绍不同类型市场数据的获取方法,以及相关参数的含义。
- 交易 API: 用于创建、修改和取消订单,进行交易操作。我们将讨论不同类型订单的创建方法,以及如何处理交易过程中可能出现的错误。
- 账户 API: 用于查询账户余额、交易历史等账户相关信息。我们将介绍如何安全地访问账户信息,并保护用户的隐私。
为了帮助您更好地理解如何使用 Bigone API,我们将提供各种编程语言的示例代码,例如 Python、JavaScript 等。这些示例代码将演示如何使用 API 接口进行数据查询和交易操作。请注意,由于 API 接口可能会不断更新和改进,因此请务必参考 Bigone 官方 API 文档以获取最新信息。
API 认证
为了保障用户数据的安全以及系统资源的合理利用,访问 Bigone API 通常需要进行身份认证。身份认证机制的设计旨在区分未经授权的访问和合法的用户请求。根据访问权限和数据敏感程度,Bigone API 的认证方式主要分为以下两种类型:
- Public API :公共 API,也称为开放 API,允许无需身份认证即可访问。此类 API 主要用于获取公开、非敏感的市场数据,例如交易所支持的交易对列表、实时价格信息、历史交易量数据、深度信息(Order Book)以及其他公开的市场统计数据。 Public API 通常具有较高的访问频率限制,开发者可以利用这些 API 构建行情展示应用、数据分析工具等。
- Private API :私有 API,或者称为认证 API,必须进行身份认证才能访问。此类 API 用于获取用户的个人账户信息,例如账户余额、交易历史、委托订单等,以及执行交易操作,包括下单、撤单等。Private API 的访问权限受到严格控制,以确保用户的资产安全和交易的保密性。
Private API 的认证通常需要提供 API Key 和 Secret Key 这两个关键凭证。API Key 用于标识请求的来源,而 Secret Key 则用于生成请求的签名,以验证请求的完整性和真实性。这两个 Key 需要通过在 Bigone 平台注册账号,并在账户管理页面创建 API 密钥来获得。请务必妥善保管您的 Secret Key,切勿泄露给他人。在发送 API 请求时,需要按照 Bigone API 的规范,将 API Key 包含在请求头中,并使用 Secret Key 对请求参数进行签名。签名后的数据也需要包含在请求头或者请求参数中,具体取决于 API 的具体要求和签名算法(通常使用 HMAC-SHA256 等加密算法)。不同编程语言和开发框架都有相应的库可以帮助开发者进行签名计算,从而简化认证流程。
常用 API 接口
BigONE 交易所提供了全面的 API(应用程序编程接口),允许开发者访问和利用其平台的功能。这些 API 涵盖了市场数据、交易操作、账户管理等多个方面,为自动化交易策略、数据分析和第三方应用集成提供了强大的支持。以下列出一些常用的接口及其参数说明,方便开发者快速上手:
市场数据 API
-
获取市场行情 (Ticker)
用于获取特定交易对的实时价格、成交量、最高价、最低价等信息。
参数:
-
asset_pair_name
(必需): 交易对名称,例如 "BTC-USDT"。
返回值: 包含最新成交价、24小时最高价、24小时最低价、24小时成交量等数据的 JSON 对象。
-
-
获取深度数据 (Order Book)
用于获取指定交易对的买单和卖单的深度数据,用于分析市场买卖力量。
参数:
-
asset_pair_name
(必需): 交易对名称,例如 "ETH-BTC"。 -
depth
(可选): 需要返回的深度数量,默认为 20。
返回值: 包含买单和卖单列表的 JSON 对象,每个订单包含价格和数量。
-
-
获取历史成交记录 (Trades)
用于获取指定交易对的历史成交记录。
参数:
-
asset_pair_name
(必需): 交易对名称,例如 "LTC-USDT"。 -
limit
(可选): 返回的成交记录数量,默认为 100,最大值为 1000。 -
before
(可选): 起始时间戳(毫秒),用于分页获取更早的成交记录。
返回值: 包含成交时间、价格和数量等信息的 JSON 数组。
-
-
获取 K 线数据 (Candlesticks)
用于获取指定交易对的 K 线图数据,用于技术分析。
参数:
-
asset_pair_name
(必需): 交易对名称,例如 "XRP-USDT"。 -
period
(必需): K 线周期,例如 "1m" (1 分钟), "5m" (5 分钟), "1h" (1 小时), "1d" (1 天) 等。 -
timestamp
(可选): 起始时间戳(秒),用于获取指定时间段内的 K 线数据。 -
count
(可选): 返回的 K 线数量,默认为 100,最大值为 1000。
返回值: 包含开盘价、最高价、最低价、收盘价和成交量等数据的 JSON 数组。
-
交易 API (需要 API 密钥认证)
-
创建订单 (Create Order)
用于创建买入或卖出订单。
参数:
-
asset_pair_name
(必需): 交易对名称,例如 "BTC-USDT"。 -
side
(必需): 订单类型,"bid" (买入) 或 "ask" (卖出)。 -
type
(必需): 订单类型,"limit" (限价单) 或 "market" (市价单)。 -
price
(仅限价单必需): 订单价格。 -
amount
(必需): 订单数量。
返回值: 包含订单 ID 等信息的 JSON 对象。
-
-
取消订单 (Cancel Order)
用于取消未成交的订单。
参数:
-
id
(必需): 订单 ID。
返回值: 成功或失败状态的 JSON 对象。
-
-
获取订单详情 (Get Order)
用于获取指定订单的详细信息。
参数:
-
id
(必需): 订单 ID。
返回值: 包含订单状态、价格、数量等信息的 JSON 对象。
-
-
获取未成交订单列表 (Get Open Orders)
用于获取当前账户所有未成交的订单列表。
参数:
-
asset_pair_name
(可选): 交易对名称,用于筛选特定交易对的未成交订单。 -
page
(可选): 页码,用于分页获取订单列表。 -
limit
(可选): 每页显示的订单数量,默认为 20。
返回值: 包含未成交订单列表的 JSON 数组。
-
账户 API (需要 API 密钥认证)
-
获取账户余额 (Get Account Balance)
用于获取账户中各种资产的余额信息。
参数: 无。
返回值: 包含各种资产余额信息的 JSON 对象,包括可用余额和冻结余额。
-
获取充值提现记录 (Get Deposits and Withdrawals)
用于获取账户的充值和提现记录。
参数:
-
asset_symbol
(可选): 资产代码,例如 "BTC", "ETH"。 -
type
(可选): 记录类型,"deposit" (充值) 或 "withdrawal" (提现)。 -
page
(可选): 页码,用于分页获取记录列表。 -
limit
(可选): 每页显示的记录数量,默认为 20。
返回值: 包含充值或提现记录的 JSON 数组。
-
注意: 在使用交易 API 和账户 API 之前,需要在 BigONE 交易所申请 API 密钥,并进行相应的权限配置。API 密钥需要妥善保管,避免泄露。
1. 获取所有交易对信息 (/asset_pairs
)
描述: 获取 Bigone 平台所有交易对的信息,包括交易对的名称、交易货币、报价货币等。
方法: GET
参数: 无
返回示例:
[ { "id": "ETH-BTC", "base": "ETH", "quote": "BTC", "feeasset": "BTC", "minsize": "0.01", "ticksize": "0.000001", "maxslippage": "0.05", "enabled": true, "name": "ETH/BTC" }, // ... 更多交易对信息 ]
2. 获取单个交易对信息 (/asset_pairs/{asset_pair_name}
)
描述: 获取指定交易对的信息。
方法: GET
参数:
asset_pair_name
: 交易对名称,例如ETH-BTC
。
{ "id": "ETH-BTC", "base": "ETH", "quote": "BTC", "feeasset": "BTC", "minsize": "0.01", "ticksize": "0.000001", "maxslippage": "0.05", "enabled": true, "name": "ETH/BTC" }
3. 获取市场行情 (/markets/{asset_pair_name}
)
描述: 获取指定交易对的市场行情数据,包括最新成交价、最高价、最低价、成交量等。
方法: GET
参数:
asset_pair_name
: 交易对名称,例如ETH-BTC
。
{ "assetpairname": "ETH-BTC", "open": "0.06", "close": "0.061", "high": "0.062", "low": "0.059", "volume": "100", "amount": "6", "last": "0.061", "bid": "0.0609", "ask": "0.0611", "timestamp": "2023-10-27T10:00:00Z" }
4. 获取 K 线数据 (/markets/{asset_pair_name}/kline
)
描述: 获取指定交易对的 K 线数据,可以指定 K 线的时间周期。
方法: GET
参数:
asset_pair_name
: 交易对名称,例如ETH-BTC
。period
: K 线周期,例如1m
(1 分钟),5m
(5 分钟),15m
(15 分钟),30m
(30 分钟),1h
(1 小时),4h
(4 小时),1d
(1 天),1w
(1 周),1M
(1 月)。since
: 起始时间,Unix 时间戳 (秒)。before
: 结束时间,Unix 时间戳 (秒)。limit
: 返回 K 线数量限制,默认为 100,最大为 1000。
[ [ 1698384000, // 时间戳 (秒) "0.06", // 开盘价 "0.061", // 收盘价 "0.062", // 最高价 "0.059", // 最低价 "10", // 成交量 "0.6" // 成交额 ], // ... 更多 K 线数据 ]
5. 获取深度数据 (/markets/{asset_pair_name}/depth
)
描述: 获取指定交易对的深度数据,包括买单和卖单的挂单价格和数量。
方法: GET
参数:
asset_pair_name
: 交易对名称,例如ETH-BTC
。limit
: 返回深度数据的条数限制,默认为 20,最大为 200。
{ "asks": [ [ "0.0611", // 卖单价格 "5" // 卖单数量 ], // ... 更多卖单 ], "bids": [ [ "0.0609", // 买单价格 "3" // 买单数量 ], // ... 更多买单 ], "timestamp": "2023-10-27T10:00:00Z" }
示例代码 (Python)
以下是一个使用 Python 访问 Bigone API 获取 ETH-BTC 市场行情的示例代码。该代码展示了如何通过 HTTP 请求与交易所 API 交互,获取实时市场数据。
import requests
import
def get_market_ticker(asset_pair_name):
"""
获取指定交易对的市场行情数据。
"""
Args:
asset_pair_name: 交易对名称,例如 "ETH-BTC"。 这是 Bigone API 所要求的标准交易对格式。
Returns:
一个字典,包含市场行情数据,或者 None 如果出现错误。行情数据通常包括最高价,最低价,成交量,最新成交价等信息。
"""
url = f"https://big.one/api/v3/markets/{asset_pair_name}"
try:
response = requests.get(url)
response.raise_for_status() # 检查 HTTP 状态码,如果状态码不是200,将抛出HTTPError异常
data = response.()["data"]
return data
except requests.exceptions.RequestException as e:
print(f"Error occurred: {e}")
return None
if __name__ == "__main__":
asset_pair = "ETH-BTC"
ticker = get_market_ticker(asset_pair)
if ticker:
print(f"Market ticker for {asset_pair}:")
print(.dumps(ticker, indent=2)) # 使用 .dumps 格式化输出,使其更易读
# 可以进一步提取 ticker 中的特定字段,例如:
# print(f"Last price: {ticker['close']}")
else:
print(f"Failed to retrieve market ticker for {asset_pair}.")
这段代码首先定义了一个
get_market_ticker
函数,该函数接收一个交易对名称 (
asset_pair_name
) 作为参数。函数内部使用
requests
库向 Bigone API 发送 GET 请求,获取指定交易对的市场行情数据。API endpoint 使用了f-string 格式化,可以动态的构造 URL。HTTP 响应的状态码会通过
response.raise_for_status()
进行检查,如果返回非 200 的状态码, 会抛出
HTTPError
异常。返回的 JSON 数据随后被解析成 Python 字典格式。该函数包含了异常处理,以应对网络连接问题或 API 错误。如果发生错误,会打印错误信息并返回
None
。
在
if __name__ == "__main__":
块中,指定了要查询的交易对为 "ETH-BTC",然后调用
get_market_ticker
函数获取市场行情数据。这段代码演示了如何从主程序入口调用该函数。
.dumps(ticker, indent=2)
用于格式化输出 JSON 数据,
indent=2
参数指定了缩进量,使输出更具可读性。 如果成功获取了市场行情数据,它将打印到控制台,否则将显示一个错误消息。
错误处理
在使用 Bigone API 时,为了构建一个稳定可靠的应用,务必重视错误处理环节。开发者可能会遇到各种问题,例如:网络连接中断、API 访问频率受限、请求参数不符合规范、服务器内部故障等。缺乏完善的错误处理机制会导致程序崩溃或数据异常,因此,必须实施有效的错误处理策略。
-
HTTP 状态码
: Bigone API 遵循 HTTP 协议规范,使用 HTTP 状态码来传达请求执行的结果。状态码能够快速指示请求是否成功以及失败的原因。重要的状态码包括:
-
200 OK
: 请求成功,服务器已成功处理请求并返回结果。 -
400 Bad Request
: 客户端请求包含错误,例如:参数缺失、参数格式错误、参数值无效等。开发者需要检查并修正请求参数。 -
401 Unauthorized
: 客户端未通过身份验证。通常是由于缺少 API Key 或 Secret Key,或者提供的 Key 不正确。请确保在请求头中正确设置了授权信息。 -
403 Forbidden
: 客户端无权访问请求的资源。可能的原因是 API Key 没有访问该接口的权限,或账户权限不足。 -
429 Too Many Requests
: 客户端请求频率超过 API 限制。应采取限流措施,例如使用指数退避算法进行重试,或联系 Bigone 申请更高的访问配额。 -
500 Internal Server Error
: 服务器内部发生错误,无法完成请求。这通常是服务器端的问题,可以稍后重试。如果问题持续存在,请联系 Bigone 技术支持。
-
- API 返回错误信息 : 当 API 请求失败时,Bigone API 通常会返回一个 JSON 对象,其中包含详细的错误代码 (error code) 和错误信息 (error message)。错误代码用于标识错误的类型,而错误信息则提供错误的具体描述。通过解析 JSON 响应,可以准确判断错误的根源,并根据具体情况进行处理。例如,可以记录错误日志、向用户显示错误信息,或者采取重试策略。
-
异常处理
: 在编写代码时,为了应对潜在的运行时错误,建议使用
try...except
语句来实现异常处理。可以捕获特定类型的异常,例如requests.exceptions.RequestException
(用于处理网络连接错误,如超时、连接拒绝等) 和.JSONDecodeError
(用于处理 JSON 解析错误,例如 API 返回的不是有效的 JSON 格式)。通过捕获并处理这些异常,可以防止程序崩溃,并提供更友好的用户体验。在except
块中,可以执行错误恢复操作,例如:重试请求、记录错误日志、或向用户显示错误提示。
API 使用限制
为确保 Bigone 平台服务的稳定性和公平性,防止恶意滥用行为,Bigone 对 API 接口的访问频率和数据传输量设置了明确的限制策略。具体的限制细则,包括每分钟或每秒允许的请求次数、单次请求允许获取的最大数据量等,会根据不同的 API 接口以及 API Key 的类型进行差异化配置。当请求超过预设的限制阈值时,API 服务器将返回
429 Too Many Requests
错误状态码,表明客户端请求过于频繁,需要降低请求频率或优化请求方式。
为了高效、安全地使用 Bigone API,开发者在使用过程中应特别注意以下几个关键策略:
- 合理控制访问频率 : 避免在极短的时间窗口内向 API 服务器发送大量的请求,尤其是在高并发场景下。建议采用适当的延迟机制或令牌桶算法等技术手段,平滑请求流量,防止触发频率限制。
- 使用批量请求 : 对于需要获取大量数据的场景,优先考虑使用 Bigone 提供的批量请求接口。这些接口通常允许在单个请求中指定多个查询参数或ID,从而一次性获取多个数据项,显著减少总的请求次数,提高数据获取效率。
- 缓存数据 : 针对那些不经常发生变化的数据,例如交易对信息、历史K线数据等,建议在客户端或服务器端实施数据缓存策略。将这些数据缓存在本地存储介质(如内存、Redis等),可以有效减少对 API 的重复访问,降低服务器负载,并加快数据响应速度。
- 阅读 API 文档 : 在使用 Bigone API 之前,务必仔细阅读官方提供的 API 文档,全面了解各个接口的功能特性、参数要求、返回格式、使用限制以及最佳实践。特别是要关注文档中关于速率限制、请求配额、错误处理等方面的说明,以便更好地设计和优化 API 调用逻辑。
以上详细阐述了 Bigone API 使用过程中的限制策略以及应对方法,遵循这些指导原则,能够帮助开发者更加有效地利用 Bigone API 获取所需数据,同时确保平台的稳定运行。