NASA 开放数据源
数据官方

NASA 开放数据源

Use when the user asks for NASA / space / astronomy data — astronomy picture of the day, near-earth asteroids, Mars rover photos, space weather, Earth imagery (keywords:NASA、天文、每日天文图、APOD、近地小行星、小行星、火星车、火星照片、太空天气、地磁暴、太阳耀斑、地球影像). Do NOT use for terrestrial weather forecast, stock, or non-NASA data sources.

interstellar
interstellar
浏览275
使用8

Skill 文件

SKILL.md
name
nasa-datasource
title
NASA 开放数据源
description
Use when the user asks for NASA / space / astronomy data — astronomy picture of the day, near-earth asteroids, Mars rover photos, space weather, Earth imagery (keywords:NASA、天文、每日天文图、APOD、近地小行星、小行星、火星车、火星照片、太空天气、地磁暴、太阳耀斑、地球影像). Do NOT use for terrestrial weather forecast, stock, or non-NASA data sources.
tools
curl
credentials
NASA_API_KEY
credential_help
NASA_API_KEY: '在 https://api.nasa.gov/ 免费注册(填姓名+邮箱即可)获取 API Key,每小时 1000 次请求'

NASA 开放数据源

通过 curl tool 调用 NASA Open APIs 获取天文、近地小行星、火星车照片、太空天气与地球影像等数据。

鉴权

请求 api.nasa.gov 时,在 URL query 携带 API Key:

?api_key={{secrets.NASA_API_KEY}}

占位符由后端在 curl 运行期替换为真实 key,你无需也无法看到明文。不要使用 DEMO_KEY(仅 30 次/小时、50 次/天,会很快触发限流)。

通用约定

  • Base URLhttps://api.nasa.gov(必须使用 HTTPS,HTTP 会被系统拒绝)
  • 请求方法:GET
  • 响应格式:JSON
  • 日期格式:统一 YYYY-MM-DD
  • 分页:仅火星车照片接口分页(page 参数,每页 25 条);其余接口不分页
  • 速率限制:注册 key 为 1000 次/小时,响应头返回 X-RateLimit-Remaining 表示剩余额度
  • 调用依赖
    • 近地小行星 Feed 的 start_dateend_date 跨度最多 7 天
    • 火星车照片需先确定 rover 名称(curiosity / opportunity / spirit / perseverance)与 sol(火星日)或 earth_date
    • EPIC 地球影像需两步:先查元数据拿到 image 文件名,再按规则拼出归档图片 URL

⚠️ 速率限制策略(必须遵守)

  1. 串行请求:同一时间只发 1 个 curl 请求,等返回后再发下一个。严禁并行发送多个请求
  2. 请求间隔:每两个请求之间至少间隔 2 秒
  3. 批量查询:近地小行星一次最多查 7 天;火星车照片一次只取 1 页(25 条),如需更多再翻页
  4. 429 重试:收到 429(OVER_RATE_LIMIT)后等待 60 秒再重试,严禁立即重试
  5. 数据复用:已获取的列表/枚举类结果(如 rover 列表、APOD 内容)应缓存使用,不要重复请求

常用接口

1. 每日天文图(APOD)

GET https://api.nasa.gov/planetary/apod?api_key={{secrets.NASA_API_KEY}}

参数

参数名位置必填说明
datequery指定日期 YYYY-MM-DD,默认今天(最早 1995-06-16)
start_datequery区间起始日期,与 end_date 搭配返回多天
end_datequery区间结束日期,默认今天
countquery随机返回 N 条,不能与 date/start_date 同用
thumbsquerytrue 时视频类型也返回缩略图 URL

关键返回字段

JSON Path类型说明
datestring日期
titlestring标题
explanationstring文字说明
urlstring图片/视频 URL
hdurlstring高清图 URL(仅图片类型有)
media_typestringimagevideo
copyrightstring版权作者(部分图片无此字段)

2. 近地小行星 Feed(NeoWs)

GET https://api.nasa.gov/neo/rest/v1/feed?start_date={{YYYY-MM-DD}}&end_date={{YYYY-MM-DD}}&api_key={{secrets.NASA_API_KEY}}

参数

参数名位置必填说明
start_datequery起始日期,缺省为今天
end_datequery结束日期,与起始跨度最多 7 天

关键返回字段

JSON Path类型说明
element_countnumber时间段内小行星总数
near_earth_objects.{date}[].namestring小行星名称
near_earth_objects.{date}[].estimated_diameter.kilometers.estimated_diameter_maxnumber估算最大直径(km)
near_earth_objects.{date}[].is_potentially_hazardous_asteroidboolean是否潜在危险
near_earth_objects.{date}[].close_approach_data[0].close_approach_datestring最近接近日期
near_earth_objects.{date}[].close_approach_data[0].relative_velocity.kilometers_per_hourstring相对速度(km/h)
near_earth_objects.{date}[].close_approach_data[0].miss_distance.kilometersstring错过距离(km)

