Overseas access: www.kdjingpai.com
Bookmark Us

Public APIs(公共 API 目录)是 GitHub 上最受欢迎的开源项目之一,专门为软件开发者、前端工程师和数据分析师收集和整理互联网上免费可用的 API(应用程序编程接口)。该项目将数百个公开 API 细分为 50 多个类别,涵盖动物、动漫、商业、加密货币、金融、天气、机器学习、游戏、音乐等众多领域。无论你是需要为个人练手项目寻找真实的测试数据,还是在黑客松比赛中需要快速集成第三方服务,这个列表都能为你节省大量的检索时间。除了提供 API 链接和简介外,该目录最核心的价值在于它详细标注了每个接口的技术规格,包括是否需要身份认证(Auth)、是否支持安全传输协议(HTTPS)以及是否支持跨域资源共享(CORS),帮助开发者在编写代码前就能准确评估接口的可用性。

Function List

  • 海量免费数据源汇总:收录数百个免费可用的 API 接口,并严格按照类别进行首字母(A-Z)字母序排列,方便快速定位。
  • 详细的技术规格标识:每个 API 都在表格中标明了核心开发参数,包括认证要求(Auth)、加密支持(HTTPS)和跨域支持(CORS)。
  • 无认证接口快速筛选:提供大量标注为 “No Auth” 的接口,开发者无需注册账号、无需申请 API Key 即可直接发起请求获取数据。
  • 跨域资源共享(CORS)状态提示:明确指出 API 是否支持跨域请求,极大地提升了纯前端开发者(使用 Vue/React 等框架)的选型效率。
  • 社区驱动持续更新:作为开源项目,全球的开发者每天都会通过提交 PR(Pull Request)来更新失效链接或补充最新的免费 API,确保列表的生命力。
  • 多类别快速导航:提供页面内的锚点目录(Index),点击任意分类即可快速跳转至对应的 API 表格区域。

Using Help

Public APIs 本质上是一个以 Markdown 格式呈现的开源信息汇总列表,无需进行任何复杂的软件安装或本地环境配置即可使用。为了让你能够最大化地利用这个宝库,下面将详细介绍如何阅读该列表的参数指标,并手把手教你如何寻找、测试并将其应用到你的实际代码开发中。

