Documentation API

Integrez StatusHive dans votre workflow. Gerez vos moniteurs, incidents et pages de statut par API.

Authentification

Toutes les requetes API necessitent un token d'acces Supabase. Connectez-vous pour obtenir votre token, puis passez-le dans le header Authorization.

# 1. Obtenez votre token d'acces curl https://statushive.app/auth/v1/token?grant_type=password \ -H "apikey: YOUR_ANON_KEY" \ -d '{"email":"you@example.com","password":"..."}' # 2. Utilisez-le dans vos requetes curl https://statushive.app/api/monitors \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Moniteurs

get/api/monitors

Lister tous vos moniteurs. Supporte le filtrage par statut actif et la pagination.

# Response { "monitors": [...], "total": 12 }
post/api/monitors

Creer un nouveau moniteur. L'URL doit etre publique HTTP/HTTPS.

# Request body { "name": "My Site", "url": "https://example.com", "interval_seconds": 60 }
# Response { "monitor": { "id": "...", "name": "My Site", ... } }
get/api/monitors/:id

Obtenir un moniteur avec ses stats d'uptime sur 30 jours et temps de reponse moyen.

# Response { "monitor": {...}, "stats": { "uptime_30d": "99.95", "avg_response_ms": 245 } }
put/api/monitors/:id

Mettre a jour la configuration d'un moniteur (nom, URL, methode, intervalle, etc.).

# Request body { "name": "My Site", "url": "https://example.com", "method": "GET", "active": true }
delete/api/monitors/:id

Supprimer definitivement un moniteur et toutes ses donnees.

# Response { "deleted": true }
get/api/monitors/:id/heartbeats

Obtenir les derniers resultats de verification d'un moniteur.

# Response { "heartbeats": [{ "status": 1, "response_time": 234, "status_code": 200, ... }] }

Incidents

get/api/incidents

Lister tous vos incidents. Filtrage par statut avec pagination.

# Response { "incidents": [...], "total": 5 }
post/api/incidents

Creer un nouvel incident. Optionnellement inclure un message de mise a jour initial.

# Request body { "title": "API Outage", "severity": "major", "status": "investigating", "message": "Looking into it" }
get/api/incidents/:id

Obtenir un incident avec toutes ses mises a jour.

# Response { "incident": { ..., "incident_updates": [...] } }
put/api/incidents/:id

Mettre a jour le statut ou la severite d'un incident. Passer le statut a 'resolved' definit automatiquement resolved_at.

# Request body { "status": "resolved" }
delete/api/incidents/:id

Supprimer definitivement un incident et toutes ses mises a jour.

# Response { "deleted": true }
post/api/incidents/:id/updates

Ajouter une mise a jour a un incident. Met aussi a jour le statut de l'incident parent.

# Request body { "status": "monitoring", "message": "Fix deployed, monitoring." }

Pages de statut

get/api/status-pages

Lister toutes vos pages de statut.

# Response { "status_pages": [...] }
post/api/status-pages

Creer une nouvelle page de statut. Optionnellement lier des moniteurs par ID.

# Request body { "name": "My Status", "slug": "my-status", "monitor_ids": ["id1", "id2"] }
get/api/status-pages/:id

Obtenir une page de statut avec ses moniteurs lies.

# Response { "status_page": {...}, "monitors": [...] }
put/api/status-pages/:id

Mettre a jour les parametres d'une page de statut ou ses moniteurs lies.

# Request body { "name": "Updated Name", "is_public": true }
delete/api/status-pages/:id

Supprimer definitivement une page de statut.

# Response { "deleted": true }

Codes d'erreur

Toutes les erreurs retournent un objet JSON avec un champ "error".

CodeSignification
400Requete invalide — parametres manquants ou incorrects
401Non autorise — token manquant ou invalide
403Interdit — limite du plan atteinte ou ressource non possedee
404Non trouve
409Conflit — slug deja utilise
500Erreur interne du serveur

Limites par plan

FonctionnaliteFreeProPro
Moniteurs1050200
Intervalle de verification3 min1 min30 sec
Pages de statut15Illimite
Retention historique7 jours90 jours365 jours

Les agents IA peuvent acceder a notre reference API lisible par machine a /llms.txt