Updates Portal API
Updates Portalは、独自のシステムからstatusのポーリング、changelogエントリの取り込み、roadmapの監視、既知の問題の確認を行えるように、公開のJSON APIを提供しています。認証は不要です。
Base URL
https://updates.foura.ai
Service Status
GET /api/v1/status
すべてのFourAサービスのライブ稼働statusと、アクティブおよび最近のインシデントを返します。サーバー側で15秒間キャッシュされるため、これより頻繁にポーリングしても同じペイロードが返されます。
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": "..." }
]
}
| トップレベルフィールド | 型 | 説明 |
|---|---|---|
overall |
string | すべてのサービスが正常な場合はoperational、それ以外の場合はサービスstatus値のいずれか |
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(サービス中断)。
ポーリングパターン
このendpointを使用して、FourAのstatusを独自のダッシュボードやページングシステムに連携します。
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"
クエリパラメータ:
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
page |
integer | 1 | 1から始まるページ番号 |
limit |
integer | 20 | 1ページあたりのエントリ数(最大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、または任意のリーダーで購読してください。フィードの本文は、HTMLにレンダリングされたMarkdownを含むchangelogの本文と一致します。
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"
}
]
}
アイテムのstatus値:planned、in_progress、done、cancelled。
投票
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"
クエリパラメータ:
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
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キーは不要ですが、送信元IPごとに緩やかなrate limitが適用されます。
- responseはHTTPS経由のJSONです。roadmapや既知の問題(issues)にはページネーションはありません。リストのサイズが小さいためです。
- フリーテキストまたは生のHTMLバージョンのchangelogについては、
/api/changelogの代わりに/rssフィードを使用してください。
関連情報
- Service Status: ブラウザで同じデータを表示する
- Changelog: フィルターとページネーションを使用してエントリを閲覧する
- Roadmap: UI上でアイテムに投票する
- Known Issues: 未解決および解決済みの問題を表示する
- Updates Portal: セクションの概要