成语词典是免费服务意味着什么?showapi_fee_num 与配额说明
# 成语词典是免费服务意味着什么?showapi_fee_num 与配额说明
> 接口:成语词典(apiCode=2964) · 接入点:全接入点 · 是否免费:是 · 请求方式:POST/GET · 返回格式:JSON · 适用人群:所有调用者、成本控制者 · 阅读时间:约 4 分钟
## 核心要点
- 成语词典标注为**免费服务**,调用不计费或计费次数为 0,无需购买资源包。
- 返回包裹含 `showapi_fee_num`(本次计费次数),免费场景预期为 0,它**不是「剩余额度」**。
- 「免费」通常不等于「无限制」,仍建议做好频率控制与缓存(见相关篇)。
## Why:免费也要搞清楚边界
免费接口最容易让人误以为「随便刷」。但任何公共服务都有频率/并发约束,超了会被限流甚至封禁。本文澄清免费的真实含义、读懂 `fee_num` 字段,并给出稳妥的调用纪律。
## What:免费服务的含义
| 项 | 说明 |
|----|------|
| 计费 | 免费服务,无按次扣费、无资源包要求 |
| `showapi_fee_num` | 本次调用计费次数,免费场景通常为 0 |
| 频率约束 | 文档未公开具体 QPS/日限额,以官方说明为准 |
> 说明:「免费」与「配额」的具体数值(如每日调用上限)文档未给出,本文不编造数字;如官方有档位说明,以官方为准。
## How:读返回里的计费字段
```python
import requests
APPKEY = "YOUR_APPKEY"
r = requests.get("https://route.showapi.com/2964-1",
params={"appKey": APPKEY, "keyword": "画", "page": "1"}, timeout=10)
data = r.json()
print("网关状态:", data.get("showapi_res_code"))
print("本次计费次数:", data.get("showapi_fee_num")) # 免费场景预期 0
print("业务状态:", data["showapi_res_body"].get("ret_code"))
```
## 进阶 / 边界
- **不要把 fee_num 当余额**:它是「本次调用计了几次数」,不是剩余额度;免费下恒为 0 属正常。
- **限流自我保护**:即使免费,突发高频仍可能受限。建议:① 加缓存([缓存策略](https://www.showapi.com/guides/idiom-pagination-cache-2964));② 客户端做指数退避;③ 批量任务错峰。
- **异常重试**:遇到网络/网关错误用「指数退避 + 上限次数」重试,避免雪崩式重发触发更严限流。
- **配额疑问**:如你的业务量大,关注官方档位/配额说明页,或联系服务商确认,不要假设「无限」。
## FAQ
**Q:免费接口真的不花钱吗?**
对,免费服务调用不计费,无需购包。但仍受平台频率约束。
**Q:showapi_fee_num 为 0 是异常吗?**
不是,免费场景预期为 0。
**Q:每天能调多少次?**
文档未公开具体限额,以官方说明为准;高吞吐场景建议缓存+限流+错峰。
**Q:免费接口会被收回或限流吗?**
任何公共服务都可能按频率策略限流,请做好重试与缓存,避免硬刷。
## 相关能力 / 下一步阅读
- [免费接口下如何设计分页缓存,减少重复调用?](https://www.showapi.com/guides/idiom-pagination-cache-2964)
- [成语词典返回字段全解:showapi_res_body 与 ret_code 一文读懂](https://www.showapi.com/guides/idiom-dictionary-response-codes-2964)
- [通过 MCP 在 Cherry Studio / ChatBox 中直接用成语词典](https://www.showapi.com/guides/idiom-mcp-integration-2964)
- **本系列共 15 篇**:查看[成语词典(apiCode=2964)官方指南总目录](https://www.showapi.com/guides/idiom-dictionary-guides-2964)