Documentação da API

Integrar EstaCaido com as suas aplicações

Primeiros passos

A API do EstaCaido permite gerenciar seus monitores, ver incidentes, configurar alertas e muito mais a partir do seu próprio código. Todos os endpoints da API usam JSON no corpo das requisições e respostas.

URL base

https://www.estacaido.com/api/v1/

Limites de uso

Cada token de API pode fazer até 100 requisições por minuto. Requisições acima desse limite recebem uma resposta 429 Too Many Requests.

Autenticação

Use autenticação por token em todas as requisições da API. Inclua seu token no cabeçalho Authorization.

Obter token de autenticação

POST /api/v1/auth/token/
Requisição
curl -X POST https://www.estacaido.com/api/v1/auth/token/ \
  -H "Content-Type: application/json" \
  -d '{"username": "your@email.com", "password": "yourpassword"}'
Resposta
{
  "token": "your-api-token-here"
}

Use o token no cabeçalho Authorization

Authorization: Token your-api-token-here

Monitores

Gerencie os monitores dos seus sites.

Listar monitores

GET /api/v1/monitors/
Resposta
[
  {
    "id": 1,
    "name": "Production API",
    "company": {
      "id": 1,
      "website": "api.example.com"
    },
    "check_type": "http",
    "check_interval": 300,
    "is_active": true,
    "is_paused": false,
    "last_check_at": "2024-01-15T10:30:00Z",
    "created_at": "2024-01-01T00:00:00Z"
  }
]

Criar Monitor

POST /api/v1/monitors/
Parâmetros
name Obrigatório Nome do monitor
domain Obrigatório Domínio a monitorar, por exemplo example.com
check_interval Opcional Intervalo de verificação em segundos, um de 30, 60, 300, 600, 900, 1800, 3600. Padrão: 300
check_type Opcional Um destes valores: http, https, ping. Padrão: https

Obter monitor

GET /api/v1/monitors/{id}/

Atualizar monitor

PUT /api/v1/monitors/{id}/

Excluir monitor

DELETE /api/v1/monitors/{id}/

Pausar monitor

POST /api/v1/monitors/{id}/pause/

Retomar monitor

POST /api/v1/monitors/{id}/resume/

Obter estatísticas do monitor

GET /api/v1/monitors/{id}/statistics/
Parâmetros
days Opcional Número de dias a incluir. Padrão: 30

Incidentes

Veja os incidentes de indisponibilidade e seu histórico.

Listar incidentes

GET /api/v1/incidents/
Parâmetros
status Opcional Filtrar por status: ongoing, resolved
monitor Opcional Filtrar por ID do monitor

Obter incidente

GET /api/v1/incidents/{id}/

Alertas

Configure as notificações de alerta dos seus monitores.

Listar alertas

GET /api/v1/alerts/

Criar alerta

POST /api/v1/alerts/
Parâmetros
monitor Obrigatório ID do monitor
alert_type Obrigatório Um destes valores: email, sms, slack, discord, webhook, pagerduty, teams
recipients Obrigatório Endereços de destinatários ou URLs de webhook
alert_on_down Opcional Avisar quando o site ficar fora do ar (padrão: true)
alert_on_recovery Opcional Avisar quando o site se recuperar (padrão: true)

Atualizar alerta

PUT /api/v1/alerts/{id}/

Excluir alerta

DELETE /api/v1/alerts/{id}/

Páginas de status

Crie e gerencie páginas de status públicas.

Listar páginas de status

GET /api/v1/status-pages/

Criar página de status

POST /api/v1/status-pages/
Parâmetros
title Obrigatório Título da página de status
slug Obrigatório Slug da URL (ex.: my-status-page)
description Opcional Texto da descrição
is_public Opcional Tornar acessível publicamente (padrão: true)

Equipes

Gerencie o acesso e a colaboração da equipe.

Listar equipes

GET /api/v1/teams/

Criar equipe

POST /api/v1/teams/

Obter equipe

GET /api/v1/teams/{id}/

Exemplos de código

Python

import requests

API_TOKEN = 'your-api-token'
BASE_URL = 'https://www.estacaido.com/api/v1'

headers = {
    'Authorization': f'Token {API_TOKEN}',
    'Content-Type': 'application/json'
}

# List all monitors
response = requests.get(f'{BASE_URL}/monitors/', headers=headers)
monitors = response.json()
print(monitors)

# Create a new monitor
new_monitor = {
    'name': 'My Website',
    'domain': 'example.com',
    'check_interval': 300
}
response = requests.post(f'{BASE_URL}/monitors/', json=new_monitor, headers=headers)
print(response.json())

JavaScript

const API_TOKEN = 'your-api-token';
const BASE_URL = 'https://www.estacaido.com/api/v1';

const headers = {
    'Authorization': `Token ${API_TOKEN}`,
    'Content-Type': 'application/json'
};

// List all monitors
fetch(`${BASE_URL}/monitors/`, { headers })
    .then(res => res.json())
    .then(monitors => console.log(monitors));

// Create a new monitor
fetch(`${BASE_URL}/monitors/`, {
    method: 'POST',
    headers,
    body: JSON.stringify({
        name: 'My Website',
        domain: 'example.com',
        check_interval: 300
    })
})
.then(res => res.json())
.then(data => console.log(data));

cURL

# List all monitors
curl -X GET https://www.estacaido.com/api/v1/monitors/ \
  -H "Authorization: Token your-api-token"

# Create a new monitor
curl -X POST https://www.estacaido.com/api/v1/monitors/ \
  -H "Authorization: Token your-api-token" \
  -H "Content-Type: application/json" \
  -d '{"name": "My Website", "domain": "example.com", "check_interval": 300}'

Pronto para começar?

Cadastre-se grátis e obtenha seu token de API para começar a integrar.

Cadastre-se gratuitamente Obter token de API