Endpoint de l’API REST
GET /v1/pulse
Indicateur du jour, comparaison avec la veille et courbes intrajournalières par tranches de 15 minutes.
Requête
GET
https://api.nowmetrix.com/v1/pulse?site=TRACKER_ID
Utilisez Pulse pour répondre à une question plus utile que « Quel est notre trafic ? » : le trafic du jour est-il supérieur ou inférieur à la tendance habituelle pour ce jour de la semaine et cette heure ?
Authentification
Une clé API est requise dans l’en-tête Authorization : Authorization: Bearer nm_YOUR_KEY.
Paramètres de requête
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
site |
string |
obligatoire | Identifiant du tracker. La clé API doit avoir accès à ce tracker. |
Exemple cURL
curl -H "Authorization: Bearer nm_YOUR_KEY" \
"https://api.nowmetrix.com/v1/pulse?site=TRACKER_ID"
Exemple de réponse
{
"site": "TRACKER_ID",
"updated_at": "2026-06-26T12:24:30Z",
"timezone": "Europe/Zurich",
"pulse": {
"available": true,
"reason": null,
"delta_percent": 12,
"days_counted": 8,
"is_provisional": false,
"minute_of_day": 865,
"metrics": {
"pageviews": {
"today": 48215,
"avg": 43040,
"delta_percent": 12
},
"visitors": {
"today": 31890,
"avg": 29620,
"delta_percent": 8
},
"active_users": {
"today": 128,
"avg": 104,
"delta_percent": 23
}
},
"baseline": {
"snapshot_time": "14:25",
"aggregation": "median",
"combination": "mean_of_deltas",
"days_counted": 8,
"samples": [
{
"date": "2026-06-19",
"pageviews": 42110,
"visitors": 29100,
"active_users": 98
}
]
}
},
"yesterday_vs_day_before": {
"yesterday": {
"date": "2026-06-25",
"pageviews": 77480,
"visitors": 50195
},
"day_before": {
"date": "2026-06-24",
"pageviews": 81240,
"visitors": 53210
},
"delta_percent": {
"pageviews": -5,
"visitors": -6
}
},
"chart": {
"interval_minutes": 15,
"today_date": "2026-06-26",
"yesterday_date": "2026-06-25",
"average_basis_days": 8,
"average_method": "median_same_weekday",
"pageviews": {
"today": [
{
"time": "08:00",
"value": 920
},
{
"time": "08:15",
"value": 1110
}
],
"yesterday": [
{
"time": "08:00",
"value": 870
}
],
"average": [
{
"time": "08:00",
"value": 810
}
]
},
"visitors": {
"today": [
{
"time": "08:00",
"value": 620
}
],
"yesterday": [
{
"time": "08:00",
"value": 580
}
],
"average": [
{
"time": "08:00",
"value": 540
}
]
}
}
}
Champs de réponse
| Champ | Type | Description |
|---|---|---|
site |
string |
Identifiant du tracker utilisé pour la requête. |
updated_at |
string |
Horodatage UTC de génération de la réponse. |
timezone |
string |
Fuseau horaire du tracker utilisé pour déterminer les dates locales. |
pulse.available |
boolean |
Indique si l’historique disponible est suffisant pour calculer l’indicateur. |
pulse.reason |
string|null |
Motif lorsque l’indicateur n’est pas disponible. |
pulse.delta_percent |
integer|null |
Écart global en pourcentage par rapport à la référence. |
pulse.days_counted |
integer |
Nombre de jours de référence pris en compte. |
pulse.is_provisional |
boolean |
Indique si le résultat de l’indicateur est provisoire. |
pulse.minute_of_day |
integer |
Minute actuelle de la journée locale utilisée pour la comparaison. |
pulse.metrics.pageviews |
object |
Valeur du jour, moyenne et delta_percent pour les pages vues. |
pulse.metrics.visitors |
object |
Valeur du jour, moyenne et delta_percent pour les visiteurs. |
pulse.metrics.active_users |
object |
Valeur du jour, moyenne et delta_percent pour les utilisateurs actifs. |
pulse.baseline |
object |
Métadonnées de référence et jours échantillonnés utilisés pour calculer l’indicateur. |
yesterday_vs_day_before |
object |
Comparaison entre journées complètes pour les pages vues et les visiteurs. |
chart |
object |
Séries de 15 minutes pour aujourd’hui, hier et la moyenne, réparties entre pages vues et visiteurs. |
Actualisation et mise en cache
Les réponses sont conservées dans un micro-cache par tracker pendant 30 secondes, avec une fenêtre de 90 secondes durant laquelle des données périmées peuvent être servies afin de protéger le service contre les pics de charge.
Erreurs
| HTTP | Code | Description |
|---|---|---|
| 400 | site_required |
Le paramètre site obligatoire est manquant. |
| 401 | missing_token |
L’en-tête Authorization est manquant. |
| 401 | invalid_token |
Le token n’est pas valide ou a été révoqué. |
| 403 | site_not_authorized |
La clé API n’a pas accès à ce tracker. |
| 429 | rate_limit_exceeded |
La limite de débit a été dépassée. |
| 503 | redis_unavailable |
Le backend temps réel est temporairement indisponible. |
{
"error": {
"code": "invalid_token",
"message": "Bearer token is invalid or revoked."
}
}