正在启动平台

全球地震速报 API 接入文档earthquake

汇聚全球地震监测数据,按时间范围与震级档位查询近期地震事件,返回震级、震源深度、经纬度、发生时间、烈度、海啸提示与警报级别等结构化信息。 支持按 hour/day/week/month 时间范围与 all/significant/4.5/2.5/1.0 震级档位组合查询,可再按最小震级过滤、按时间或震级排序并限制返回条数。数据每分钟更新(网关缓存 60 秒),适合地震速报播报、防灾监控大屏、科研数据采集等场景。地名为国际标准英文描述,覆盖全球(含中国境内较大地震)。

1. 基本信息

接口地址https://v1.apizero.cn/api/earthquake
请求方法POST
分类life
提供方极数本源
计费模式免费试用
单次消耗0 积分
起步价
QPS 限制10 req/s
每日免费额度1000 次(已认证用户)
匿名每日额度500 次(无 API Key)
VIP 免费
调用次数

2. 认证

需要 API Key(请求头 Authorization: Bearer <你的 API Key>)。完全免费:登录用户每日 1000 次、匿名每日 500 次。

获取 API Key:登录 https://apizero.cn/account/keys

3. 请求参数

参数名类型必填说明示例
periodstring时间范围:hour=1小时 / day=1天 / week=7天 / month=30天day
levelstring震级档位:all=全部 / significant=显著地震 / 4.5=M4.5+ / 2.5=M2.5+ / 1.0=M1.0+all
min_magnitudenumber最小震级过滤(0=不过滤)4.5
orderstring排序:time=最新在前 / magnitude=震级由大到小time
limitint返回条数上限(1~500)100

4. 请求头

Header类型必填说明示例
AuthorizationstringBearer <你的 API Key>
Content-Typestring请求体格式(POST JSON 时)

5. 请求示例

以下 5 种语言示例都是可直接运行的,只需把 YOUR_API_KEY 替换为实际 Key。

cURL

curl -X POST "https://v1.apizero.cn/api/earthquake" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "period": "day",
  "level": "all",
  "min_magnitude": "4.5",
  "order": "time",
  "limit": "100"
}'

Python

import requests

resp = requests.request(
    "POST",
    "https://v1.apizero.cn/api/earthquake",
    headers={"X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
    json={
    "period": "day",
    "level": "all",
    "min_magnitude": "4.5",
    "order": "time",
    "limit": "100",
},
    timeout=15,
)
resp.raise_for_status()
print(resp.json())

JavaScript (Node.js)

// Node.js 18+ / 浏览器原生 fetch
const res = await fetch("https://v1.apizero.cn/api/earthquake", {
  method: "POST",
  headers: {
    "X-Api-Key": "YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "period": "day",
    "level": "all",
    "min_magnitude": "4.5",
    "order": "time",
    "limit": "100"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data = await res.json();
console.log(data);

Go

package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
)

func main() {
	body := []byte(`{"period":"day","level":"all","min_magnitude":"4.5","order":"time","limit":"100"}`)
	req, _ := http.NewRequest("POST", "https://v1.apizero.cn/api/earthquake", bytes.NewBuffer(body))
	req.Header.Set("X-Api-Key", "YOUR_API_KEY")
	req.Header.Set("Content-Type", "application/json")

	resp, err := http.DefaultClient.Do(req)
	if err != nil { panic(err) }
	defer resp.Body.Close()
	out, _ := io.ReadAll(resp.Body)
	fmt.Println(string(out))
}

PHP

<?php
$payload = json_encode([
    "period" => "day",
    "level" => "all",
    "min_magnitude" => "4.5",
    "order" => "time",
    "limit" => "100",
], JSON_UNESCAPED_UNICODE);

$ch = curl_init("https://v1.apizero.cn/api/earthquake");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_POSTFIELDS     => $payload,
    CURLOPT_HTTPHEADER     => [
        "X-Api-Key: YOUR_API_KEY",
        "Content-Type: application/json",
    ],
    CURLOPT_TIMEOUT        => 15,
]);
$body = curl_exec($ch);
curl_close($ch);

$data = json_decode($body, true);
print_r($data);

6. 响应字段

字段类型说明示例
summary.countnumber本次返回的地震条数
summary.totalnumber过滤后的总条数(裁剪前)
summary.max_magnitudenumber本次结果中的最大震级
summary.generated_atstring数据生成时间(北京时间)
earthquakes[].magnitudenumber震级
earthquakes[].magnitude_typestring震级类型(如 mww/ml/md)
earthquakes[].placestring震中位置描述(英文)
earthquakes[].timestring发生时间(北京时间)
earthquakes[].timestampnumber发生时间(毫秒时间戳)
earthquakes[].longitudenumber震中经度
earthquakes[].latitudenumber震中纬度
earthquakes[].depth_kmnumber震源深度(千米)
earthquakes[].alertstring警报级别 green/yellow/orange/red(无则 null)
earthquakes[].tsunamibool是否可能引发海啸
earthquakes[].feltnumber有感报告人数(无则 null)
earthquakes[].intensity_mminumber仪器测定烈度 MMI(无则 null)
earthquakes[].significancenumber事件显著性评分(0~1000)
earthquakes[].statusstring测定状态:自动测定 / 人工复核
earthquakes[].event_typestring事件类型:地震 / 爆炸 / 火山喷发 等

7. 响应示例

{
  "code": 0,
  "msg": "成功",
  "data": {
    "summary": {"count": 100, "total": 240, "max_magnitude": 6.5, "period": "day", "level": "all", "generated_at": "2026-07-01 12:45:33"},
    "earthquakes": [
      {
        "id": "us7000abcd",
        "magnitude": 6.5,
        "magnitude_type": "mww",
        "place": "34 km WSW of Sarangani, Philippines",
        "time": "2026-07-01 09:12:30",
        "timestamp": 1782877783910,
        "longitude": 125.11,
        "latitude": 5.62,
        "depth_km": 42.3,
        "alert": "green",
        "tsunami": false,
        "felt": 49,
        "intensity_mmi": 5.2,
        "significance": 650,
        "status": "人工复核",
        "event_type": "地震"
      }
    ]
  },
  "request_id": "abc123"
}

8. 错误码

codestatus说明
4000VALIDATION_ERROR参数格式错误
4015KEY_REQUIRED缺少 API Key
4030QUOTA_EXCEEDED今日免费额度已用完
5020UPSTREAM_ERROR地震数据服务暂不可用
5021UPSTREAM_INVALID地震数据格式异常

9. 变更日志

  • v1.0(2026-07-01)
    • 首次上线:支持时间范围 + 震级档位查询,返回震级/深度/坐标/烈度/海啸/警报等完整字段。

常见问题

全球地震速报 接口怎么免费使用?

未登录用户每个 IP 每天 500 次免费。登录用户创建 API Key 后每天 1000 次免费,超额部分按点数计费(0 点/次)。

全球地震速报 支持哪些调用方式?

接口使用 POST 请求。文档提供 cURL、Python、JavaScript (Node.js)、Go、PHP 五种语言的可运行示例。也可以下载 /openapi.json 导入 Postman / Insomnia / Apifox 反向生成 SDK。

调用不限额么? QPS 是多少?

本接口 QPS 限制 10 req/s,每个 API Key 每日免费 1000 次。需要更高额度可升级 VIP 套餐或联系售后提高 QPS。

这个接口跟自己直连上游有什么区别?

极数本源 作为中间层提供:统一鉴权(一个 Key 调所有接口)、统一计费(点数制)、统一限流、统一错误码、多上游自动切换。免去逐个对接上游、维护 Key、统计调用量的运维成本。