API portalu aktualizacji

Portal aktualizacji udostępnia proste, publiczne JSON API, dzięki któremu możesz sprawdzać status, pobierać wpisy z changelogu, śledzić roadmapę i sprawdzać znane błędy bezpośrednio z własnych systemów. Uwierzytelnianie nie jest wymagane.

Bazowy URL

https://updates.foura.ai

Status usług

GET /api/v1/status

Zwraca aktualny status operacyjny każdej usługi FourA oraz aktywne i niedawne incydenty. Odpowiedź jest cache'owana po stronie serwera przez 15 sekund, więc częstsze odpytywanie zwróci te same dane.

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": "..." }
  ]
}
Pole głównego poziomu Typ Opis
overall string operational, jeśli wszystkie usługi działają prawidłowo, w przeciwnym razie jedna z wartości statusu usługi
services array Jeden wpis dla każdej monitorowanej usługi zawierający slug, name, description, bieżący status oraz historię daily (do 90 dni)
active_incidents array Incydenty, które są obecnie otwarte
recent_incidents array Rozwiązane incydenty z ostatnich 14 dni

Wartości status usługi: operational, degraded, partial_outage, major_outage, maintenance.

Wartości impact incydentu: minor (obniżona wydajność), major (częściowe zakłócenie), critical (awaria usługi).

Schemat odpytywania

Użyj tego endpointu, aby podpiąć status FourA pod własny dashboard lub system powiadomień.

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

Przestarzały endpoint GET /api/status zwraca 410 Gone i kieruje wywołania tutaj.

Changelog

GET /api/changelog

Zwraca opublikowane wpisy z changelogu w odwrotnej kolejności chronologicznej.

curl "https://updates.foura.ai/api/changelog?limit=20"

Parametry zapytania:

Parametr Typ Domyślnie Opis
page integer 1 Numer strony indeksowany od 1
limit integer 20 Liczba wpisów na stronę (maksymalnie 50)
category string - Filtrowanie według new, improved lub 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

Pełny changelog (30 najnowszych wpisów) jest również publikowany jako kanał RSS pod adresem:

https://updates.foura.ai/rss

Możesz go subskrybować w Feedly, Miniflux, Thunderbird lub dowolnym innym czytniku. Treść kanału odpowiada treści changelogu, wliczając w to markdown wyrenderowany do HTML.

Roadmapa

GET /api/roadmap

Zwraca wszystkie elementy roadmapy, posortowane według liczby głosów, a następnie czasu utworzenia.

curl https://updates.foura.ai/api/roadmap
{
  "items": [
    {
      "id": 12,
      "title": "...",
      "description": "...",
      "category": "API",
      "status": "planned",
      "votes": 23,
      "target_date": "Q3 2026"
    }
  ]
}

Wartości status elementu: planned, in_progress, done, cancelled.

Głosowanie

POST /api/roadmap/:id/vote

Przełącza głos na pojedynczym elemencie roadmapy. Głosy są anonimowe i powiązane z IP oraz User-Agent wywołującego. Ponowne wywołanie usuwa głos.

curl -X POST https://updates.foura.ai/api/roadmap/12/vote
{ "votes": 24, "voted": true }

voted informuje o stanie po wywołaniu: true, jeśli Twój głos został dodany, false, jeśli został usunięty.

Znane problemy

GET /api/issues

Zwraca problemy śledzone przez wsparcie FourA.

curl "https://updates.foura.ai/api/issues?tab=open"

Parametry zapytania:

Parametr Typ Domyślnie Opis
tab string open open dla aktywnych problemów, resolved dla rozwiązanych/zamkniętych
{
  "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
    }
  ]
}

Wartości severity: low, medium, high, critical. Wartości status: open, investigating, resolved, closed.

Uwagi

  • Wszystkie endpointy są publiczne. Klucz API nie jest wymagany, ale należy spodziewać się dość wysokich limitów żądań (rate limit) na adres IP źródła.
  • Odpowiedzi są zwracane w formacie JSON przez HTTPS. Roadmapa oraz problemy nie obsługują stronicowania; listy są krótkie.
  • Jeśli potrzebujesz wersji tekstowej lub surowego HTML dla changelogu, użyj kanału /rss zamiast /api/changelog.

Powiązane

Aktualizacja: 20 maja 2026