跳到主要内容

限频规则

访问频率限制主要分为两个维度。

IP维度是基于用户的IP出口进行限制的,目前频率设置较高,用户一般不会触发此类限频规则。

用户维度的限频规则是基于用户的交易账户进行限制的,包括 短周期限频长周期限频,他们的区别如下:

  • 短周期限频:主账号和其创建的子账号都独立地受到的短周期限频的约束。这意味着每个账号都有自己的限制和配额,与其他账号无关;
  • 长周期限频:主账号和其创建的子账号共享一个限频额度。这意味着所有账号的请求都会影响到这个共享额度,并且所有账号的请求都会从同一个额度中扣除。

IP维度限频规则

限频:400/s

用户维度限频规则

用户维度的限频分为 短周期限频长周期限频 两种模式。

  • 短周期限频 偏向于控制短期的请求量,防止 API 被恶意使用。
  • 长周期限频 偏向于控制较长时期内请求质量,防止 API 资源滥用。

短周期限频规则

目前的限频规则是基于分组的,分组的对应关系可见如下章节。

这个限频策略基于请求路径分组,旨在控制特定路径上的请求频率。具体描述如下:

分组:请求路径被分成多个组,每个组包含一组相关的路径。具有相似功能或特征的路径会被分到同一个组中。

请求余量:每个分组都有一个共享的请求余量,表示在特定时间段内该分组允许的请求数量。余量是根据限频频率动态恢复。

限频频率:每个分组会有一个限频频率,即每秒最大的请求余量恢复量。例如假设请求频率为 20r/s,则意味着请求余量每秒恢复 20 req。

限频策略:当收到一个请求时,系统首先确定该请求所属的分组。然后,系统将检查该分组的请求余量是否允许处理该请求。

a. 如果请求余量大于零,则允许处理该请求,并将余量减少。请求被处理后,系统可以返回相应的结果。

b. 如果请求余量为零,则拒绝处理该请求。系统将返回一个错误码,表示请求已经超过使用限制。

1.账户维度短周期限频规则(现货)

  • 主账号和子账号分别限频,互不影响
接口类型限频包含的接口路径
现货下单&改单30r/1sPOST /spot/order *下委托单
POST /spot/stop-order *下计划委托单
POST /spot/modify-order *修改委托单
POST /spot/modify-stop-order *修改计划委托单
现货撤单60r/1sPOST /spot/cancel-order *取消委托单
POST /spot/cancel-stop-order *取消计划委托单
现货批量下单10r/1sPOST /spot/batch-order *下批量委托单
POST /spot/batch-stop-order *下批量计划委托单
现货批量撤单40r/1sPOST /spot/cancel-batch-order *批量取消委托单
现货查询订单50r/1sGET /spot/order-status *查询订单状态
GET /spot/batch-order-status *批量查询订单状态
GET /spot/pending-order *获取未完成委托单
GET /spot/pending-stop-order *获取未完成计划委托单
现货查询订单历史10r/1sGET /spot/order-deals *获取用户订单成交
GET /spot/user-deals *获取用户成交
GET /spot/finished-order *获取已完成委托单
GET /spot/finished-stop-order *获取已完成计划委托单
现货账户改动10r/1sPOST /account/settings *修改账户设置
POST /assets/margin-borrow *杠杆借币
POST /assets/margin-repay *杠杆还币
POST /assets/transfer *资产划转
POST /account/subs *创建子账号
POST /account/subs/frozen *禁用子账号
POST /account/subs/unfrozen *取消禁用子账号
POST /account/subs/api *创建子账号 APIKEY
POST /account/subs/edit-api *编辑子账号 APIKEY
POST /account/subs/delete-api *删除子账号 APIKEY
POST /account/subs/transfer *子账号间资产划转
POST /assets/renewal-deposit-address *更新充值地址
POST /assets/withdraw *申请提现
POST /assets/cancel-withdraw *取消申请提现
现货账户查询10r/1sGET /assets/spot/balance *获取现货账户余额
GET /account/trade-fee-rate *获取账户交易费率
GET /assets/amm/liquidity *获取 AMM 账户流动性
GET /assets/financial/balance *获取理财账户余额
GET /assets/credit/info *获取授信账户信息
GET /account/subs/api *获取子账号 APIKEY 列表
GET /account/subs/api-detail *获取子账号 APIKEY 详情
GET /assets/deposit-address *获取充值地址
现货账户历史数据查询10r/1sGET /assets/withdraw *获取提现记录
GET /assets/deposit-history *获取充值记录
GET /assets/statement *获取用户流水
GET /assets/transfer-history *获取资产划转记录
GET /assets/margin/borrow-history *获取杠杆账户借币记录
GET /account/subs/transfer-history *获取子账号间划转记录

