Binance交易所API是什么?如何申请?2026年币安API申请完整教程与量化实战
币安目前是全球成交量和流动性长期领先的中心化交易所之一,而 Binance API 则是它对外开放的程序化接口,覆盖行情订阅、账户查询、自动下单、统一账户管理等核心交易动作。无论你是想跑一个简单的网格机器人,还是搭建跨交易所套利系统,第一步都得先申请 API Key、读懂文档、把签名机制接上。
这篇教程把官方文档里散落的细节、社区里反复踩过的坑,以及大陆用户常见的网络访问与权限配置问题,整理成了一条清晰路径——从 0 到拿到能下单的 API Key,再到写出第一行可运行的 Python 量化代码。

核心要点速览
- :账户已完成身份认证 / 进阶 KYC、现货钱&包已激活(任意金额充值即可)、已开启 2FA。
币安 API 申请前置条件
- :系统生成(HMAC 对称加密)适合新手理解签名流程;自行生成(Ed25519 或 RSA 非对称加密)更适合长期生产环境,币安官方推荐 Ed25519。
密钥类型
- :新建 API Key 默认仅开启「读取」,变钱权限永远不要为普通量化场景开启。
权限默认值
- :未绑定 IP 的 API Key 在长期未使用后可能被系统自动删除;生产环境应绑定固定公网 IP。
IP 白名单
- :SIGNED 请求都需要携带 signature;HMAC Key 使用 HMAC-SHA256,RSA / Ed25519 Key 使用对应私钥签名,请求头 X-MBX-APIKEY 传递的是 API Key,不是公钥。
签名机制
- :币安采用权重制(Weight-based),超限返回 429,连续违规触发 IP 封禁(HTTP 418),封禁时间可从 2 分钟延长到 3 天。
限频
- :Python + ccxt 是最低成本起步方案,10 行代码可拿到 K 线,30 行可下单。
量化首选
什么是币安 Binance API
API 是 Application Programming Interface 的缩写,本质上就是币安服务器对外暴露的一组「机器读写接口」。手动交易者点鼠标、拖滑块下单的所有动作,背后都是这组接口在工作。当你拿到 API Key 之后,可以用代码代替鼠标,把以下能力变成一行行函数调用:
- 读取实时行情、K 线、订单簿深度、最近成交
- 查询账户余额、持仓、订单状态、历史成交
- 下单、撤单、改单(含止盈止损、OCO、ICEBERG 等高级单类型)
- 申请杠杆借贷、合约划转、统一账户资金调度
- 订阅 WebSocket 用户数据流,毫秒级感知账户变化
币安 API 主要分为三类接口形态:
REST API
WebSocket API
WebSocket Streams
申请币安 API 的前置条件
币安在 2021 年 8 月之后收紧了 API 创建规则:
只有完成进阶认证 / 身份认证的用户
除了 KYC 之外,创建 API Key 前还必须满足两个隐性条件:
1.
现货钱&包激活
2.
已开启 2FA 二次验证
需要注意的是,移动端 App 虽然也能创建 API,但权限编辑界面建议在 PC 网页端操作,按钮密度和提示信息更完整。
币安 API Key 创建 6 步图文教程

下图把整个申请流程拆成 6 个关键节点,对照着做基本不会卡住:
第 1 步:登录币安账户
用浏览器打开币安官网(防止钓鱼网站,认准 binance.com 主域名),登录后点击右上角头像 → 【账户】,进入个人中心。
第 2 步:进入 API 管理页面
在账户左侧菜单找到【API 管理】,如果这是你第一次创建 API,页面会是空的。

第 3 步:点击「创建 API」并选择密钥类型
币安提供两种密钥生成方式:
- (推荐新手理解流程):采用 HMAC-SHA256 对称加密。币安会同时给你 API Key(访问标识)和 Secret Key(签名密钥),后续请求用 Secret Key 生成签名。
系统生成
- (推荐进阶/机构):采用 Ed25519 或 RSA 非对称加密。你在本地用工具生成密钥对,只把公钥上传给币安,私钥永远不离开你的机器。币安官方文档明确推荐
自行生成
,因为它在签名体积、计算速度和安全性之间更均衡。Ed25519
HMAC 适合快速上手,但官方文档已提示 HMAC Key 属于逐步迁移方向;正式生产环境建议优先考虑 Ed25519。如果你是新手,可以先选「系统生成」,如果知道怎么自己创建私钥的话再选「自行生成」,两者差异在于后者更能确保币安不知道你的私钥。

第 4 步:填写标签并完成安全验证
给这个 API Key 起一个能识别用途的名字,比如「grid-bot-spot」「monitor-only」「futures-arbitrage」。命名后系统会要求你完成手机/邮箱验证码 + 谷歌验证器 + 滑块拼图等安全验证。
第 5 步:保存 Secret Key
这一步是整个流程里
最容易丢东西的环节
第 6 步:编辑权限与 IP 白名单
新建 API 默认
只开启读取权限

币安API 权限设置与 IP 白名单

