Meta APIs应用请求限制计算规则及刷新时间咨询
Meta API应用请求限制计算规则与刷新机制疑问
我想了解Meta APIs的应用请求限制是如何计算的,以及何时刷新?
- 过去7天平均活动情况:

- 过去24小时最活跃端点:

我调用的端点如下:
"https://graph.facebook.com/v18.0/{ig_user_id}?fields=business_discovery.username({username}){{id,ig_id,profile_picture_url,followers_count,media_count,name,media{{caption,comments_count,timestamp,like_count,media_type,thumb_offset,media_product_type,media_url,permalink}}}}&access_token={access_token}"
"https://graph.facebook.com/v18.0/{page_id}/feed?fields=attachments{{type,media_type,url}},full_picture,status_type,permalink_url,to,message,message_tags,shares,likes.summary(true),comments.limit(3).summary(true),created_time,updated_time&since={start_time}&until={end_time}&access_token={access_token}"
我正在抓取20+个Facebook和Instagram公共页面过去7天或30天的帖子数据,但每次运行脚本时,都会在中途触发错误:'message': '(#4) Application request limit reached'。
请问是否有办法了解Meta APIs的实际计算指标以及刷新时间?
回答
一、请求限制的核心计算逻辑
Meta API的请求限制是按应用维度+端点维度双重统计的,核心规则如下:
- 应用级总限制:整个应用在指定周期内的总请求数上限,与调用的端点类型无关。
- 端点级限制:部分高负载端点(比如你用到的
business_discovery、/feed)会单独设置请求上限,即使应用总请求没超限,单个端点达到限制也会触发报错。 - 计数规则:每个API调用都会被计数,包括失败请求(除无效令牌、权限不足导致的请求)。嵌套字段查询(比如
business_discovery里嵌套media多字段)不会额外增加计数,一次调用算一次请求。
二、限制周期与刷新时间
Meta的请求限制周期分两种:
- 24小时滚动周期:绝大多数端点的限制按“过去24小时”滚动计算,无固定刷新时间,窗口从当前请求时间往前推24小时。比如今天10点触发限制,刷新时间就是明天10点。
- 7天周期:部分批量数据获取类端点会有7天维度的总限制,同样为滚动计算。
三、查看实际限制与剩余配额的方法
- 响应头信息:每次API调用的响应头包含以下字段,直接反映配额情况:
x-app-usage:应用级总请求使用量和上限x-business-use-case-usage:特定业务场景(如Instagram商业发现)的使用量和上限
可在脚本中捕获这些头信息,提前预判剩余请求数,避免触发限制。
- Meta开发者工具:在应用的【应用仪表板】→【API使用情况】中,能查看分端点、分周期的详细使用数据,包括当前上限和已使用量。
四、解决当前问题的建议
- 请求速率控制:给脚本添加固定延迟(如每个请求间隔1-2秒),避免短时间内集中调用。
- 批量请求优化:使用
/batch批量API合并多个请求,减少总调用次数;分页数据利用after游标,而非反复调用带时间范围的请求。 - 拆分任务:将20+页面的抓取任务拆分到不同时间段执行,避免同一24小时窗口内耗尽配额。
内容的提问来源于stack exchange,提问作者Atherv Patil
相关产品推荐
相关产品推荐

