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
/rsszamiast/api/changelog.
Powiązane
- Status usług: Przeglądaj te same dane w przeglądarce
- Changelog: Przeglądaj wpisy z filtrami i stronicowaniem
- Roadmapa: Głosuj na elementy w interfejsie użytkownika
- Znane problemy: Przeglądaj otwarte i rozwiązane problemy
- Portal aktualizacji: Przegląd sekcji