2.账户维度短周期限频规则(合约)

  • 主账号和子账号分别限频,互不影响
接口类型限频包含的接口路径
合约下单&改单&调整仓位20r/1sPOST /futures/order *下委托单
POST /futures/stop-order *下计划委托单
POST /futures/close-position *市价全部平仓
POST /futures/adjust-position-margin *调整仓位保证金
POST /futures/adjust-position-leverage *调整仓位杠杆
POST /futures/set-position-stop-loss *设置仓位止损
POST /futures/set-position-take-profit *设置仓位止盈
POST /futures/modify-order *修改委托单
POST /futures/modify-stop-order *修改计划委托单
合约撤单40r/1sPOST /futures/cancel-order *取消委托单
POST /futures/cancel-stop-order *取消计划委托单
合约批量下单10r/1sPOST /futures/batch-order *下批量委托单
POST /futures/batch-stop-order *下批量计划委托单
合约批量撤单20r/1sPOST /futures/cancel-batch-order *批量取消委托单
POST /futures/cancel-batch-stop-order *批量取消计划委托单
合约查询订单50r/1sGET /futures/pending-order *获取未完成委托单
GET /futures/pending-stop-order *获取未完成计划委托单
GET /futures/order-status *查询订单状态
合约查询订单历史10r/1sGET /futures/finished-order *获取已完成委托单
GET /futures/finished-stop-order *获取已完成计划委托单
合约账户查询10r/1sGET /assets/futures/balance *获取合约账户余额
GET /futures/position-funding-history *获取仓位资金费率历史记录
GET /futures/pending-position *获取当前持仓
信息

访问会触发限频的接口时,会在HTTP响应头里返回如下两个Header

  • X-RateLimit-Limit。该值表示该接口所属的组每秒最多允许的访问次数。
  • X-RateLimit-Remaining。该值表示该接口所属的组当前剩余的访问次数。
  • X-RateLimit-LongPeriod-{period}-Remaining。该值表示接口所属的组当前配置长周期剩余的访问次数,period 表示限制周期,例如 1H、4H、8H 或 24H。

长周期限频规则

长周期限频主要会评估用户的请求量请求质量两个维度,来决定是否限制用户在较长的周期内的请求总量。其中请求质量主要包含 有效成交率订单平均存活时间等其他一些参考指标。

其中,以上提到的概念分别解释如下:

  • 周期。不同于短周期限频,这里的周期是较长的统计周期,例如 1h、4h、8h 或 24h 等
  • 请求量。在一个周期内,某一个分组中的所有请求量总和
  • 请求质量。主要包含 有效成交率订单存活时间等其他一些参考指标
  • 有效成交率。在一个周期内的 有效成交率=有效订单数(有成交的已完成订单)/总订单数
  • 订单平均存活时间。在一个周期内,订单的平均存活时间(从创建时间到完成时间的差值即为存活时间)

只有同时在请求量请求质量两类指标都超过了限制,才会被长周期限频所影响。

长周期限频会在一个周期结束后重置,周期的统计是按照整点来进行的,也就是假设长周期限频的周期为8h,那么一天会有三个统计周期,分别是 0~8h, 8~16h, 16~24h

在触发了长周期限频后,api 请求会被至于 低速模式 下,在这个模式中,每个分组的允许速率将会被大量的降低,但并不会限制用户进行撤单。

信息

访问会触发长周期限频限频的接口时,会在HTTP响应头里返回如下一个Header

  • X-RateLimit-LongPeriod-{period}-Remaining。该值表示接口所属的组当前配置长周期剩余的访问次数,period 表示限制周期,例如 1H、4H、8H 或 24H。例如:X-RateLimit-LongPeriod-24H-Remaining。另外,有可能同时存在多条生效的长周期限频规则,即会同时返回多个不同周期的 Header。

3.触发限频后常见错误码及处理方式

常见错误码建议处理方式
3008服务间歇繁忙,请稍后重试
4001服务暂时不可用,请稍后重试
4213触发限频,建议调整策略,降低请求频率

4.其他错误处理

如果遇到其他错误,可以参考错误处理解决。