API de Updates Portal

El Updates Portal expone una pequeña API JSON pública para que pueda consultar el estado, ingerir entradas del changelog, seguir el roadmap y verificar problemas conocidos desde sus propios sistemas. No requiere autenticación.

URL base

https://updates.foura.ai

Estado del servicio

GET /api/v1/status

Devuelve el estado operativo en tiempo real de cada servicio de FourA, además de los incidentes activos y recientes. Se almacena en caché en el servidor durante 15 segundos, por lo que realizar consultas con mayor frecuencia devolverá el mismo 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 nivel superior Tipo Descripción
overall string operational si todos los servicios están estables; de lo contrario, uno de los valores de estado del servicio
services array Una entrada por servicio monitoreado con slug, name, description, el status actual e historial daily (hasta 90 días)
active_incidents array Incidentes que están abiertos actualmente
recent_incidents array Incidentes resueltos de los últimos 14 días

Valores de status del servicio: operational, degraded, partial_outage, major_outage, maintenance.

Valores de impact del incidente: minor (rendimiento degradado), major (interrupción parcial), critical (interrupción del servicio).

Patrón de polling

Use este endpoint para integrar el estado de FourA en su propio dashboard o 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

El endpoint heredado GET /api/status devuelve 410 Gone y redirige a los clientes aquí.

Changelog

GET /api/changelog

Devuelve las entradas publicadas del changelog en orden cronológico inverso.

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

Parámetros de consulta:

Parámetro Tipo Predeterminado Descripción
page integer 1 Número de página indexado en 1
limit integer 20 Entradas por página (máximo 50)
category string - Filtrar por new, improved o 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

El changelog completo (las 30 entradas más recientes) también se publica como RSS en:

https://updates.foura.ai/rss

Suscríbase en Feedly, Miniflux, Thunderbird o cualquier lector. El cuerpo del feed coincide con el cuerpo del changelog, incluyendo el markdown renderizado a HTML.

Roadmap

GET /api/roadmap

Devuelve todos los elementos del roadmap, ordenados por número de votos y luego por fecha de creación.

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 del elemento: planned, in_progress, done, cancelled.

Votación

POST /api/roadmap/:id/vote

Alterna un voto en un solo elemento del roadmap. Los votos son anónimos y están vinculados a la IP y al User-Agent del cliente. Llamar de nuevo elimina el voto.

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

voted informa el estado posterior a la llamada: true si se agregó su voto, false si se eliminó.

Problemas conocidos

GET /api/issues

Devuelve los problemas de los que realiza un seguimiento el soporte de FourA.

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

Parámetros de consulta:

Parámetro Tipo Predeterminado Descripción
tab string open open para problemas activos, resolved para resueltos/cerrados
{
  "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 los endpoints son públicos. No se requiere ninguna clave de API, pero prevea un rate limit generoso por IP de origen.
  • Las respuestas son JSON sobre HTTPS. No hay paginación en el roadmap ni en los problemas; las listas son pequeñas.
  • Para obtener versiones en texto libre o HTML sin procesar del changelog, use el feed /rss en lugar de /api/changelog.

Relacionado

Actualizado: 20 de mayo de 2026