📌 项目地址:public-apis/public-apis | ⭐ 461,314 颗星 | 🔧 Python | 📜 未标注
这个项目到底是什么
public-apis/public-apis 是一个由社区手动维护的公共 API 列表,收录了分类清晰的免费 API 资源。它的 GitHub Star 数超过 46 万,是目前最受关注的开发者资源仓库之一。注意,这个仓库本身不是一个 API 服务,而是一份“索引”——它告诉你哪些免费 API 存在、能做什么、去哪里访问。
仓库的 README 开头有大段 APILayer 的商业推广,这是仓库维护方(APILayer 员工参与)的商业行为。但列表本身是独立于这些付费服务的,绝大多数条目指向第三方开发者和机构提供的公开接口,并非全部来自 APILayer。
你能从中获得什么
简单说:当你的项目需要一个“获取天气”“解析邮箱”“查询汇率”“搜索电影”之类的现成接口时,直接来这个仓库按分类翻。
列表按领域划分,包括动物、动漫、反恶意软件、艺术与设计、认证与授权、区块链、书籍、商业、日历、云存储与文件、连续媒体、货币、数据验证、开发工具、字典、娱乐、环境、事件、金融、食品与饮料、游戏与竞赛、地理位置、政府、健康、工作、机器学习、邮件、音乐、新闻、开放数据、专利、摄影、科学、安全、购物、社交、体育、交通、旅行、天气等。每个条目基本都包含 API 名称、描述、是否需要认证、是否支持 HTTPS、以及对应的 CORS 支持情况。
这意味着你可以:
- 快速验证某个需求有没有免费接口可用。
- 找到某个知名 API 的官方入口,避免搜到第三方包装站。
- 给自己的“练手项目”找一个真实数据源,而不是一直用假数据。
实际用法:没有安装命令,但有一套使用流程
这个仓库没有提供库或 CLI,所以不存在 pip install public-apis 这类命令。它的“用法”就是浏览和检索。
你可以在 GitHub 上直接打开仓库页面,按分类查找。如果条目太多,用仓库的搜索功能,按关键词过滤。README 里每个条目通常带链接,点进去就是该 API 的官方文档。比如你想找汇率 API,在搜索框输入“currency”,就能看到 ExchangeRate-API、Frankfurter 等条目,点击链接跳到对应官网去注册 key、查看请求格式。
如果你在本地阅读,可以 clone 仓库到任意目录:
git clone https://github.com/public-apis/public-apis.git
然后直接用编辑器查看 README.md 文件。README 本身没有详细到“每个 API 如何调用”,所以选定某个 API 后,真正发起请求的方式必须以该 API 官方文档为准。
这个仓库也欢迎社区贡献。如果你想提交新 API、修正失效链接或更新描述,可以在仓库中发起 Pull Request,贡献指南里有具体的格式要求,例如新增条目需要注明 API 名称、描述、认证方式、HTTPS 和 CORS 状态。
和同类工具的区别
市面上还有 ProgrammableWeb、RapidAPI 这类 API 目录,但它们的模式不同:
- RapidAPI 是一个平台,很多 API 需要通过它的统一网关调用,key 和计费都在 RapidAPI 上。
- ProgrammableWeb 曾经是大型 API 目录,但已停止更新,很多链接已失效。
- public-apis 的价值在于“纯静态、可持续维护、社区驱动”。它不托管 API,不提供统一调用接口,只做链接和筛选。优点是没有厂商锁定,链接直接指向原始提供方;缺点是质量完全靠社区维护,偶尔会有失效条目或描述过时。
因此,它更适合“查漏补缺”的场景:你已经知道某个 API 存在,但想看看有没有更好的替代品;或者你刚有一个想法,想快速找找有没有现成的数据源,而不想注册一堆聚合平台账号。
需要注意的事项
- “免费”不等于“无限制”。很多免费 API 有请求频率上限、需要注册获取 API key、仅限非商业用途。使用前务必阅读每个 API 自己的条款。
- 列表里存在商业推广。README 顶部和部分条目会提示 APILayer 的服务,这些是付费产品,和仓库本身收集的免费 API 不是同一回事。别把“收录在 public-apis”等同于“完全免费且无商业背景”。
- 部分条目可能失效。由于手动维护,个别链接可能 404 或接口下线。遇到这种情况,可以通过 GitHub Issues 反馈,让维护者移除或更新。
- CORS 和认证状态不一定准确。条目里的“Auth”和“CORS”字段是贡献者填写的,可能有滞后。在实际开发前,最好用 curl 或 Postman 验证一下。
结论:public-apis 是一个高质量的“API 搜索引擎”,不提供任何调用能力,但能帮你省下大量找接口的时间。如果你正在开发需要外部数据的小项目,先来这里搜一圈再决定要不要自己爬数据或付费买服务。