Documentazione API

Integra EstaCaido con le tue applicazioni

Per iniziare

L'API di EstaCaido ti permette di gestire i tuoi monitor, consultare gli incidenti, configurare avvisi e altro dal tuo codice. Tutti gli endpoint dell'API usano JSON per il corpo di richieste e risposte.

URL di base

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

Limiti di richieste

Ogni token API può effettuare fino a 100 richieste al minuto. Le richieste oltre il limite ricevono una risposta 429 Too Many Requests.

Autenticazione

Usa l'autenticazione basata su token per tutte le richieste API. Includi il tuo token nell'intestazione Authorization.

Ottieni token di autenticazione

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

Usa il token nell'intestazione Authorization

Authorization: Token your-api-token-here

Monitor

Gestisci i monitor dei tuoi siti web.

Elenca monitor

GET /api/v1/monitors/
Risposta
[
  {
    "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"
  }
]

Crea monitor

POST /api/v1/monitors/
Parametri
name Obbligatorio Nome del monitor
domain Obbligatorio Dominio da monitorare, per esempio example.com
check_interval Facoltativo Intervallo di controllo in secondi, uno tra 30, 60, 300, 600, 900, 1800, 3600. Predefinito: 300
check_type Facoltativo Uno di questi valori: http, https, ping. Predefinito: https

Ottieni monitor

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

Aggiorna monitor

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

Elimina monitor

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

Sospendi monitor

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

Riprendi monitor

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

Ottieni statistiche del monitor

GET /api/v1/monitors/{id}/statistics/
Parametri
days Facoltativo Numero di giorni da includere. Predefinito: 30

Incidenti

Consulta gli incidenti di downtime e la loro cronologia.

Elenca incidenti

GET /api/v1/incidents/
Parametri
status Facoltativo Filtra per stato: ongoing, resolved
monitor Facoltativo Filtra per ID del monitor

Ottieni incidente

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

Avvisi

Configura le notifiche di avviso dei tuoi monitor.

Elenca avvisi

GET /api/v1/alerts/

Crea avviso

POST /api/v1/alerts/
Parametri
monitor Obbligatorio ID del monitor
alert_type Obbligatorio Uno di questi valori: email, sms, slack, discord, webhook, pagerduty, teams
recipients Obbligatorio Indirizzi dei destinatari o URL di webhook
alert_on_down Facoltativo Avvisa quando il sito va offline (predefinito: true)
alert_on_recovery Facoltativo Avvisa quando il sito torna online (predefinito: true)

Aggiorna avviso

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

Elimina avviso

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

Pagine di stato

Crea e gestisci pagine di stato pubbliche.

Elenca pagine di stato

GET /api/v1/status-pages/

Crea pagina di stato

POST /api/v1/status-pages/
Parametri
title Obbligatorio Titolo della pagina di stato
slug Obbligatorio Slug dell'URL (es. my-status-page)
description Facoltativo Testo della descrizione
is_public Facoltativo Rendi accessibile pubblicamente (predefinito: true)

Team

Gestisci l'accesso e la collaborazione del team.

Elenca team

GET /api/v1/teams/

Crea team

POST /api/v1/teams/

Ottieni team

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

Esempi di codice

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 per iniziare?

Registrati gratis e ottieni il tuo token API per iniziare a integrare.

Iscriviti gratis Ottieni token API