Rate-limiting

跳转到: 导航, 搜索

目录

接口访问频次权限

微博接口限制用户每个小时只能请求一定的次数。限制分用户维度和IP维度,详述如下:

针对一个服务器IP的请求次数限制

普通授权:

  • 10000次/小时

中级授权:

  • 20000次/小时

高级授权:

  • 30000次/小时

合作授权:

  • 40000次/小时

针对一个用户在使用一个应用的请求次数限制

普通授权:

  • 总限制:单用户每应用 150次/小时
  • 发微博:单用户每应用 30次/小时
  • 发评论:单用户每应用 60次/小时
  • 发私信:单用户每应用 60次/小时
  • 加关注:单用户每应用 60次/小时 200次/天

中级授权:

  • 总限制:单用户每应用 300次/小时
  • 发微博:单用户每应用 60次/小时
  • 发评论:单用户每应用 120次/小时
  • 发私信:单用户每应用 120次/小时
  • 加关注:单用户每应用 120次/小时 400次/天

高级授权:

  • 总限制:单用户每应用 450次/小时
  • 发微博:单用户每应用 90次/小时
  • 发评论:单用户每应用 180次/小时
  • 发私信:单用户每应用 180次/小时
  • 加关注:单用户每应用 180次/小时 600次/天

合作授权:

  • 总限制:单用户每应用 无限制
  • 发微博:单用户每应用 120次/小时
  • 发评论:单用户每应用 240次/小时
  • 发私信:单用户每应用 240次/小时
  • 加关注:单用户每应用 240次/小时 800次/天


黑名单

我们希望API调用者都能遵循请求限制,过度频率的调用API会导致你的应用/IP加入黑名单。加入黑名单之后,所有请求都会无任何返回。

开发者如何正确面对频率限制

首先微博API技术原理上是一个HTTP轮询(POLLING)协议,不是即时推送(realtime push)协议。因此即使增大刷新频率也无法完全达到即时获得最新信息效果。根据经验,更新频率我们建议2-3分钟/次为宜,API客户端也可提供一个手工刷新按钮,用户可以手工获取最新数据。

API客户端可以智能控制请求频率,比如最近几次更新都没获取到数据情况下可以适当将间隔时间延长。当一小时内剩余次数多时候可以适当将更新加快。当剩余请求数偏小时,客户端通过延长自己的更新频率控制不超过上限。另外要适当留一些空余指标,防止用户手工执行一些操作产生的调用导致超出上限。

客户端可以通过以下接口查询当前剩余请求数Account/rate_limit_status