BG5.MY · 开放 API v1 返回地图 我的 Key 与用量

快速开始

数据来自全球 APRS-IS 与公开数据源,仅供个人与非商业用途;请勿高频轮询全量数据,建议按需拉取并本地缓存。

① 到 用户中心 → 开发者 / 开放 API 创建 Key(余额 ≥ ¥10.00 才能创建)。

② 调用时把它放进请求头:

curl -H "Authorization: Bearer aprs_你的Key" \
     "https://bg5.my/open/v1/stations?bbox=100,20,120,30&limit=50"

也支持 ?key=aprs_xxx 或请求头 X-Api-Key/open/v1/index.php/stations/open/v1/?ep=stations 等价。

接口列表

共 9 个接口。带 read 的只需基础权限,alertssatpass 需要在创建 Key 时勾选对应权限。

GET https://bg5.my/open/v1/status read

站点与数据源状态 —— 返回各数据源最新时间、台站/报文总数,适合做健康检查。

无参数

GET https://bg5.my/open/v1/stations read

台站实时位置 —— 返回台站呼号、坐标、速度、航向、海拔、注释、中继路径与最后信标时间。

参数说明
bbox经度最小,纬度最小,经度最大,纬度最大(可选)
minutes只要最近 N 分钟有信标的台站(默认 60,最大 1440)
limit返回条数(默认 200,最大 2000)
kind类型过滤:0固定 1移动 2气象 3物体 4其他(可选)

GET https://bg5.my/open/v1/station read

单个台站详情 + 轨迹 —— 返回该台站最新状态与轨迹点序列,可直接画轨迹线。

参数说明
call呼号(必填)
hours轨迹回看小时数(默认 12,最大 720)

GET https://bg5.my/open/v1/tracks read

批量轨迹 —— 返回多条轨迹的抽稀点序列,适合批量绘制。

参数说明
minutes时间窗分钟(默认 60)
bbox范围(可选)
calls指定呼号,逗号分隔(最多 20 个,可选)

GET https://bg5.my/open/v1/sats read

卫星星下点 —— 返回卫星/空间站的星下点经纬度、高度、速度。

参数说明
minutes位置新鲜度(默认 10 分钟)

GET https://bg5.my/open/v1/stats read

站点统计 —— 台站数、轨迹点、报文数、航空器/船舶/卫星数量等。

无参数

GET https://bg5.my/open/v1/alerts alerts

异常告警 —— 返回规则+AI 判定的异常告警(位置跳变、气压骤降、大风、强降雨等),可对接你自己的告警系统。

参数说明
hours回看小时(默认 24)
min最低等级 1提示 2注意 3严重

GET https://bg5.my/open/v1/satpass satpass

卫星过境预报 —— 基于 SGP4 推算过境时刻、最高仰角、方位与持续时间。

参数说明
targetISS 或 NORAD 编号(默认 ISS)
lat观测点纬度(必填)
lng观测点经度(必填)
hours未来小时数(默认 24,最大 72)
min_el最低仰角(默认 10 度)

GET https://bg5.my/open/v1/usage read

用量与余额(本接口不计费) —— 返回本 Key 今日用量、每日免费额度剩余、包月配额与账户余额,建议每小时检查一次。

无参数

计费与配额

每日免费额度1000 次 / 账号 / 天(先吃免费额度,不扣钱)
按量计费¥0.02 / 千次(累计满 1000 次从余额扣一次;错误响应不计费
包月配额¥99.00 / 月,含 1,000,000 次;超出后按量计费
限流60 次 / 分钟 / Key,50,000 次 / 天 / Key,超限返回 429
余额不足返回 402 并给出提示;充值后重试即可
用量自查GET https://bg5.my/open/v1/usage(该接口不计费)

在线试跑

填入你的 Key 与参数,直接看返回(浏览器内调用,Key 不会离开你的浏览器)。

等待请求…

错误码

HTTP含义 / 处理建议
401Key 缺失或无效 → 检查 Authorization: Bearer 是否正确、Key 是否被吊销
402余额不足 → 到用户中心充值
403权限不足或来源 IP 不在白名单 → 重新创建含对应权限的 Key
404接口或对象不存在(如台站无记录)
429超过限流 → 按响应头 Retry-After 退避重试
503开放 API 临时关闭 → 联系管理员

代码示例

Python

import requests

KEY = "aprs_你的Key"
r = requests.get("https://bg5.my/open/v1/stations",
                 params={"bbox": "100,20,120,30", "minutes": 30, "limit": 100},
                 headers={"Authorization": f"Bearer {KEY}"}, timeout=20)
data = r.json()["data"]
for s in data["list"][:5]:
    print(s["call"], s["lat"], s["lng"], s["comment"])

JavaScript(浏览器 / Node 18+)

const r = await fetch("https://bg5.my/open/v1/stations?minutes=30&limit=100", {
  headers: { "Authorization": "Bearer aprs_你的Key" }
});
const { data } = await r.json();
console.log(data.count, data.list[0]);

响应格式

{
  "code": 0,              // 0 成功,其余为 HTTP 状态码
  "msg": "ok",
  "data": { ... },        // 各接口数据
  "usage": {              // 本次计费情况(usage 接口不返回)
    "charged": 0,         // 本次扣款金额(元)
    "reason": "每日免费额度(剩 998 次)",
    "freeLeft": 998,
    "balance": 20.5,
    "ms": 12
  }
}

使用建议