权限不是越多越好,相反——
最小权限原则
常见权限组合
- :只勾「允许读取」。即使密钥泄露,攻击者也只能看你的数据,无法动你一分钱。
纯行情/监控
- :勾「允许读取」+「允许现货及杠杆交易」。需要划转时再补勾「允许杠杆借贷和划转」「允许万向划转」。
现货量化
- :勾「允许读取」+「允许合约」。注意:
合约量化
,否则该选项会灰显并提示「开通合约账户之前创建的 API Key 不支持合约 API 功能」。必须先开通合约账户,才能勾选合约权限
- :在合约/现货权限基础上加勾「允许万向划转」。
跨账户搬砖
关于「允许变钱」
这是币安风险最高的权限。币安默认禁用此权限,开启变钱权限必须设置 IPv4 访问限制。普通现货量化、合约量化、网格机器人、套利监控都不需要变钱权限;除非你在做交易所之间的自动充提对接,否则永远不要勾选。
历史上的 API 安全事件说明,API Key 泄露可能导致异常交易、账户风险甚至配合其他凭证造成资金损失。2018 年 SYS 异常交易事件后,币安曾删除全部现有 API Key 并要求 API 用户重建;2019 年安全事件中,攻击者获取了大量用户 API Key、2FA 码等信息,并从热钱&包提走 7000 BTC。因此,量化场景应始终避免变钱权限,并尽量绑定 IP 白名单。
IP 白名单:不仅是安全,也关系到权限稳定性
币安已经实施过「
无 IP 白名单且 30 天未使用的 API Key 自动删除
更重要的安全意义是:绑定 IP 之后,即使 Secret Key 泄露,攻击者也无法从其他 IP 发起请求。配置步骤:
1. 在 API 编辑页面找到「限制访问 IP」
2. 查到你服务器的公网 IP(命令行执行 curl ifconfig.me 或浏览器搜「what is my IP」)
3. 填入 IPv4 地址,多个 IP 按页面提示分隔
4. 保存并完成安全验证
币安 API 调用:签名机制详解
币安把所有端点分为两类:
- :公开行情端点,通常无需签名;部分接口可能要求 API Key,但不涉及账户交易签名。
NONE / MARKET_DATA
- :涉及账户与交易的私有端点,必须携带 signature 参数。
SIGNED(TRADE / MARGIN / USER_DATA)
SIGNED 请求都需要签名,但签名算法取决于 API Key 类型:HMAC Key 使用 HMAC-SHA256;RSA Key 使用 RSA 私钥签名;Ed25519 Key 使用 Ed25519 私钥签名。请求头里的 X-MBX-APIKEY 传递的是 API Key / Key ID,不是公钥;如果使用 Ed25519/RSA,公钥是在创建 API Key 时上传给币安,后续请求用本地私钥签名。
HMAC-SHA256 签名流程
系统生成的 HMAC Key 使用业界标准的 HMAC-SHA256 算法来验证请求来源。签名过程可以拆成 5 步:

