Endpoint de la API REST
GET /v1/pulse
Pulso de hoy, comparación con ayer y curvas intradía de 15 minutos.
Solicitud
GET
https://api.nowmetrix.com/v1/pulse?site=TRACKER_ID
Utilice Pulse para responder a una pregunta más útil que «¿Cuánto tráfico tenemos?»: ¿está hoy por encima o por debajo del patrón normal para este día de la semana y esta hora?
Autenticación
Requiere una clave de API en la cabecera Authorization: Authorization: Bearer nm_YOUR_KEY.
Parámetros de consulta
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
site |
string |
obligatorio | Identificador del tracker. La clave de API debe tener acceso a este tracker. |
Ejemplo de cURL
curl -H "Authorization: Bearer nm_YOUR_KEY" \
"https://api.nowmetrix.com/v1/pulse?site=TRACKER_ID"
Ejemplo de respuesta
{
"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
}
]
}
}
}
Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
site |
string |
Identificador del tracker utilizado para la solicitud. |
updated_at |
string |
Marca de tiempo UTC en la que se generó la respuesta. |
timezone |
string |
Zona horaria del tracker utilizada para determinar las fechas locales. |
pulse.available |
boolean |
Indica si hay suficiente historial para calcular el pulso. |
pulse.reason |
string|null |
Motivo por el que el pulso no está disponible. |
pulse.delta_percent |
integer|null |
Diferencia porcentual general con respecto a la referencia. |
pulse.days_counted |
integer |
Número de días incluidos en la referencia. |
pulse.is_provisional |
boolean |
Indica si el resultado del pulso es provisional. |
pulse.minute_of_day |
integer |
Minuto actual del día local utilizado para la comparación. |
pulse.metrics.pageviews |
object |
Valor de hoy, media y delta_percent de las páginas vistas. |
pulse.metrics.visitors |
object |
Valor de hoy, media y delta_percent de los visitantes. |
pulse.metrics.active_users |
object |
Valor de hoy, media y delta_percent de los usuarios activos. |
pulse.baseline |
object |
Metadatos de la referencia y días de muestra utilizados para calcular el pulso. |
yesterday_vs_day_before |
object |
Comparación de días completos de páginas vistas y visitantes. |
chart |
object |
Series de 15 minutos de hoy, ayer y la media, separadas para páginas vistas y visitantes. |
Actualización y caché
Las respuestas se almacenan en microcaché por tracker durante 30 segundos, con una ventana de datos obsoletos de 90 segundos para proteger frente a picos de solicitudes.
Errores
| HTTP | Código | Descripción |
|---|---|---|
| 400 | site_required |
Falta el parámetro obligatorio site. |
| 401 | missing_token |
Falta la cabecera Authorization. |
| 401 | invalid_token |
El token no es válido o se ha revocado. |
| 403 | site_not_authorized |
La clave de API no tiene acceso a este tracker. |
| 429 | rate_limit_exceeded |
Se ha superado el límite de solicitudes. |
| 503 | redis_unavailable |
El backend en tiempo real no está disponible temporalmente. |
{
"error": {
"code": "invalid_token",
"message": "Bearer token is invalid or revoked."
}
}