Updates Portal API

Updates Portal предоставя малко публично JSON API, за да можете да проверявате състоянието, да извличате записи от changelog, да следите roadmap и да проверявате известни проблеми от вашите собствени системи. Не се изисква удостоверяване.

Base URL

https://updates.foura.ai

Състояние на услугите

GET /api/v1/status

Връща текущото оперативно състояние на всяка FourA услуга, плюс активните и скорошните инциденти. Кешира се от страна на сървъра за 15 секунди, така че по-често извикване връща същия payload.

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": "..." }
  ]
}
Поле от най-горно ниво Тип Описание
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 (прекъсване на услугата).

Polling модел

Използвайте този endpoint, за да интегрирате състоянието на FourA във вашия собствен dashboard или система за известяване.

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"

Query параметри:

Параметър Тип По подразбиране Описание
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 или друг четец. Съдържанието на фийда съвпада с това на changelog, включително markdown, рендериран до HTML.

Roadmap

GET /api/roadmap

Връща всеки елемент от 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

Превключва гласа за конкретен елемент от roadmap. Гласовете са анонимни и са обвързани с 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"

Query параметри:

Параметър Тип По подразбиране Описание
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.

Бележки

  • Всички endpoints са публични. Не се изисква API ключ, но очаквайте щедър rate limiting за всеки изходящ IP адрес.
  • Отговорите са JSON през HTTPS. Няма пагинация за roadmap или проблеми, тъй като списъците са малки.
  • За версии на changelog в свободен текст или чист HTML, използвайте /rss фийда вместо /api/changelog.

Свързани теми

Обновено: 20 май 2026 г.