API Pública
Status Pages

API — Status Pages

O endpoint de status pages permite listar as Status Pages do seu workspace. Útil para automações de CI/CD, verificações de consistência e integrações com sistemas externos.

GET /status-pages

Lista todas as Status Pages do workspace autenticado.

curl https://api.thealert.io/api/v1/status-pages \
  -H "Authorization: Bearer ta_sua_chave"

Resposta:

{
  "data": [
    {
      "id": "sp_abc123",
      "name": "Status da Plataforma",
      "slug": "minha-empresa",
      "isPublished": true,
      "customDomain": "status.minhaempresa.com.br",
      "createdAt": "2026-01-10T08:00:00.000Z",
      "updatedAt": "2026-03-20T12:30:00.000Z"
    },
    {
      "id": "sp_def456",
      "name": "Status da API",
      "slug": "minha-empresa-api",
      "isPublished": false,
      "customDomain": null,
      "createdAt": "2026-02-05T14:00:00.000Z",
      "updatedAt": "2026-02-05T14:00:00.000Z"
    }
  ],
  "meta": {
    "total": 2
  }
}

Campos da resposta

CampoTipoDescrição
idstringID único da Status Page
namestringNome da Status Page
slugstringIdentificador na URL pública (thealert.io/status/:slug)
isPublishedbooleantrue se a página está pública; false se está em rascunho
customDomainstring | nullDomínio personalizado configurado, se houver
createdAtstringData de criação em ISO 8601 (UTC)
updatedAtstringData da última atualização em ISO 8601 (UTC)

Casos de uso

Verificar se a Status Page está publicada em CI/CD

Em pipelines de deploy, você pode verificar automaticamente se a Status Page está publicada antes de prosseguir:

#!/bin/bash
# Verifica se a Status Page está publicada
 
RESPONSE=$(curl -s "https://api.thealert.io/api/v1/status-pages" \
  -H "Authorization: Bearer ${THEALERT_API_KEY}")
 
IS_PUBLISHED=$(echo $RESPONSE | jq '.data[] | select(.id == "sp_abc123") | .isPublished')
 
if [ "$IS_PUBLISHED" != "true" ]; then
  echo "⚠ Atenção: Status Page não está publicada!"
  exit 1
fi
 
echo "✓ Status Page está publicada"

Listar URLs públicas de todas as pages

const response = await fetch('https://api.thealert.io/api/v1/status-pages', {
  headers: { Authorization: `Bearer ${process.env.THEALERT_API_KEY}` }
})
 
const { data: pages } = await response.json()
 
pages.forEach(page => {
  if (page.isPublished) {
    const url = page.customDomain
      ? `https://${page.customDomain}`
      : `https://thealert.io/status/${page.slug}`
    console.log(`${page.name}: ${url}`)
  }
})

Monitorar consistência da configuração

import requests
 
API_KEY = 'ta_sua_chave'
 
response = requests.get(
    'https://api.thealert.io/api/v1/status-pages',
    headers={'Authorization': f'Bearer {API_KEY}'}
)
 
pages = response.json()['data']
 
for page in pages:
    if not page['isPublished']:
        print(f"AVISO: {page['name']} (slug: {page['slug']}) não está publicada")
 
    if page['customDomain'] is None:
        print(f"INFO: {page['name']} sem domínio personalizado")

Integrar com Terraform

Use a API para validar o estado das suas Status Pages como parte de um processo de IaC:

data "external" "thealert_status_pages" {
  program = ["bash", "-c", <<-EOT
    curl -s "https://api.thealert.io/api/v1/status-pages" \
      -H "Authorization: Bearer ${var.thealert_api_key}" | \
      jq '{published: (.data | map(select(.isPublished)) | length | tostring)}'
  EOT
  ]
}

Limites por plano

O número de Status Pages que podem ser criadas varia por plano:

PlanoStatus Pages
FREE1
STARTER3
PRO10
BUSINESSIlimitadas

A API lista apenas as pages existentes — não é possível criar ou deletar Status Pages via API nesta versão.

Gerenciamento completo de Status Pages via API (criar, atualizar, deletar, adicionar monitores) está disponível no roadmap. Acompanhe as atualizações no changelog da plataforma.

Próximos passos