技术博客
免费地震信息:5 分钟从注册到调通第一条地震记录

免费地震信息:5 分钟从注册到调通第一条地震记录

作者: 万维易源
2026-09-03
地震信息快速接入Python示例免费接口
# 免费地震信息:5 分钟从注册到调通第一条地震记录 - **接口/接入点**:免费地震信息 · 2274-1 - **是否免费**:是(注册即免费额度,有档位限制) - **请求方式**:POST / GET - **返回格式**:JSON - **适用人群**:新注册用户、初级开发者、科普爱好者 - **阅读时间**:约 6 分钟 ## 核心要点 - 注册易源账号、在控制台拿到 AppKey,是调用所有 ShowAPI 接口的前置条件。 - 接口地址为 `https://route.showapi.com/2274-1?appKey={your_appKey}`,请求体用 `application/x-www-form-urlencoded`。 - 一次成功调用会返回 `showapi_res_body.earthquakes[]`,里面是当天/指定日期的全球地震记录。 ## Why:这跟我有什么关系 你可能想做这些事:给学校做一份「本月全球地震」科普海报、在个人网站挂一个「近期地震」小工具、或者在写论文时拉一批历史震例做统计。这个接口免费、无需商务洽谈,注册即用,是门槛最低的历史地震数据来源之一。 注意:它**不提供实时预警**,只查询已发生的历史地震(近一年内,环太地区每分钟更新)。如果你需要的是「地震立刻报警」,这个接口不合适。 ## What:前置条件与接口速览 | 项 | 值 | |----|----| | 接口地址 | `https://route.showapi.com/2274-1?appKey={your_appKey}` | | 接入点 | 2274-1(默认分组「地震信息」) | | 请求方式 | POST / GET | | 鉴权 | URL 参数 `appKey` | | 计费 | 免费(档位限制见 [免费 API 说明](https://www.showapi.com/free-api)) | | 更新频率 | 环太地区每分钟更新 | | 集成能力 | MCP(`showapi-mcp-2274`)、OpenAPI 3.0 | 前置条件:① 已注册 [showapi.com](https://www.showapi.com) 账号;② 在 [控制台 → 我的应用](https://www.showapi.com/console#/myApp) 拿到 AppKey。 ## How:第一次调用 下面以查询 `2025-01-20` 当天地震为例(该日全球记录较多,便于观察返回结构)。`date` 为选填,格式 `yyyyMMdd`,按北京时间理解。 ### Python(requests) ```python import requests APP_KEY = "YOUR_APPKEY" # 替换为你的真实 AppKey url = "https://route.showapi.com/2274-1" params = {"appKey": APP_KEY} data = {"date": "20250120"} # 选填,北京时间 yyyyMMdd try: r = requests.post(url, params=params, data=data, timeout=10) r.raise_for_status() body = r.json().get("showapi_res_body", {}) if body.get("ret_code") != 0: print("未找到:", body.get("remark")) else: print("共", body.get("count"), "条") for eq in body.get("earthquakes", []): print(eq["location"], "震级", eq["mag"], "深度", eq["dep"], "km") except Exception as e: print("请求失败:", e) ``` ### cURL ```bash curl -X POST "https://route.showapi.com/2274-1?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ --data-urlencode "date=20250120" ``` ### Node.js(fetch) ```javascript const APP_KEY = "YOUR_APPKEY"; const url = `https://route.showapi.com/2274-1?appKey=${APP_KEY}`; const resp = await fetch(url, { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ date: "20250120" }), }); const json = await resp.json(); const body = json.showapi_res_body; if (body.ret_code !== 0) { console.log("未找到:", body.remark); } else { console.log("共", body.count, "条"); body.earthquakes.forEach((eq) => { console.log(eq.location, "震级", eq.mag, "深度", eq.dep, "km"); }); } ``` ## 返回示例与解析 ```json { "showapi_res_code": 0, "showapi_res_id": "7276caf22b4c459597f5644b744e0bef", "showapi_res_body": { "ret_code": 0, "count": 1, "remark": "", "earthquakes": [ { "timestampLocal": 1737361046031, "location": "台湾玉井北12 公里处", "mag": 6, "timeUTC": "2025-01-20 16:17:26", "timestampUTC": 1737361046031, "lng": 120.47, "from": "usgs", "timeLocal": "2025-01-20 16:17:26", "dep": 10, "lat": 23.23 } ] } } ``` 关键字段:`ret_code`(0=找到,-1=没找到/出错)、`count`(条数)、`earthquakes[]` 每条含 `location`(位置)、`mag`(震级)、`lat`/`lng`(经纬度)、`dep`(深度)、`from`(数据来源)、`timeLocal`/`timeUTC`(时间)。完整字段见 [免费地震信息:返回字段全解](https://www.showapi.com/guides/earthquake-info-response-fields-2274)。 ## 进阶 / 边界 - **没传 date 会怎样?** 实测不传 date 时返回「最近几条」全球记录(默认最新),适合做「近期地震」展示;要查特定日期务必传 `date`。 - **area 参数是个坑**:文档说可按省名筛选,但实测 `area=云南` 仍返回美国地震,当前**未按省名过滤**。正确做法是先用 `date` 框定时间,再在客户端按 `location` 自行过滤。详见 [date 与 area 参数使用指南](https://www.showapi.com/guides/earthquake-info-params-guide-2274)。 - **免费额度**:注册即免费,但有调用档位限制,生产环境注意控制频率(见 [缓存与频率最佳实践](https://www.showapi.com/guides/earthquake-info-caching-best-practice-2274))。 ## FAQ **Q1:返回 ret_code = -1 是什么意思?** 表示「没有找到或出错」。先看 `remark` 字段的文字说明;常见原因是该日期/地区确实没有地震记录。注意 `ret_code` 是业务码,在外层 `showapi_res_code`(系统码,0 表示请求成功)正常的前提下再看它。 **Q2:一定要用 POST 吗?GET 行不行?** 文档标明支持 POST 和 GET 两种方式。用 GET 时把 `date`、`area` 直接拼到 URL 查询参数即可,鉴权 `appKey` 同样走 URL 参数。 **Q3:为什么我拿不到数据,但也没有报错?** 先确认 `showapi_res_code` 是否为 0(系统层成功)。若为 0 但 `ret_code` 为 -1,说明请求成功只是「没匹配到记录」。另请确认 AppKey 已开通该接口免费额度。 **Q4:这个接口能实时预警吗?** 不能。文档明确「不提供实时预警」,它只查询已发生的历史地震(近一年内)。需要实时告警请使用专业地震预警服务。 ## 相关能力 / 下一步阅读 - [免费地震信息:返回字段全解(ret_code / mag / from 一文读懂)](https://www.showapi.com/guides/earthquake-info-response-fields-2274) - [免费地震信息:date 与 area 参数使用指南(含实测筛选坑)](https://www.showapi.com/guides/earthquake-info-params-guide-2274) - [免费地震信息:做一个「全球近期地震」查询页(前端实战)](https://www.showapi.com/guides/earthquake-info-recent-quakes-app-2274) - **本系列共 14 篇**:查看[免费地震信息指南总目录](https://www.showapi.com/guides/earthquake-info-guides-2274)