3. 火星车照片(Mars Rover Photos)

GET https://api.nasa.gov/mars-photos/api/v1/rovers/{rover}/photos?sol={{sol}}&api_key={{secrets.NASA_API_KEY}}

{rover} 取值:curiosity / opportunity / spirit / perseverance

参数

参数名位置必填说明
solquery否*火星日(从着陆起算,整数),与 earth_date 二选一
earth_datequery否*地球日期 YYYY-MM-DD,与 sol 二选一
cameraquery相机缩写(如 FHAZRHAZMASTNAVCAM),缺省全部
pagequery页码,每页 25 条

* solearth_date 至少提供其一。

关键返回字段

JSON Path类型说明
photos[].idnumber照片 ID
photos[].img_srcstring照片 URL
photos[].earth_datestring拍摄地球日期
photos[].solnumber拍摄火星日
photos[].camera.full_namestring相机全名
photos[].rover.namestring火星车名称
photos[].rover.statusstring火星车状态

4. 太空天气(DONKI)

GET https://api.nasa.gov/DONKI/CME?startDate={{YYYY-MM-DD}}&endDate={{YYYY-MM-DD}}&api_key={{secrets.NASA_API_KEY}}

路径段可替换为不同的太空天气事件类型:CME(日冕物质抛射)、FLR(太阳耀斑)、GST(地磁暴)、SEPIPSHSS。各类型参数一致,返回字段略有差异,下表以 CME/FLR/GST 通用字段为例。

参数

参数名位置必填说明
startDatequery起始日期,缺省为 30 天前
endDatequery结束日期,缺省为今天

关键返回字段(返回为数组):

JSON Path类型说明
[].activityIDstring事件 ID
[].startTimestring事件开始时间(UTC)
[].sourceLocationstring源位置(CME/FLR)
[].notestring事件描述
[].linkstring事件详情页 URL
[].classTypestring耀斑等级(仅 FLR,如 M1.5X2.0
[].gstIDstring地磁暴 ID(仅 GST)

5. 地球影像(EPIC)

GET https://api.nasa.gov/EPIC/api/natural?api_key={{secrets.NASA_API_KEY}}

返回最新一组地球全景图元数据;按日期查询用 https://api.nasa.gov/EPIC/api/natural/date/{{YYYY-MM-DD}}?api_key={{secrets.NASA_API_KEY}}

关键返回字段

JSON Path类型说明
[].identifierstring影像标识
[].datestring拍摄时间 YYYY-MM-DD HH:MM:SS
[].captionstring说明
[].imagestring影像文件名(不含扩展名)
[].centroid_coordinates.latnumber影像中心纬度
[].centroid_coordinates.lonnumber影像中心经度

拼接图片 URL:用元数据中的 date(取年/月/日)和 image 文件名构造:

https://api.nasa.gov/EPIC/archive/natural/{YYYY}/{MM}/{DD}/png/{image}.png?api_key={{secrets.NASA_API_KEY}}

调用示例

场景:用户问「今天的 NASA 每日天文图是什么?」

  1. 调用接口:
curl(url = "https://api.nasa.gov/planetary/apod?api_key={{secrets.NASA_API_KEY}}", X = "GET")
  1. 从返回中提取 titleexplanationurlmedia_typeimage 时附 hdurl),整理成图文回答。

场景:用户问「未来三天有哪些潜在危险的近地小行星?」

  1. 计算今天与三天后的日期,调用 Feed 接口:
curl(url = "https://api.nasa.gov/neo/rest/v1/feed?start_date=2026-06-16&end_date=2026-06-19&api_key={{secrets.NASA_API_KEY}}", X = "GET")
  1. 遍历 near_earth_objects.{date}[],筛出 is_potentially_hazardous_asteroid = true 的项,提取 nameestimated_diameterclose_approach_data[0].miss_distance.kilometers 汇总。

错误处理

HTTP 状态码含义应对方式
403API_KEY_INVALID / 缺失 key确认 api_key={{secrets.NASA_API_KEY}} 已正确携带
429OVER_RATE_LIMIT 超过速率限制等待 60 秒后重试,并降低请求频率
400参数错误(如日期跨度超 7 天)检查参数格式与取值范围(NeoWs 跨度 ≤ 7 天)
404资源不存在(如无效 rover)核对 rover 名称、日期或 sol 是否有照片
Ln 1, Col 1MarkdownSpaces: 2
No errors