1. 把所有参数(包括 timestamp)按 key=value&key=value 格式拼接成 totalParams 字符串。
2. 用你的 Secret Key 作为密钥,对 totalParams 做 HMAC-SHA256 计算。
3. 把输出编码为 hex 字符串,得到 signature。
4. 把 signature 拼回 URL 参数末尾,并在请求 Header 中加入 X-MBX-APIKEY: 你的API Key。
5. 币安服务器收到请求后用同样的 Secret Key 重新计算签名,比对一致才执行。
必须注意三点:
- ,通常使用毫秒时间戳;现货 API 也支持微秒时间戳。recvWindow 以毫秒计,默认 5000ms,最大 60000ms。本机时间如果和币安服务器偏差超过 recvWindow,请求会被拒绝(错误码 -1021)。
timestamp 必填
- :HMAC 模式下 signature 大小写不敏感;RSA / Ed25519 模式下 signature 大小写敏感。secretKey 和参数本身始终大小写敏感。
signature 字符串大小写规则取决于密钥类型
- ,否则签名会失败。
非 ASCII 字符必须 percent-encode 后再参与签名
跑通这段代码意味着你的 API Key、Secret、IP、权限、时间同步全部就绪。如果返回 -1022 Signature for this request is not valid,常见原因是 Secret Key 复制错、签名字符串和实际请求参数不一致、URL 编码不一致;如果返回 -2015 Invalid API-key, IP, or permissions,通常说明你的 IP 不在白名单、权限没开,或 API Key 本身无效。
币安 API 量化实战:ccxt 库快速上手
手写签名虽然可以理解原理,但写多了之后会发现:
每个交易所的端点命名、参数风格、错误码体系都不一样
安装:
pip install ccxt
初始化币安客户端 + 获取 K 线 + 查询账户 + 下限价单,一段代码全搞定:
import ccxt
binance = ccxt.binance({
'apiKey': '你的API Key',
'secret': '你的Secret Key',
'enableRateLimit': True, # 自动遵守币安限频
'options': {
'defaultType': 'spot', # spot / future / delivery / option
'adjustForTimeDifference': True # 自动校准时间戳
}
})
# 1. 加载市场
binance.load_markets()
# 2. 获取 BTC/USDT 最近 100 根 1 小时 K 线
ohlcv = binance.fetch_ohlcv('BTC/USDT', timeframe='1h', limit=100)
# 3. 查询账户余额
balance = binance.fetch_balance()
print(balance['USDT']) # {'free': xxx, 'used': xxx, 'total': xxx}
# 4. 下一个 BTC/USDT 限价买单
order = binance.create_limit_buy_order(
symbol='BTC/USDT',
amount=0.001,
price=50000
)
print(order)
切换到 U 本位合约通常只需要把 defaultType 改成 'future',但实盘前必须确认账户模式、保证金模式、持仓模式、杠杆倍数和交易对命名是否与策略一致。enableRateLimit=True 这个参数非常重要,它会让 ccxt 在本地按限频规则自动 sleep,降低触发 429 的概率。
币安 API 限频规则(Rate Limit)
币安的限频系统在主流交易所里属于相对复杂的一类。理解它的运行方式,直接决定你的策略能不能扛得住高频请求。
权重制(Weight-based)
币安不是简单地数「每分钟请求数」,而是给每个端点定义了一个 weight(权重)。以现货 24hr ticker 为例,查询单个交易对的权重是 2,不传 symbol 查询全部交易对的权重是 80。现货的常见 REQUEST_WEIGHT 限制为每分钟 6000 权重,实际以 /api/v3/exchangeInfo 和接口响应头为准。
每次请求的响应头里都会带回当前已用权重:X-MBX-USED-WEIGHT-1M。你的程序应该在每个请求后读这个值,做本地的滑动窗口控制。
错误码与封禁阶梯
- :触发了限频,必须立即退避。响应头 Retry-After 告诉你需要等几秒。
HTTP 429
- :连续违反 429 后被自动封禁 IP。封禁时间从 2 分钟起步,重复违规可延长到 3 天。
HTTP 418
- :被 WAF(Web 应用防火墙)拦截,通常是请求模式被认定为异常或违反 WAF 规则。
HTTP 403
实战建议
- 能用 WebSocket 解决的,尽量不要用 REST 高频轮询。行情流推送能显著降低 REST 权重压力。
- 使用 ccxt 时务必保留 enableRateLimit=True。
- 多账户/多策略共用同一 IP 时,权重池是共享的,要全局协调。
- 遇到 429 千万不要立即重试,至少按 Retry-After 退避,防止滑入 418。
API 安全使用 7 条注意事项
1.
一个业务一把 Key
2.
永远绑定 IP 白名单
3.
Secret 离线存储
4.
用环境变量加载
5.
定期轮换
6.
优先考虑 Ed25519
7.
监控异常调用
币安 vs Bybit vs Bitget:量化 API 怎么选
很多量化策略最终会跨交易所运行——主仓在币安,做市/对冲在 Bybit 或 Bitget。一张表看清三家的 API 差异:

选 Binance:流动性与产品广度的天花板
选 Bybit:适合合约执行与统一账户需求
选 Bitget:复制交易生态突出,推广合作弹性较高
常见问题 FAQ
币安 API 是免费的吗?
币安 API 本身完全免费,没有调用费或订阅费。你只需要支付正常的交易手续费。任何号称要付费才能开通的「币安 API 服务」都要谨慎核实。
Secret Key 忘记了怎么办?
无法找回。Secret Key 在系统生成模式下仅在创建那一刻显示一次,币安后台不再展示明文。唯一的解决方案是删除该 API Key 重新创建一个新的,并把所有下游程序的配置同步更新。
API Key 被自动删除了是什么原因?
常见原因是:未绑定 IP 白名单 + 连续 30 天未发起任何请求,触发自动清理策略。解决办法是创建新 Key 后立即绑定 IP;即使暂时不用,也可以定期做一次低风险查询请求确认 Key 仍然可用。
HMAC、RSA、Ed25519 三种密钥怎么选?
新手可以用 HMAC 起步(系统生成),上手最快,适合理解签名流程;长期运行的程序应优先考虑 Ed25519(自行生成),私钥永远不出本机,性能和安全性都更适合生产环境。RSA 可以作为非对称签名方案使用,但新项目通常优先考虑 Ed25519。
币安 API 报错 -1021 Timestamp 是什么意思?
本机时间与币安服务器时间偏差超过 recvWindow(默认 5000 毫秒)。常见原因是服务器时钟漂移,解决办法是开启 NTP 同步(Linux:sudo apt install chrony),或者在客户端代码里把 adjustForTimeDifference 打开(ccxt)/ 手动调用 /api/v3/time 校准。
Bybit、Bitget 的 API 流程和币安一样吗?
整体框架类似(创建 Key → 配置权限 → 绑定 IP → 签名请求),但端点路径、签名参数、passphrase 要求、错误码和限频规则各家不同。推荐用 ccxt 库统一封装,避免重复造轮子。