用户登录

技术文章

外部链接将在新标签页打开。

免费 API 推荐与实测:没有可核验记录时,先写清核验清单

一句话回答

本文说明:由于本次没有可核验的测试记录、环境说明或接口清单,因此无法给出“免费 API 推荐榜”,也不能声称“实测”。文章把“免费”拆成鉴权、配额与限流口径、数据来源与许可、可用性与变更四类需要核对的事实,给出一套最小核验步骤和一份未执行的调用骨架,用于把不确定性写进代码,而不是先写成结论。

核心要点 TL;DR
  • 没有可核验测试记录时,不应输出接口推荐榜;先核对四类事实,再谈接入。
  • 配额单位与统计窗口不同的接口不可横向比较,缺少统一指标时留空。

先回答标题里的问题:这篇不提供免费 API 推荐榜,也不声称做过实测。本次可用的材料只有主题标题,没有接口清单、测试环境、调用记录或响应样本,因此任何“某接口免费用、额度多少、现在是否还能调”的说法都无法在此成立,相关事实一律待核实。能写清楚的是另一件事:在把任何一个免费接口写进代码之前,应当按什么顺序核对哪些事实,以及如何把这些不确定性留在代码里,而不是先写成结论。

“免费”不是一项属性,而是四项独立条件#

一个接口能不能免费用,通常取决于四件会各自变化的事:谁签发凭据、额度怎么计数、数据从哪里来、服务方何时修改条款。其中任意一项变化,都可能让昨天能跑通的调用今天失败。这是推断,不是对某家服务的判断——具体服务是否如此,需要按下面的清单逐项核实。

二手聚合清单最常缺的正是这几项:不写统计时间窗,不写适用的接口版本,也不写数据来源。检索到一条条目、看到一张截图,都不等于该条目当前仍然有效。

接入前的四类核对项#

1. 身份与鉴权

  • 凭据类型:无鉴权、API Key、OAuth,还是需要签名;
  • 是否绑定来源域或 IP,换环境是否需要重新登记;
  • 密钥能否轮换,是否区分测试与生产凭据;
  • 凭据放在哪一层:浏览器直连、自己的后端,还是构建期注入。

2. 配额与限流口径

  • 计数单位是请求数、数据量,还是调用次数乘权重;
  • 窗口是每分钟、每天还是每月,是否按自然月重置;
  • 超额是直接拒绝、排队,还是降级返回部分数据;
  • 是否在响应头里返回剩余额度,并发是否单独限制。

口径不同的接口不能横向比较。没有统一指标时,比较表里的“额度”一列应留空,而不是拼成一个数字。

3. 数据来源与许可

  • 数据由谁维护、多久更新一次;
  • 是否允许商用、是否允许再分发与缓存;
  • 是否要求署名,署名放在哪里;
  • 接口“免费”是否只覆盖调用,而不覆盖数据使用。

4. 可用性与变更

  • 是否有状态页、变更日志或弃用通知渠道;
  • 错误响应是否有稳定结构,还是纯文本;
  • 弃用是否承诺提前通知期,期限多长。

一次最小核验怎么走#

  1. 读官方文档,而不是聚合清单;清单只用来发现候选。
  2. 发一个最小请求,记录日期、请求参数和原始响应。
  3. 测边界:缺参数、错误凭据、超配额时的返回分别是什么。
  4. 确认错误体与额度响应头是否稳定,能否据此写判断逻辑。
  5. 把结果写进项目 README 或测试用例,标注核对日期。
  6. 设一个复查周期,条款变更时重新走一遍。

未执行的示例:把待核实项写进骨架#

下面的代码没有实际执行,输出不作为结果,域名与密钥均为占位。它的作用是把“错误体结构、额度头名称、超限状态码”这三处不确定性摆在代码里,等核验后再替换。

// 未执行示例:仅示意调用骨架。环境假定 Node.js 18+(内置 fetch),
// 实际运行时版本、端点与响应结构均待核实。
const BASE = 'https://api.example.com'; // 占位域名

async function call(path, params = {}) {
  const url = new URL(path, BASE);
  for (const [k, v] of Object.entries(params)) url.searchParams.set(k, v);

  const res = await fetch(url, {
    headers: { Authorization: 'Bearer YOUR_KEY' }, // 占位密钥
  });

  // 待核实:错误体是 JSON 还是文本;额度响应头的字段名;
  // 超限返回 429 还是 200 加降级内容。
  if (!res.ok) {
    return { ok: false, status: res.status, body: await res.text() };
  }
  return { ok: true, status: res.status, body: await res.json() };
}

能下的结论与不能下的结论#

可以下的窄结论是方法层面的:免费接口的可用性由鉴权、配额口径、数据许可和变更策略共同决定;在没有核验记录时,先写清单、再写调用,比先写“推荐”更省返工。不能下的结论包括:某接口在 2026 年 11 月仍然免费可用、某个具体额度数值、某个延迟或成功率对比——这些都需要可核验的测试记录,本次没有,均待核实。

如果后续要补“实测”,需要同时给出:测试时间、运行环境与客户端版本、请求样本与次数、原始响应片段、失败与降级的处理方式。缺任何一项,结论就应缩小到“该次调用观察到的现象”。

作者:沐小悠

本文约 5 分钟读完 · 关键词:免费 API、API 核验、限流口径、鉴权、数据许可

更多文章 GET 示例接口

「」标签下的其他文章