Documentation API

Intégrez EstaCaido à vos applications

Premiers pas

L'API de EstaCaido vous permet de gérer vos moniteurs, de consulter les incidents, de configurer des alertes et plus encore depuis votre propre code. Tous les endpoints de l'API utilisent JSON pour le corps des requêtes et des réponses.

URL de base

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

Limites de débit

Chaque jeton API peut effectuer jusqu'à 100 requêtes par minute. Les requêtes au-delà de cette limite reçoivent une réponse 429 Too Many Requests.

Authentification

Utilisez l'authentification par jeton pour toutes les requêtes API. Incluez votre jeton dans l'en-tête Authorization.

Obtenir un jeton d'authentification

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

Utilisez le jeton dans l'en-tête Authorization

Authorization: Token your-api-token-here

Moniteurs

Gérez les moniteurs de vos sites web.

Lister les moniteurs

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

Créer un moniteur

POST /api/v1/monitors/
Paramètres
name Obligatoire Nom du moniteur
domain Obligatoire Domaine à surveiller, par exemple example.com
check_interval Facultatif Intervalle de vérification en secondes, parmi 30, 60, 300, 600, 900, 1800, 3600. Par défaut : 300
check_type Facultatif L'une de ces valeurs : http, https, ping. Par défaut : https

Obtenir un moniteur

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

Mettre à jour le moniteur

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

Supprimer le moniteur

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

Suspendre le moniteur

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

Reprendre le moniteur

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

Obtenir les statistiques du moniteur

GET /api/v1/monitors/{id}/statistics/
Paramètres
days Facultatif Nombre de jours à inclure. Par défaut : 30

Incidents

Consultez les incidents d'indisponibilité et leur historique.

Lister les incidents

GET /api/v1/incidents/
Paramètres
status Facultatif Filtrer par statut : ongoing, resolved
monitor Facultatif Filtrer par ID de moniteur

Obtenir un incident

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

Alertes

Configurez les notifications d'alerte de vos moniteurs.

Lister les alertes

GET /api/v1/alerts/

Créer une alerte

POST /api/v1/alerts/
Paramètres
monitor Obligatoire ID du moniteur
alert_type Obligatoire L'une de ces valeurs : email, sms, slack, discord, webhook, pagerduty, teams
recipients Obligatoire Adresses des destinataires ou URL de webhook
alert_on_down Facultatif Notifier quand le site est hors ligne (par défaut : true)
alert_on_recovery Facultatif Notifier quand le site est rétabli (par défaut : true)

Mettre à jour l'alerte

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

Supprimer l'alerte

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

Pages de statut

Créez et gérez des pages de statut publiques.

Lister les pages de statut

GET /api/v1/status-pages/

Créer une page de statut

POST /api/v1/status-pages/
Paramètres
title Obligatoire Titre de la page de statut
slug Obligatoire Slug d'URL (p. ex. my-status-page)
description Facultatif Texte de description
is_public Facultatif Rendre accessible publiquement (par défaut : true)

Équipes

Gérez l'accès et la collaboration de l'équipe.

Lister les équipes

GET /api/v1/teams/

Créer une équipe

POST /api/v1/teams/

Obtenir une équipe

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

Exemples de code

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}'

Prêt à commencer ?

Inscrivez-vous gratuitement et obtenez votre jeton API pour commencer l'intégration.

Inscrivez-vous gratuitement Obtenir un jeton API