StaySignals
Browser SDK

What it collects

High-level view of what staysignals.js observes in the browser.

The SDK runs autonomously in the browser and reports observations to StaySignals. You do not configure what it collects — the signal set is managed server-side and evolves over time.

The observations fall into three broad categories.

Device and browser information

Browser version, platform, viewport dimensions, user agent, installed fonts, rendering quirks, and other properties a normal web page can read. These describe the environment the visitor is using. Unusual environments — headless browsers, automation frameworks, spoofed user agents — look different from normal ones.

Page and interaction behavior

Which pages the visitor sees, how long they stay, how they move between pages (including SPA URL changes), and how they interact with forms — typing cadence, paste vs. type, cursor movement, focus order. Real booking intent has a shape; automated traffic and no-intent humans often don't.

Network context

The session's originating IP and its metadata (resolved server-side), including how it relates to other sessions seen on the same network.


You don't pick which signals fire. The model combines them into a risk_score the same way regardless of your risk setting — the setting only shapes how that score becomes a suggested_action.

The set of signals evolves over time as non-customer behavior shifts. Specific signal names are implementation detail and not part of the API surface.

On this page