几个能直接用的免费公共 API

几个能直接用的免费公共 API
知识混子想给博客加个小功能、或者练手写个脚本时,最省事的起点就是找一个现成的公共 API。
但这类清单有个通病:抄来抄去,大半已经死了。
所以我干脆自己挨个测了一遍。下面每一个都是实测返回 200 的,附上可以直接复制的命令。文章末尾还有一节专门列测了但没通的,免得你也去踩。
先说清楚三件事
- 免费的都不保证稳定。 这些接口大多靠个人或小团队维护,哪天停了很正常。
- 注意调用频率。 很多站有隐形限流,别写个循环去猛刷。
- 别把免费接口用在关键业务上。 练手、做玩具、给个人博客加点小功能没问题;正经产品还是走付费或者自建。
关于速度,我不写具体毫秒数了。原因是同一批接口隔几天重测,数字能差三倍——比如 Open-Meteo 第一次测不到一秒,第二次测三秒多。那是网络波动,不是接口变慢了。
所以下面只用四档描述:很快(0.3 秒内)、正常(一秒上下)、偏慢(要等几秒)、很慢(十秒级)。这是我在河北电信这边测的,你那边不一定一样。
一、天气
Open-Meteo —— 免费、不要 key、最省心
1 | https://api.open-meteo.com/v1/forecast?latitude=40.95&longitude=117.96¤t=temperature_2m |
这是我目前最推荐的天气接口。 不需要注册、不需要 key、没有请求头要求,传经纬度就返回 JSON。非商业用途免费,每天有一万次左右的额度,个人用完全够。
速度正常。
wttr.in —— 用 curl 就能看的天气
1 | curl https://wttr.in/Beijing |
特点是可以直接在终端里看,它会渲染成 ASCII 图形。加 ?format=j1 就是标准 JSON。
偏慢——因为它要做终端渲染,JSON 那个端点返回三十多 KB,也要等好几秒。适合偶尔手动查,不适合放进页面里实时调用。
itboy 天气(中国天气网数据)—— 国内城市更准
1 | http://t.weather.itboy.net/api/weather/city/101090101 |
中国天气网的数据源,城市用编号表示(101090101 是承德)。返回七天预报,字段是中文的,直接就能用。
很快,是这批里最快的一个。
uapis 天气 —— 支持中文城市名
1 | https://uapis.cn/api/v1/misc/weather?city=承德 |
可以直接传中文城市名,省掉查城市编号的步骤。速度正常。
⚠️ 这个接口明确禁止浏览器跨域调用,带
Origin请求会返回 403。要用的话得走服务端转发(本站的小板报就是这么做的)。
二、文字内容
一言 Hitokoto
1 | https://v1.hitokoto.cn/?encode=json |
随机返回一句台词、歌词或诗句,带出处。老牌接口,一直很稳。支持按分类筛选,比如 ?c=k 是哲学类。
速度正常,不算快但也不拖后腿。
今日诗词
1 | https://v2.jinrishici.com/one.json |
每次返回一句诗词,带作者、朝代和完整全诗,字段很全。很快。
注意它还有个 /sentence 接口需要 token,我测的时候返回 400,用 one.json 这个就行。
三、开发测试用
JSONPlaceholder —— 假数据
1 | https://jsonplaceholder.typicode.com/todos/1 |
写前端时需要一个「看起来像真数据」的接口,就用它。提供 posts、comments、users、todos 等几套假数据,支持 GET/POST/PUT/DELETE,会返回正确的状态码但不会真的保存。
速度正常。
httpbin —— 调试 HTTP 请求
1 | https://httpbin.org/get |
你发什么它回什么——把收到的请求头、参数、来源 IP 原样返回。调试请求头、验证代理、测试跨域时特别有用。还有 /status/404、/delay/3 这类可以造各种情况的端点。
速度正常。
npmmirror 镜像 —— 查 npm 包信息
1 | https://registry.npmmirror.com/hexo/latest |
想在自己页面上显示某个依赖的最新版本号时很有用。用国内镜像而不是 registry.npmjs.org,快很多。
很快。
四、信息查询
GitHub API —— 不要 key 也能用
1 | https://api.github.com/repos/microsoft/vscode |
查仓库信息、star 数、最近提交,不登录也能调,只是有频率限制(每小时 60 次)。要更高的额度可以申请一个 token。
速度正常。
ip-api / ipinfo —— 查 IP 归属地
1 | http://ip-api.com/json/1.1.1.1 |
两个都免费、都不要 key。
ip-api返回中文友好(有country、regionName、city、isp),速度正常ipinfo.io不带 key 每小时 1000 次,字段少一点但更规范,很快
开放汇率
1 | https://open.er-api.com/v6/latest/CNY |
返回人民币对其他所有货币的汇率,不要 key。数据每天更新一次,够用。速度正常。
五、我测了但没通的
这部分可能比上面更有用。
| 接口 | 结果 |
|---|---|
**api.vvhan.com 整个域名** |
全部 502 / 超时 |
v2.jinrishici.com/sentence |
400,提示需要 token |
timor.tech(农历节假日) |
403,Cloudflare 人机验证拦截 |
1.1.1.1/cdn-cgi/trace |
15 秒超时,网络不可达 |
bing.img.run(必应壁纸) |
无响应 |
第一个要特别提醒:vvhan 是国内各种「免费 API 大全」文章里出现频率极高的一个站,毒鸡汤、60 秒读世界、随机二次元图、每日壁纸这些接口全在它上面。我测了它三个端点,一个都没通。
不是说它永久挂了,但如果你照着老文章抄接口,很可能抄到的就是一整排死链接。
这也正是我为什么要挨个测一遍。
六、怎么自己验证一个接口
写脚本之前,先用一行命令确认它活着:
1 | curl -s -o /dev/null -w "%{http_code} %{time_total}s\n" "接口地址" |
看两件事:状态码是不是 200,以及耗时能不能接受。
再加 -L 跟随跳转,加 -m 10 设超时。别不加超时就去批量测,遇到不响应的地址会一直卡着——上面那个 1.1.1.1 就让我干等了十五秒。
我自己测这批接口用的就是这个办法:20 个候选,13 个能通。
最后
上面这些接口我只验证了「此刻能通」,没有验证长期可用性。用之前还是建议自己再跑一次上面那行 curl。
如果你知道别的还能用的公共接口,欢迎在评论区补充——特别是那种「文章里早就有人在推、但实际已经挂了」的,避雷比推荐更有价值。