一、 访问与基本导航

  1. direct access:你可以通过浏览器直接访问项目的 GitHub 页面(https://github.com/public-apis/public-apis)。
  2. 使用目录(Index):在页面头部(README 文件开头),你会看到一个按首字母排列的分类目录(如 Animals, Anime, Anti-Malware 等)。如果你正在做一个天气预报 APP,只需在目录中点击 Weather,页面就会自动跳转到底部的天气 API 列表。
  3. 页面内搜索:你也可以直接使用浏览器的快捷键 Ctrl + F(Mac 系统为 Cmd + F),输入你需要的关键字(如 “Image”, “Video”, “Bitcoin”)来全局检索特定功能的 API。

二、 核心参数解读(极其重要)

当你定位到一个 API 表格时,你会看到五列表格。理解这些列的含义是你能否成功调用该 API 的关键:

  1. API:API 的名称,点击该名称即可跳转到该 API 的官方文档网站。
  2. Description(描述):一句话简述这个 API 能提供什么数据或实现什么功能。
  3. Auth(认证方式)
    • No(无):最推荐新手使用的类型。意味着你不需要注册任何账号,直接用代码请求接口就能拿到数据。
    • apiKey:需要你前往该 API 官网注册账号,获取一串密钥(API Key)。在发送请求时,需要将这串密钥放在 URL 参数或请求头(Headers)中。
    • OAuth:需要进行 OAuth 授权流程,通常用于需要读取用户隐私数据的服务(如 GitHub 用户信息、Twitter 发帖等),对接难度较高。
  4. HTTPS
    • Yes:支持加密传输。强烈建议使用此类 API。如果你在 HTTPS 网站下调用 HTTP 的 API,浏览器会直接报错拦截。
    • No:仅支持明文传输,现代浏览器可能会限制这类接口的调用。
  5. CORS(跨域资源共享)
    • Yes:可以直接在前端代码(如 HTML/JS 页面)中通过 fetch 或 axios 发起请求,浏览器不会拦截。
    • No:如果你在纯前端环境请求它,会报跨域错误(CORS error)。此类接口必须通过后端服务器(如 Node.js, Python Flask)去请求,或者使用代理服务器。
    • Unknown:尚未测试,需要你自行尝试。

三、 实战演练:从寻找 API 到代码调用

为了让你能直接上手,我们以“获取一张随机的狗狗图片”为例,完整走一遍流程。

第一步:寻找 API

  1. 在网页目录(Index)点击 Animals 分类。
  2. 浏览表格,找到名为 Dog API 的行。
  3. 观察参数:Description 为 “Based on the Stanford Dogs Dataset”,Auth 为 “No”,HTTPS 为 “Yes”,CORS 为 “Yes”。这说明它可以完全免费、免注册、安全且能直接在前端页面中调用。
  4. strike (on the keyboard) Dog API 链接,进入其官方文档页面,找到其随机获取图片的接口端点(Endpoint),假设为:https://dog.ceo/api/breeds/image/random

第二步:使用浏览器或工具测试接口

  • 浏览器测试:直接复制上述 URL 粘贴到浏览器地址栏并回车。你会看到类似下面的一段 JSON 格式的数据:
    {"message":"https:\/\/images.dog.ceo\/breeds\/hound-english\/n02089973_1132.jpg","status":"success"}
    
  • Postman 测试:如果你有 Postman 等接口测试工具,可以新建一个 GET 请求,填入该 URL 并点击 Send,验证返回结果。

第三步:在你的代码中集成该 API

示例 A:使用 JavaScript (前端 Fetch API)
因为该 API 的 CORS 为 Yes,我们可以直接写一个简单的 HTML 页面并用 JS 调用它:

// 发起 GET 请求
fetch('https://dog.ceo/api/breeds/image/random')
.then(response => {
// 检查请求是否成功
if (!response.ok) {
throw new Error('网络请求失败');
}
// 将响应解析为 JSON
return response.json();
})
.then(data => {
// data.message 中包含了图片的真实URL
console.log('获取到的狗狗图片地址:', data.message);
// 你可以通过 DOM 操作将这张图片展示在网页上
// document.getElementById('dogImage').src = data.message;
})
.catch(error => {
console.error('获取数据出错了:', error);
});

示例 B:使用 Python (后端 Requests 库)
如果你在编写爬虫或后端应用,可以使用 Python 进行请求:

import requests
url = "https://dog.ceo/api/breeds/image/random"
response = requests.get(url)
# 确保请求成功 (状态码 200)
if response.status_code == 200:
data = response.json()
image_url = data.get("message")
print(f"成功获取图片链接: {image_url}")
else:
print("接口请求失败")

四、 如何为项目贡献新的 API

如果你在日常开发中发现了一个绝佳的免费公共 API,但该列表尚未收录,你可以通过以下流程将其添加进去:

  1. Fork 仓库:点击 Public APIs 页面右上角的 Fork 按钮,将项目复制到你自己的 GitHub 账号下。
  2. 检查规范:仔细阅读项目中的 CONTRIBUTING.md 文件。你的 API 必须是免费的(至少有免费额度)、必须有稳定的文档链接。
  3. 修改 README 文件:在你的仓库中,找到对应的分类表格,按照严格的 Markdown 表格格式及字母顺序插入你的 API 行。使用测试工具确认该 API 的 Auth 和 CORS 状态并如实填写。
  4. 提交 PR (Pull Request):完成修改后,向原项目提交一个 Pull Request。等待自动化检查(Linting)和维护者的审核。一旦合并,全世界的开发者就能看到你贡献的数据源了。

application scenario

  1. 黑客松与快速原型开发
    在参加 48 小时黑客马拉松时,时间极其宝贵。开发者可以通过该目录快速找到图像识别、文字转语音或金融汇率相关的免认证 API,迅速搭建出具备真实数据交互的应用原型,而无需耗费精力去搭建数据库或编写爬虫。
  2. 前端与客户端工程师的练手项目
    刚学习完 React、Vue 或是 iOS/Android 开发的学生,需要开发个人作品集(Portfolio)来找工作。通过该目录,他们可以轻松找到天气数据、电影资料库(如 TMDb)、新闻聚合等 API,开发出拥有实际展示内容的精美天气应用或影评客户端。
  3. 数据可视化与分析实战
    数据分析师和机器学习爱好者可以利用目录中的 “Finance”(金融)、”Cryptocurrency”(加密货币)或 “Open Data”(政府公开数据)分类下的 API 获取实时或历史的结构化数据,用于制作商业可视化看板、走势预测图表或训练模型。
  4. 自动化脚本与工具链开发
    开发者可以使用分类中的 “URL Shorteners”(短链接服务)、”Validation”(邮箱/手机号验证)等 API 接口,编写快捷指令(Shortcuts)、Alfred 工作流或 Python 自动化脚本,提升日常办公和运营效率。

QA

  1. 列表里的 API 都是完全免费的吗?
    不全是绝对免费。大多数标注为 “No Auth” 的 API 是完全免费使用的;而一些标注为 “apiKey” 的 API 采用的是“免费增值”模式(Freemium),即它们提供一定额度的免费调用次数(如每月免费 1000 次),超出部分才需要付费。使用前请务必阅读对应 API 的官方文档限制说明。
  2. 什么是 CORS?如果标注为 No 我还能用吗?
    CORS 全称是跨域资源共享。由于浏览器的同源策略限制,如果一个 API 不支持 CORS,你直接在前端网页(JS)里发起请求会被浏览器拦截报错。如果 CORS 标注为 No,你依然可以使用它,但必须通过后端语言(如 Python, Java, Node.js)或者配置反向代理(Nginx/Webpack Proxy)来进行调用。
  3. 如果我发现列表里某个 API 的链接打不开了怎么办?
    由于互联网服务变动频繁,部分个人或小团队维护的 API 可能会停止运营。如果你发现链接失效,可以在该 GitHub 仓库中提交一个 Issue 反馈,或者直接 Fork 项目删除失效行后提交 Pull Request(PR),帮助社区维护数据的准确性。
  4. 我需要注册 GitHub 账号才能使用这个目录吗?
    不需要。阅读列表、点击链接并查看文档都是完全公开和无需登录的。但如果你想参与项目的维护(提交修改或新增 API)、或者对项目点击 Star 进行收藏,则需要一个 GitHub 账号。
  5. 有些 API 的 CORS 状态标注为 Unknown,这是什么意思?
    这表示最初添加该 API 的贡献者没有对其进行详细的跨域请求测试。遇到这种情况,你需要自己在浏览器的控制台(Console)中写一小段 fetch 代码进行尝试,以验证其实际的跨域支持情况。
0Bookmarked
0kudos

Recommended

Can't find AI tools? Try here!

Enter keywords.Accessibility to Bing SearchYou can find AI tools on this site quickly.

Top