API publique
API REST en lecture seule de la page de statut FreshPerf. Sans authentification ni clé d'API. Chaque réponse est en JSON sur HTTPS.
https://status-api.freshperf.frConventions
- Les champs localisés sont renvoyés dans les deux langues sous la forme {"en": "...", "fr": "..."}.
- Les horodatages sont en millisecondes epoch Unix (UTC).
- Limite : 240 requêtes par minute et par IP. Au-delà, la réponse est HTTP 429.
- Les réponses de synthèse sont mises en cache pendant 30 secondes.
- Les erreurs renvoient un marqueur JSON générique, par exemple {"error": "NOT_FOUND"}. Aucun détail technique.
- Le CORS autorise les appels navigateur depuis les origines de la page de statut. Les clients côté serveur ne sont pas concernés.
Statut
/api/v1/statusÉtat global
État global, compteurs de services et nombre d'incidents et de maintenances actifs. Le champ overall vaut : operational, degraded_performance, partial_outage, major_outage ou maintenance.
Réponses
Exemple de réponse
{
"overall": "operational",
"updatedAt": 1783534774997,
"servicesUp": 12,
"servicesDown": 0,
"activeIncidents": 0,
"activeMaintenances": 1
}/api/v1/summarySynthèse complète
La charge utile complète de la page d'accueil : groupes de services, état en direct par service, disponibilité quotidienne sur 90 jours (état par jour : ok, degraded, down, no_data), incidents actifs et maintenances en cours ou à venir.
Réponses
Exemple de réponse
{
"overall": "operational",
"updatedAt": 1783534774997,
"servicesUp": 12,
"servicesDown": 0,
"groups": [
{
"slug": "websites",
"name": { "en": "Websites", "fr": "Sites web" },
"description": null,
"services": [
{
"slug": "main-site",
"name": { "en": "Main site", "fr": "Site principal" },
"status": "up",
"lastCheckAt": 1783534770000,
"latencyMs": 42,
"uptime90d": 99.987,
"days": [
{ "date": "2026-04-11", "uptimePct": 100.0, "state": "ok" }
]
}
]
}
],
"activeIncidents": [],
"maintenance": []
}Services
/api/v1/services/{slug}/metricsSéries de latence et disponibilité
Série temporelle d'un service. 24h et 7d sont agrégées depuis les sondes brutes (200 points au maximum). 90d renvoie un point par jour depuis les agrégats quotidiens.
Paramètres
| Nom | Emplacement | Type | Description |
|---|---|---|---|
| slug* | path | string | Identifiant public du service (voir /api/v1/summary). |
| range | query | 24h | 7d | 90d | Fenêtre de la série. Défaut : 24h. |
Réponses
Exemple de réponse
{
"slug": "main-site",
"range": "24h",
"points": [
{ "t": 1783532993763, "latencyMs": 45, "uptimePct": 100.0 }
]
}Incidents
/api/v1/incidentsListe des incidents
Liste paginée des incidents, du plus récent au plus ancien. severity vaut minor, major ou critical. status vaut investigating, identified, monitoring ou resolved.
Paramètres
| Nom | Emplacement | Type | Description |
|---|---|---|---|
| state | query | active | resolved | all | Filtre. Défaut : all. |
| page | query | integer | Index de page (base 0). Défaut : 0. |
| pageSize | query | integer (1-50) | Éléments par page. Défaut : 10. |
Réponses
Exemple de réponse
{
"items": [
{
"id": 12,
"severity": "major",
"status": "resolved",
"title": { "en": "Elevated error rate", "fr": "Taux d'erreurs élevé" },
"affectedServiceIds": [3],
"startedAt": 1783440000000,
"resolvedAt": 1783452000000
}
],
"page": 0,
"pageSize": 10,
"total": 1
}/api/v1/incidents/{id}Détail d'un incident
Un incident avec sa chronologie complète de mises à jour, la plus récente en premier.
Paramètres
| Nom | Emplacement | Type | Description |
|---|---|---|---|
| id* | path | integer | Identifiant de l'incident. |
Réponses
Exemple de réponse
{
"id": 12,
"severity": "major",
"status": "resolved",
"title": { "en": "Elevated error rate", "fr": "Taux d'erreurs élevé" },
"updates": [
{
"status": "resolved",
"body": { "en": "Incident resolved.", "fr": "Incident résolu." },
"createdAt": 1783452000000
}
]
}Maintenance
/api/v1/maintenanceFenêtres de maintenance
Fenêtres de maintenance avec leur état dérivé (upcoming, in_progress, completed, cancelled). Par défaut, seules les fenêtres non terminées sont renvoyées.
Paramètres
| Nom | Emplacement | Type | Description |
|---|---|---|---|
| window | query | upcoming | past | all | Filtre. Défaut : upcoming. |
Réponses
Exemple de réponse
{
"items": [
{
"id": 4,
"title": { "en": "Database upgrade", "fr": "Mise à niveau base de données" },
"body": { "en": "Planned upgrade.", "fr": "Mise à niveau planifiée." },
"scheduledStart": 1783620000000,
"scheduledEnd": 1783627200000,
"affectedServiceIds": [1, 3],
"state": "upcoming"
}
],
"window": "upcoming"
}