Updates Portal API
Updates Portal은 자체 시스템에서 상태를 폴링하고, changelog 항목을 수집하고, 로드맵을 모니터링하고, 알려진 문제를 확인할 수 있도록 소규모 공개 JSON API를 제공합니다. 인증은 필요하지 않습니다.
Base URL
https://updates.foura.ai
Service Status
GET /api/v1/status
모든 FourA 서비스의 실시간 운영 상태와 진행 중이거나 최근 발생한 인시던트를 반환합니다. 서버 측에서 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": "..." }
]
}
| 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(서비스 중단).
폴링 패턴
이 endpoint를 사용하여 FourA 상태를 자체 대시보드나 호출 시스템에 연동하세요.
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 또는 임의의 리더기에서 구독하세요. 피드 본문은 HTML로 렌더링된 markdown을 포함하여 changelog 본문과 일치합니다.
Roadmap
GET /api/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
단일 로드맵 항목에 대한 투표를 토글합니다. 투표는 익명이며 호출자의 IP 및 User-Agent에 연결됩니다. 다시 호출하면 투표가 취소됩니다.
curl -X POST https://updates.foura.ai/api/roadmap/12/vote
{ "votes": 24, "voted": true }
voted는 호출 후 상태를 보고합니다. 투표가 추가된 경우 true, 제거된 경우 false입니다.
알려진 문제
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 키는 필요하지 않지만, 소스 IP당 넉넉한 수준의 rate limit가 적용됩니다.
- 응답은 HTTPS 기반의 JSON입니다. 로드맵이나 알려진 문제에는 페이지네이션이 제공되지 않으며, 목록의 크기가 작습니다.
- changelog의 자유 텍스트 또는 원시 HTML 버전이 필요한 경우,
/api/changelog대신/rss피드를 사용하세요.
관련 링크
- Service Status: 브라우저에서 동일한 데이터 확인
- Changelog: 필터 및 페이지네이션을 사용하여 항목 탐색
- Roadmap: UI에서 항목에 투표
- Known Issues: 미해결 및 해결된 문제 확인
- Updates Portal: 섹션 개요