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 /rss em vez de /api/changelog.

Relacionado

Atualizado em: 20 de maio de 2026