
Viber 官方对 Bot 的免费消息发送设有严格配额——每个 Bot 每日无明确限制,但每月仅允许发送最多 10,000 条Bot 主动发起的聊天消息(含 broadcast_message),超出即返回 status=23 错误。该限制未在公开文档显著标注,需开发者自行监控用量。
viber 官方对 bot 的免费消息发送设有严格配额——每个 bot 每日无明确限制,但每月仅允许发送最多 10,000 条**bot 主动发起的聊天消息**(含 broadcast_message),超出即返回 status=23 错误。该限制未在公开文档显著标注,需开发者自行监控用量。
Viber Bot 的 broadcast_message 接口(https://chatapi.viber.com/pa/broadcast_message)虽在文档中未明示配额,但实际受平台统一计费策略约束:所有由 Bot 主动触发的消息(非用户触发的会话内回复)均计入“Bot-initiated messages”范畴,且默认免费额度为 10,000 条/自然月(从每月 1 日 00:00:00 UTC 开始重置)。
当您批量发送 500 条广播消息时触发 {"status": 23, "status_message": "maximum free messages from Bot exceeded"},说明当月已耗尽全部免费额度。值得注意的是:
- ✅ 用户主动发送消息后的 24 小时内响应(即“session-based replies”)不计入此配额;
- ❌
broadcast_message、postback主动推送、定时提醒等均全额计入 10k 限额; - ⚠️ 配额按 Bot 账号(PA ID)统计,与设备、IP 或调用频次无关,仅与消息成功投递数相关。
如何验证与规避?
建议在调用前通过 Viber 提供的用量查询接口(需 OAuth Token)检查剩余配额:
curl -X GET "https://chatapi.viber.com/pa/get_account_info" \ -H "X-Viber-Auth-Token: YOUR_AUTH_TOKEN" \ -H "Content-Type: application/json"
响应中 messages_sent_this_month 字段可实时获取已用数量。
最佳实践建议:
- ? 建立本地用量监控:每次成功发送后递增计数器,并持久化存储(如 Redis 或数据库),避免依赖 Viber 接口延迟;
- ? 分批+退避策略:单次广播勿超 300 条(您当前批次大小合理),并添加
Retry-After逻辑处理 status=23; - ? 商用场景务必开通付费计划:联系 Viber 商务(partners@viber.com)升级为“Pro”或“Enterprise”套餐,获取更高配额及 SLA 支持;
- ? 日志归档关键字段:记录每条
broadcast_message的message_token与时间戳,便于审计与故障复盘。
⚠️ 注意:Viber 文档更新滞后,所有配额规则以 Viber Partner Portal 后台显示为准。切勿依赖文档“未说明即无限制”的假设——10,000 条/月是当前全球 Bot 账号的通用免费基线。

















