Aller au contenu

Tape un mot pour chercher dans les pages.

↑↓ Choisir↵ OuvrirÉchap Fermer

Référence

Adresses en lecture seule de ta page de statut, au format Statuspage v2, avec les flux RSS et Atom et le badge.

Chaque page de statut publie des données en lecture seule, sans clé ni compte. Les adresses ci-dessous sont relatives à ta page : https://status.hgdc.ch/<ton-nom>, ou ton domaine personnalisé.

Format Statuspage v2

Le format reprend l’API Statuspage v2, pour les outils qui la lisent déjà.

AdresseContenu
/api/v2/summary.jsonRésumé : état global, composants, incidents et maintenances en cours
/api/v2/status.jsonÉtat global de la page
/api/v2/components.jsonComposants et leur état
/api/v2/incidents.jsonIncidents récents
/api/v2/incidents/unresolved.jsonIncidents non résolus
/api/v2/scheduled-maintenances.jsonMaintenances planifiées
/api/v2/scheduled-maintenances/active.jsonMaintenances en cours
/api/v2/scheduled-maintenances/upcoming.jsonMaintenances à venir

Exemple de réponse

{
"page": { "id": "…", "name": "HGDC", "url": "https://status.hgdc.ch/hgdc", "time_zone": "Europe/Zurich", "updated_at": "2026-10-15T10:45:31.864Z" },
"status": { "indicator": "none", "description": "All Systems Operational" },
"components": [
{ "id": "…", "name": "Site hgdc.ch", "status": "operational", "group": false, "group_id": null, "position": 1 }
],
"incidents": [],
"scheduled_maintenances": []
}

Les champs et leurs valeurs sont ceux de Statuspage : status.indicator vaut none, minor, major ou critical, et components[].status vaut operational, degraded_performance, partial_outage, major_outage ou under_maintenance. Les textes d’incident sont ceux que tu as rédigés. Une page non publiée répond 404, comme une page qui n’existe pas.

Cache, accès depuis un navigateur et plafond

SujetComportement
CacheRéponse gardée 30 secondes au bord du réseau. Une lecture plus fréquente ne rend pas plus frais.
ETagChaque réponse porte un ETag. Renvoie-le dans If-None-Match : si rien n’a changé, la réponse est un 304 sans corps.
CORSOuvert en lecture (Access-Control-Allow-Origin: *) : un navigateur peut lire l’API depuis n’importe quel site.
Plafond120 lectures par minute et par adresse IP. Au-delà, 429 avec Retry-After : attends le délai indiqué.
ParamètresUne adresse avec des paramètres (?x=1) est redirigée vers l’adresse sans paramètre.

Exemples d’intégration

Un widget sur ton site

const res = await fetch("https://status.hgdc.ch/<ton-nom>/api/v2/status.json")
const { status } = await res.json()
document.querySelector("#etat").textContent = status.indicator === "none" ? "Tout fonctionne" : "Perturbation en cours"

Le navigateur gère l’ETag seul. Pas de clé à cacher : les données sont publiques.

Depuis un serveur, par exemple Portal

let etag: string | undefined
let last: SummaryJson | undefined
async function readStatus(slug: string) {
const res = await fetch(`https://status.hgdc.ch/${slug}/api/v2/summary.json`, {
headers: etag ? { "if-none-match": etag } : {},
})
if (res.status === 304 && last) return last
if (res.status === 404) return null // page inconnue ou non publiée
if (!res.ok) throw new Error(`Status ${res.status}`)
etag = res.headers.get("etag") ?? undefined
last = (await res.json()) as SummaryJson
return last
}

Lis status.indicator pour l’état global, et components pour le détail. Garde la dernière réponse en mémoire : en cas de 429 ou d’erreur réseau, affiche-la plutôt que de laisser un trou. Si tu as un domaine personnalisé, remplace https://status.hgdc.ch/<ton-nom> par ton domaine.

Flux d’historique

AdresseFormat
/history.rssRSS, pour un lecteur de flux
/history.atomAtom, même contenu

L’historique couvre les incidents et les maintenances de la page.

Badge

AdresseContenu
/badge.svgImage SVG de l’état global
/badge.jsonLe même badge, au format JSON

Le code prêt à coller est dans l’onglet Intégrer de la page, voir afficher le statut sur ton site.

Ce qui n’est pas exposé

Les moniteurs, leurs adresses surveillées, leurs en-têtes et les abonnés ne figurent pas dans l’API publique. Seuls les composants et les évènements publiés sont exposés.

Les états sont décrits dans la référence des statuts.