API do Updates Portal
O Updates Portal expõe uma pequena API JSON pública para que você possa consultar o status, ingerir entradas do changelog, acompanhar o roadmap e verificar problemas conhecidos a partir dos seus próprios sistemas. Nenhuma autenticação é necessária.
Base URL
https://updates.foura.ai
Service Status
GET /api/v1/status
Retorna o status operacional em tempo real de cada serviço do FourA, além de incidentes ativos e recentes. Armazenado em cache no servidor por 15 segundos, portanto, consultas mais frequentes que isso retornarão o mesmo 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": "..." }
]
}
| Campo de nível superior | Tipo | Descrição |
|---|---|---|
overall |
string | operational se todos os serviços estiverem saudáveis, caso contrário, um dos valores de status do serviço |
services |
array | Uma entrada por serviço monitorado com slug, name, description, o status atual e o histórico daily (até 90 dias) |
active_incidents |
array | Incidentes que estão abertos no momento |
recent_incidents |
array | Incidentes resolvidos nos últimos 14 dias |
Valores de status do serviço: operational, degraded, partial_outage, major_outage, maintenance.
Valores de impact do incidente: minor (desempenho degradado), major (interrupção parcial), critical (interrupção do serviço).
Padrão de polling
Use este endpoint para integrar o status do FourA ao seu próprio dashboard ou sistema de alertas.
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
O GET /api/status legado retorna 410 Gone e direciona as chamadas para cá.
Changelog
GET /api/changelog
Retorna as entradas publicadas do changelog em ordem cronológica inversa.
curl "https://updates.foura.ai/api/changelog?limit=20"
Parâmetros de query:
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
page |
integer | 1 | Número da página (indexado em 1) |
limit |
integer | 20 | Entradas por página (máximo de 50) |
category |
string | - | Filtrar por new, improved ou 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
O changelog completo (as 30 entradas mais recentes) também é publicado como RSS em:
https://updates.foura.ai/rss
Assine no Feedly, Miniflux, Thunderbird ou em qualquer leitor. O corpo do feed corresponde ao corpo do changelog, incluindo o markdown renderizado para HTML.
Roadmap
GET /api/roadmap
Retorna todos os itens do roadmap, ordenados pela contagem de votos e depois pelo momento de criação.
curl https://updates.foura.ai/api/roadmap
{
"items": [
{
"id": 12,
"title": "...",
"description": "...",
"category": "API",
"status": "planned",
"votes": 23,
"target_date": "Q3 2026"
}
]
}
Valores de status do item: planned, in_progress, done, cancelled.
Votação
POST /api/roadmap/:id/vote
Alterna um voto em um único item do roadmap. Os votos são anônimos e vinculados ao IP do remetente + User-Agent. Chamar novamente remove o voto.
curl -X POST https://updates.foura.ai/api/roadmap/12/vote
{ "votes": 24, "voted": true }
voted informa o estado pós-chamada: true se o seu voto foi adicionado, false se foi removido.
Problemas Conhecidos
GET /api/issues
Retorna os problemas rastreados pelo suporte do FourA.
curl "https://updates.foura.ai/api/issues?tab=open"
Parâmetros de query:
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
tab |
string | open |
open para problemas ativos, resolved para resolvidos/fechados |
{
"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
}
]
}
Valores de severity: low, medium, high, critical.
Valores de status: open, investigating, resolved, closed.
Notas
- Todos os endpoints são públicos. Nenhuma chave de API é necessária, mas espere um rate limit generoso por IP de origem.
- As respostas são JSON via HTTPS. Não há paginação no roadmap ou nos problemas; as listas são pequenas.
- Para versões em texto livre ou HTML puro do changelog, use o feed
/rssem vez de/api/changelog.
Relacionado
- Service Status: Leia os mesmos dados no navegador
- Changelog: Navegue pelas entradas com filtros e paginação
- Roadmap: Vote em itens na interface
- Known Issues: Leia problemas abertos e resolvidos
- Updates Portal: Visão geral da seção