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 /rss thay vì /api/changelog.

Liên quan

Cập nhật: 20 tháng 5, 2026