API REST
Páginas de status
Serviços, páginas, incidentes e manutenções.
GET /status(tracker:read, admin ou dono da empresa): páginas de status. Serviços (statusé o que o cliente vê agora, o pior entremanual_statuse os incidentes abertos;version, a versão em produção do projeto), páginas (urlpública,slug,published,primary) e incidentes e manutenções recentes (phase: active, upcoming ou closed).POST /status/servicesePATCH/DELETE /status/services/{id}(tracker:write):{"name": "App do motorista", "project": "MOB", "description": "...", "status": "operational|degraded|partial_outage|major_outage|maintenance", "show_version": true, "check_url": "https://api.exemplo.com/health", "sentry_alerts": true}. No PATCH, só o que vier muda.check_url: healthcheck a cada minuto (mais de 3 s é Lento; duas falhas seguidas, Fora do ar);sentry_alerts: erro novo no Sentry do projeto deixa Lento por 30 minutos. A resposta trazmonitorcom o último resultado.GET /status/pages/{id},POST /status/pagesePATCH/DELETE /status/pages/{id}(tracker:write):{"title": "Status", "intro": "...", "published": true, "blocks": [{"kind": "projects", "projects": ["MOB"]}, {"kind": "projects", "title": "Plataforma", "projects": ["PLT", "API"], "hidden_services": ["Fila interna"]}, {"kind": "services", "title": "Destaques", "services": ["App do motorista"]}]}.blockstroca todos os blocos, na ordem; sem ele, ficam como estão. Serviço por id ou nome; projeto por prefixo, slug ou id.slug: endereço legível no endereço da empresa (/status/<slug>; sem ele, sai do título);primary: true: a página que abre em/status(uma por empresa). A chave da página continua abrindo em qualquer endereço. Aparência (o que não vier fica como está):brand_name(marca da página;nullvolta ao nome da empresa),accent_color(#rrggbb;nullvolta à cor padrão),links(até 4 botões no topo,[{"label": "Suporte", "url": "https://..."}],https:oumailto:; troca os que havia),show_historyeshow_past_incidents(falseesconde as barras de 90 dias e os incidentes encerrados) eremove_logo: true; a logo se envia pela tela e volta emlogo_url.POST /status/incidents(tracker:write): abre um incidente ou agenda uma manutenção.{"kind": "incident|maintenance", "title": "...", "services": ["App do motorista"], "message": "<o que o cliente lê>", "impact": "degraded|partial_outage|major_outage", "status": "...", "starts_at": "2026-10-18T23:00:00-03:00", "ends_at": "..."}(manutenção exigestarts_ateends_at).GET /status/incidents/{id}(com a linha do tempo),POST /status/incidents/{id}/updates({"message": "...", "status": "monitoring", "impact": "degraded"};resolvedoucompletedencerra),PATCH /status/incidents/{id}(corrigetitle,services,starts_at,ends_ateimpact, e commessagetambém publica uma atualização) eDELETE /status/incidents/{id}(tracker:write).