Reference · Server API

POST /api/v1/heartbeat

Who is still on the page, and why it is not a visit.

Who is still on your page.

POST /api/v1/heartbeat

This is not a visit#

Beats are not counted in traffic volume, are never scored, and no verdict reads them. What they count is pages open, background tabs included.

The cadence#

Tab stateInterval
Visible15 seconds
Hidden60 seconds

60 seconds while hidden is because browsers throttle background timers to about a minute, so setting it faster only schedules beats that never run.

The first beat is sent immediately. Waiting one interval would make every visit shorter than it invisible, and a quiet site would read as "no heartbeat at all" forever.

The open window#

Three beats at the slower cadence: a page counts as open if a beat arrived within 180 seconds.

Authentication#

The presenceToken from the collect reply. The site and visitor are read out of the token's MAC, not out of the body. Nothing is measured on a beat.

A site that never beats#

Reads as null rather than 0, and the dashboard keeps the two apart.

Turning it off#

data-heartbeat="false". The open-pages counter for that site then reads as unmeasured.