Updates Portal API
Updates Portal 提供了一个轻量级的公开 JSON API,以便您从自己的系统轮询状态、获取 changelog 条目、查看 roadmap 以及检查已知问题。无需身份验证。
Base URL
https://updates.foura.ai
Service Status
GET /api/v1/status
返回每个 FourA 服务的实时运行状态,以及活动中和最近的故障事件。服务端缓存 15 秒,因此更频繁地轮询将返回相同的 payload。
curl https://updates.foura.ai/api/v1/status
{
"overall": "operational",
"services": [
{
"slug": "api",
"name": "API",
"description": "...",
"status": "operational",
"daily": [
{ "date": "2026-05-19", "status": "operational", "major_outage_minutes": 0, "partial_outage_minutes": 0, "degraded_minutes": 0, "internal_degraded_minutes": 0 }
]
}
],
"active_incidents": [],
"recent_incidents": [
{ "id": "...", "service_slug": "api", "service_name": "API", "impact": "minor", "started_at": "...", "resolved_at": "..." }
]
}
| Top-level field | Type | Description |
|---|---|---|
overall |
string | 如果所有服务都正常运行,则为 operational,否则为其中一个服务状态值 |
services |
array | 每个被监控服务对应一个条目,包含 slug、name、description、当前 status 以及 daily 历史记录(最多 90 天) |
active_incidents |
array | 当前未解决的故障事件 |
recent_incidents |
array | 最近 14 天内已解决的故障事件 |
服务 status 值:operational、degraded、partial_outage、major_outage、maintenance。
故障事件 impact 值:minor(性能下降)、major(部分中断)、critical(服务中断)。
Polling pattern
使用此 endpoint 将 FourA 状态接入您自己的 Dashboard 或报警系统。
import requests
def check_foura():
r = requests.get("https://updates.foura.ai/api/v1/status", timeout=5)
r.raise_for_status()
data = r.json()
if data["overall"] != "operational":
# Page on-call, post to Slack, flip a feature flag, etc.
for svc in data["services"]:
if svc["status"] != "operational":
print(f"{svc['name']}: {svc['status']}")
return data
遗留的 GET /api/status 返回 410 Gone 并将调用方引导至此处。
Changelog
GET /api/changelog
按时间倒序返回已发布的 changelog 条目。
curl "https://updates.foura.ai/api/changelog?limit=20"
查询参数:
| Parameter | Type | Default | Description |
|---|---|---|---|
page |
integer | 1 | 从 1 开始的页码 |
limit |
integer | 20 | 每页条目数(最大 50) |
category |
string | - | 过滤条件,可选值为 new、improved 或 fixed |
{
"entries": [
{
"id": 42,
"title": "...",
"body": "Markdown body",
"category": "new",
"published_at": "2026-05-19T12:00:00Z",
"tags": "[\"api\", \"dashboard\"]"
}
],
"total": 137,
"page": 1,
"limit": 20
}
RSS
完整的 changelog(最近的 30 个条目)也以 RSS 形式发布在:
https://updates.foura.ai/rss
可在 Feedly、Miniflux、Thunderbird 或任何阅读器中订阅。Feed 内容与 changelog 内容一致,包括渲染为 HTML 的 markdown。
Roadmap
GET /api/roadmap
返回所有 roadmap 项,先按投票数排序,再按创建时间排序。
curl https://updates.foura.ai/api/roadmap
{
"items": [
{
"id": 12,
"title": "...",
"description": "...",
"category": "API",
"status": "planned",
"votes": 23,
"target_date": "Q3 2026"
}
]
}
Roadmap 项的 status 值:planned、in_progress、done、cancelled。
Voting
POST /api/roadmap/:id/vote
切换对单个 roadmap 项的投票状态。投票是匿名的,并与调用方的 IP 和 User-Agent 绑定。再次调用将取消投票。
curl -X POST https://updates.foura.ai/api/roadmap/12/vote
{ "votes": 24, "voted": true }
voted 返回调用后的状态:如果添加了您的投票则为 true,如果取消了投票则为 false。
Known Issues
GET /api/issues
返回 FourA 支持团队跟踪的已知问题。
curl "https://updates.foura.ai/api/issues?tab=open"
查询参数:
| Parameter | Type | Default | Description |
|---|---|---|---|
tab |
string | open |
open 表示活动中的问题,resolved 表示已解决/已关闭的问题 |
{
"issues": [
{
"id": 5,
"title": "...",
"body": "Markdown description",
"severity": "medium",
"status": "investigating",
"service_id": "api",
"opened_at": "2026-05-18T09:00:00Z",
"resolved_at": null,
"resolution": null
}
]
}
severity 值:low、medium、high、critical。
status 值:open、investigating、resolved、closed。
说明
- 所有 endpoint 均为公开。无需 API key,但每个源 IP 会有宽松的 rate limiting。
- response 为基于 HTTPS 的 JSON。roadmap 或已知问题没有分页,因为列表很小。
- 如需纯文本或原始 HTML 版本的 changelog,请使用
/rssfeed,而不是/api/changelog。
相关内容
- Service Status:在浏览器中阅读相同的数据
- Changelog:通过过滤和分页浏览条目
- Roadmap:在 UI 中对项目进行投票
- Known Issues:阅读未解决和已解决的问题
- Updates Portal:本节概述