REST API endpoint

GET /v1/pulse

Today pulse, yesterday comparison, and 15-minute intraday curves.

Request

GET https://api.nowmetrix.com/v1/pulse?site=TRACKER_ID

Use this endpoint when you need to explain whether the current day is above or below the normal pattern for the same weekday and time of day.

Authentication

Requires an API key in the Authorization header: Authorization: Bearer nm_YOUR_KEY.

Query parameters

Name Type Required Description
site string required Tracker ID. The API key must have access to this tracker.

cURL example

curl -H "Authorization: Bearer nm_YOUR_KEY" \
  "https://api.nowmetrix.com/v1/pulse?site=TRACKER_ID"

Example response

{
  "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
        }
      ]
    }
  }
}

Response fields

Field Type Description
site string Tracker ID used for the request.
updated_at string UTC timestamp for when the payload was generated.
timezone string Tracker timezone used to resolve local dates.
pulse.available boolean Whether enough history is available for pulse calculation.
pulse.reason string|null Reason when pulse is not available.
pulse.delta_percent integer|null Overall percentage difference from the baseline.
pulse.days_counted integer Number of baseline days included.
pulse.is_provisional boolean Whether the pulse result is provisional.
pulse.minute_of_day integer Current minute of the local day used for comparison.
pulse.metrics.pageviews object Today, average, and delta_percent for pageviews.
pulse.metrics.visitors object Today, average, and delta_percent for visitors.
pulse.metrics.active_users object Today, average, and delta_percent for active users.
pulse.baseline object Baseline metadata and sample days used for the pulse calculation.
yesterday_vs_day_before object Completed-day comparison for pageviews and visitors.
chart object 15-minute series for today, yesterday, and average, split into pageviews and visitors.

Freshness and caching

Responses are microcached per tracker for 30 seconds, with a 90-second stale window for burst protection.

Errors

HTTP Code Description
400 site_required The site query parameter is missing.
401 missing_token The Authorization header is missing.
401 invalid_token The token is invalid or revoked.
403 site_not_authorized The API key has no access to this tracker.
429 rate_limit_exceeded The rate limit has been exceeded.
503 redis_unavailable The realtime backend is temporarily unavailable.
{
  "error": {
    "code": "invalid_token",
    "message": "Bearer token is invalid or revoked."
  }
}