公开API接口
通用接口
术语解释
这里的术语适用于全部文档,建议特别是新手熟读,也便于理解。
base asset
指一个交易对的交易对象,即写在靠前部分的资产名, 比如BTCUSDT
,BTC
是base asset
。quote asset
指一个交易对的定价资产,即写在靠后部分的资产名, 比如BTCUSDT
,USDT
是quote asset
。
测试服务器连通性 PING
GET /api/v3/ping
测试能否联通
权重: 1
参数: NONE
数据源: 缓存
响应:
{}
获取服务器时间
GET /api/v3/time
获取服务器时间
权重: 1
参数: NONE
数据源: 缓存
响应:
{
"serverTime": 1499827319559
}
交易规范信息
GET /api/v3/exchangeInfo
获取此时的交易规范信息
权重: 20
参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
symbol | STRING | No | 示例:curl -X GET "https://api.binance.com/api/v3/exchangeInfo?symbol=BNBBTC" |
symbols | ARRAY OF STRING | No | 示例:curl -X GET "https://api.binance.com/api/v3/exchangeInfo?symbols=%5B%22BNBBTC%22,%22BTCUSDT%22%5D" 或 curl -g -X GET 'https://api.binance.com/api/v3/exchangeInfo?symbols=["BTCUSDT","BNBBTC"]' |
permissions | ENUM | No | 示例:curl -X GET "https://api.binance.com/api/v3/exchangeInfo?permissions=SPOT" or curl -X GET "https://api.binance.com/api/v3/exchangeInfo?permissions=%5B%22MARGIN%22%2C%22LEVERAGED%22%5D" or curl -g -X GET 'https://api.binance.com/api/v3/exchangeInfo?permissions=["MARGIN","LEVERAGED"]' |
showPermissionSets | BOOLEAN | No | 用于控制是否提供 permissionSets 字段的内容。默认为 true |
symbolStatus | ENUM | No | 用于过滤具有此 tradingStatus 的交易对。有效值: TRADING , HALT , BREAK 不能与 symbols 或 symbol 组合使用。 |
备注:
- 如果参数
symbol
或者symbols
提供的交易对不存在, 系统会返回错误并提示交易对不正确。 - 所有的参数都是可选的。
permissions
可以支持单个或多个值(例如SPOT
,["MARGIN","LEVERAGED"]
)。此参数不能与symbol
或symbols
组合使用。- 如果未提供
permissions
参数,那么所有具有SPOT
、MARGIN
或LEVERAGED
权限的交易对都将被返回。- 要显示具有任何权限的交易对,您需要在
permissions
中明确指定它们:(例如["SPOT","MARGIN",...]
)。有关完整列表,请参阅 可用权限
- 要显示具有任何权限的交易对,您需要在
解释响应中的 permissionSets
:
[["A","B"]]
- 有权限"A"或权限"B"的账户可以下订单。[["A"],["B"]]
- 有权限"A"和权限"B"的账户可以下订单。[["A"],["B","C"]]
- 有权限"A"和权限"B"或权限"C"的账户可以下订单。(此处应用的是包含或,而不是排除或,因此账户可以同时拥有权限"B"和权限"C"。)
数据源: 缓存
响应:
{
"timezone": "UTC",
"serverTime": 1508631584636,
"rateLimits": [
{
"rateLimitType": "REQUESTS_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1200 // 每分钟调用的所有接口权重之和不得超过1200
},
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 1,
"limit": 10 // 每秒钟所有订 单/撤单次数不得超过10
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 100000 // 每天订单/撤单不得超过10万
},
{
"rateLimitType": "RAW_REQUESTS",
"interval": "MINUTE",
"intervalNum": 5,
"limit": 5000 // 每5分钟调用订单次数不得超过5000
}
],
"exchangeFilters": [],
"symbols": [
{
"symbol": "ETHBTC",
"status": "TRADING",
"baseAsset": "ETH",
"baseAssetPrecision": 8,
"quoteAsset": "BTC",
"quotePrecision": 8,
"quoteAssetPrecision": 8,
"orderTypes": ["LIMIT", "MARKET"],
"icebergAllowed": false,
"ocoAllowed": true,
"otoAllowed": true,
"quoteOrderQtyMarketAllowed": true,
"allowTrailingStop": false,
"cancelReplaceAllowed": false,
"filters": [
{
"filterType": "PRICE_FILTER",
"minPrice": "0.00000100",
"maxPrice": "100000.00000000",
"tickSize": "0.00000100"
},
{
"filterType": "LOT_SIZE",
"minQty": "0.00100000",
"maxQty": "100000.00000000",
"stepSize": "0.00100000"
},
{
"filterType": "MIN_NOTIONAL",
"minNotional": "0.00100000",
"applyToMarket": true,
"avgPriceMins": 5
}
],
"permissions": [],
"permissionSets": [
[
"SPOT",
"MARGIN"
]
],
"defaultSelfTradePreventionMode": "NONE",
"allowedSelfTradePreventionModes": [
"NONE"
]
}
],
// 可选字段,仅当 SOR 可用时才会被显示出来。
// https://github.com/binance/binance-spot-api-docs/blob/master/faqs/sor_faq_CN.md
"sors": [
{
"baseAsset": "BTC",
"symbols": [
"BTCUSDT",
"BTCUSDC"
]
}
]
}
行情接口
深度信息
GET /api/v3/depth
权重:
限制 | 权重 |
---|---|
1-100 | 5 |
101-500 | 25 |
501-1000 | 50 |
1001-5000 | 250 |
参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
limit | INT | NO | 默认 100; 最大 5000. 可选值:[5, 10, 20, 50, 100, 500, 1000, 5000] 如果 limit > 5000, 最多返回5000条数据. |
数据源: 缓存
响应:
{
"lastUpdateId": 1027024,
"bids": [
[
"4.00000000", // 价位
"431.00000000", // 挂单量
[] // 请忽略.
]
],
"asks": [
[
"4.00000200",
"12.00000000",
[]
]
]
}
近期成交
GET /api/v3/trades
获取近期成交
权重: 25
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
limit | INT | NO | Default 500; max 1000. |
数据源: 缓存
响应:
[
{
"id": 28457,
"price": "4.00000100",
"qty": "12.00000000",
"time": 1499865549590,
"isBuyerMaker": true,
"isBestMatch": true
}
]
查询历史成交
GET /api/v3/historicalTrades
权重: 25
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
limit | INT | NO | Default 500; max 1000. |
fromId | LONG | NO | 从哪一条成交id开始返回. 缺省返回最近的成交记录 |
数据源: 数据库
响应:
[
{
"id": 28457,
"price": "4.00000100",
"qty": "12.00000000",
"time": 1499865549590,
"isBuyerMaker": true,
"isBestMatch": true
}
]
近期成交(归集)
GET /api/v3/aggTrades
与trades的区别是,同一个taker在同一时间同一价格与多个maker的成交会被合并为一条记录
权重: 2
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
fromId | LONG | NO | 从包含fromID的成交开始返回结果 |
startTime | LONG | NO | 从该时刻之后的成交记录开始返回结果 |
endTime | LONG | NO | 返回该时刻为止的成交记录 |
limit | INT | NO | 默认 500; 最大 1000. |
- 如果没有发送任何筛选参数(fromId, startTime, endTime),默认返回最近的成交记录
数据源: 数据库
响应:
[
{
"a": 26129, // 归集成交ID
"p": "0.01633102", // 成交价
"q": "4.70443515", // 成交量
"f": 27781, // 被归集的首个成交ID
"l": 27781, // 被归集的末个成交ID
"T": 1498793709153, // 成交时间
"m": true, // 是否为主动卖出单
"M": true // 是否为最优撮合单(可忽略,目前总为最优撮合)
}
]
K线数据
GET /api/v3/klines
每根K线的开盘时间可视为唯一ID
权重: 2
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
interval | ENUM | YES | 请参考 K线间隔 |
startTime | LONG | NO | |
endTime | LONG | NO | |
timeZone | STRING | NO | 默认: 0 (UTC) |
limit | INT | NO | Default 500; max 1000. |
支持的K线间隔 (区分大小写):
间隔 | 间隔 值 |
---|---|
seconds -> 秒 | 1s |
minutes -> 分钟 | 1m , 3m , 5m , 15m , 30m |
hours -> 小时 | 1h , 2h , 4h , 6h , 8h , 12h |
days -> 天 | 1d , 3d |
weeks -> 周 | 1w |
months -> 月 | 1M |
请注意:
- 如果未发送
startTime
和endTime
,将返回最近的K线数据。 timeZone
支持的值包括:- 小时和分钟(例如
-1:00
,05:45
) - 仅小时(例如
0
,8
,4
) - 接受的值范围严格为 [-12:00 到 +14:00](包括边界)
- 小时和分钟(例如
- 如果提供了
timeZone
,K线间隔将在该时区中解释,而不是在UTC中。 - 请注意,无论
timeZone
如何,startTime
和endTime
始终以UTC时区解释。
数据源: 数据库
响应:
[
[
1499040000000, // 开盘时间
"0.01634790", // 开盘价
"0.80000000", // 最高价
"0.01575800", // 最低价
"0.01577100", // 收盘价(当前K线未结束的即为最新价)
"148976.11427815", // 成交量
1499644799999, // 收盘时间
"2434.19055334", // 成交额
308, // 成交笔数
"1756.87402397", // 主动买入成交量
"28.46694368", // 主动买入成交额
"17928899.62484339" // 请忽略该参数
]
]