API Updates Portal
Updates Portal cung cấp một API JSON công khai nhỏ để bạn có thể truy vấn trạng thái, tích hợp các mục changelog, theo dõi roadmap và kiểm tra các sự cố đã biết từ hệ thống của riêng bạn. Không yêu cầu xác thực.
Base URL
https://updates.foura.ai
Trạng thái dịch vụ
GET /api/v1/status
Trả về trạng thái hoạt động trực tiếp của từng dịch vụ FourA, cùng với các sự cố đang diễn ra và gần đây. Được cache phía máy chủ trong 15 giây, do đó việc truy vấn thường xuyên hơn mức này sẽ trả về cùng một dữ liệu.
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": "..." }
]
}
| Trường cấp cao nhất | Kiểu dữ liệu | Mô tả |
|---|---|---|
overall |
string | operational nếu mọi dịch vụ đều hoạt động tốt, nếu không sẽ là một trong các giá trị trạng thái dịch vụ |
services |
array | Một mục cho mỗi dịch vụ được giám sát với slug, name, description, status hiện tại và lịch sử daily (lên đến 90 ngày) |
active_incidents |
array | Các sự cố hiện đang xảy ra |
recent_incidents |
array | Các sự cố đã được khắc phục trong 14 ngày qua |
Các giá trị status của dịch vụ: operational, degraded, partial_outage, major_outage, maintenance.
Các giá trị impact của sự cố: minor (hiệu suất bị giảm), major (gián đoạn một phần), critical (gián đoạn dịch vụ).
Cách thức truy vấn
Sử dụng endpoint này để tích hợp trạng thái FourA vào dashboard hoặc hệ thống cảnh báo của riêng bạn.
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
Endpoint cũ GET /api/status trả về 410 Gone và hướng người gọi đến đây.
Changelog
GET /api/changelog
Trả về các mục changelog đã xuất bản theo thứ tự thời gian ngược.
curl "https://updates.foura.ai/api/changelog?limit=20"
Tham số truy vấn:
| Tham số | Kiểu dữ liệu | Mặc định | Mô tả |
|---|---|---|---|
page |
integer | 1 | Số trang (bắt đầu từ 1) |
limit |
integer | 20 | Số lượng mục trên mỗi trang (tối đa 50) |
category |
string | - | Lọc theo new, improved hoặc 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
Toàn bộ changelog (30 mục gần đây nhất) cũng được xuất bản dưới dạng RSS tại:
https://updates.foura.ai/rss
Đăng ký trong Feedly, Miniflux, Thunderbird hoặc bất kỳ trình đọc nào. Nội dung của feed khớp với nội dung changelog, bao gồm cả markdown được chuyển đổi sang HTML.
Roadmap
GET /api/roadmap
Trả về tất cả các mục trong roadmap, được sắp xếp theo số lượng bình chọn sau đó là thời gian tạo.
curl https://updates.foura.ai/api/roadmap
{
"items": [
{
"id": 12,
"title": "...",
"description": "...",
"category": "API",
"status": "planned",
"votes": 23,
"target_date": "Q3 2026"
}
]
}
Các giá trị status của mục: planned, in_progress, done, cancelled.
Bình chọn
POST /api/roadmap/:id/vote
Bật/tắt bình chọn cho một mục roadmap duy nhất. Các bình chọn là ẩn danh và được liên kết với IP + User-Agent của người gọi. Gọi lại một lần nữa sẽ hủy bỏ bình chọn.
curl -X POST https://updates.foura.ai/api/roadmap/12/vote
{ "votes": 24, "voted": true }
voted báo cáo trạng thái sau khi gọi: true nếu bình chọn của bạn đã được thêm, false nếu bình chọn đã bị hủy bỏ.
Sự cố đã biết
GET /api/issues
Trả về các sự cố được theo dõi bởi bộ phận hỗ trợ của FourA.
curl "https://updates.foura.ai/api/issues?tab=open"
Tham số truy vấn:
| Tham số | Kiểu dữ liệu | Mặc định | Mô tả |
|---|---|---|---|
tab |
string | open |
open cho các sự cố đang hoạt động, resolved cho các sự cố đã giải quyết/đóng |
{
"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
}
]
}
Các giá trị severity: low, medium, high, critical.
Các giá trị status: open, investigating, resolved, closed.
Lưu ý
- Tất cả các endpoint đều công khai. Không yêu cầu API key, nhưng sẽ áp dụng rate limit hợp lý cho mỗi IP nguồn.
- Các phản hồi là JSON qua HTTPS. Không có phân trang cho roadmap hoặc các sự cố; danh sách này khá nhỏ.
- Đối với các phiên bản văn bản thuần túy hoặc HTML thô của changelog, hãy sử dụng feed
/rssthay vì/api/changelog.
Liên quan
- Trạng thái dịch vụ: Đọc cùng một dữ liệu trên trình duyệt
- Changelog: Duyệt qua các mục với bộ lọc và phân trang
- Roadmap: Bình chọn cho các mục trong giao diện người dùng (UI)
- Sự cố đã biết: Đọc các sự cố đang mở và đã giải quyết
- Updates Portal: Tổng quan về phần này