Checks
Checks are the boolean and numeric facts Rupt derives from signals plus a user's history. They turn raw measurements into the language Rupt reasons about: is this fingerprint new for this user, is this IP a VPN, has this user moved impossibly far since we last saw them.
A check is deliberately narrow. Each one captures a single fact at a single moment, and on its own each is weak. A new IP isn't suspicious by itself, and neither is a webmail address. The power comes from how they combine into risks and how your policies match conditions across them.
Here's most of what we check. We keep this in sync with the app as best we can, but it isn't a guarantee. The dashboard policy editor always has the live, complete list.
Identity newness
How established the user, IP, or fingerprint is for this account.
is_new_useris_new_ip: see New IP.is_new_fingerprintuser_age_daysfingerprint_user_count: how many users share this fingerprint.
Network reputation
What kind of network the connection is coming from. See Anonymizing network.
ip_is_vpnip_is_proxyip_is_torip_is_hostingip_country
Velocity and geography
How the user moves through space and time.
impossible_travel: see Impossible travel.concurrent_sessions: see Concurrency.has_high_velocity: an unusual rate of actions in a short window. See Velocity.
Device counts
How many devices a user has piled up. Some of the strongest account-sharing signals there are. See Devices.
device_countcomputer_device_counttablet_device_countmobile_device_count
Email quality
What kind of email address was provided. See Email quality.
email_is_disposableemail_is_webmailemail_is_invalidemail_is_accept_all
Account state
Verification and status flags on the user.
is_email_verifiedis_phone_verifiedis_suspendedorigin_is_new: first time this request origin has been seen for your project in the last 90 days.
Device integrity
Only populated when you ship the iOS or Android SDK. Web flows leave these unset, and each platform reports only its own flags.
jailbroken_iosrooted_androidis_simulatoris_emulatordebugger_attachedui_testing
Fingerprint observations
A separate family of checks derived from the deeper signals we collect during fingerprinting. Unlike the checks above, these aren't conditions you match in policies directly. They roll up into the observation-only risks (bots, tampering, anti-fingerprinting, incognito, and replay attacks) so you can watch them without them forcing a verdict.
Bot
bot_framework_globalsnavigator_webdriver_trueevent_istrusted_syntheticwindow_process_presentmediadevices_absent_modern_uadevtools_open_during_flowwidevine_missing_on_chromewebgl_swiftshader_rendereruach_missing_on_chromespeech_voices_empty_on_desktop_chromescreen_frame_all_zero_desktopfonts_empty_on_desktop
Tampering
prototype_integrity_failplugin_prototype_mismatchengine_probe_mismatchmath_random_patcheduach_vs_ua_mismatchnotifications_permission_spoofdeviceorientation_permission_non_ios
Anti-fingerprinting
tor_browser_signaturesafari_itp_lockdownfirefox_etp_timerbrave_farbling_detectedfirefox_rfp_detected
Incognito
languages_dedup_incognitostorage_quota_incognitopermissions_stuck_promptindexeddb_failuresnotifications_private_spoof
Replay attack
consumed_noncenonce_session_mismatchunknown_noncemissing_noncemissing_cookiesession_expired
How checks are used
Checks feed two systems:
- Risks: Rupt aggregates the relevant checks into a weighted score per category: account takeover, fake account, account sharing, scraping, and linked accounts.
- Policies: your rules can match conditions over checks directly. A policy can say "if
impossible_travelandip_is_vpn, challenge" without ever going through a risk score.
The complete, current list of checks and their conditions lives in the policy editor in the dashboard.
- Need help? Contact support.
- Want to see Rupt in action? Request a demo.
- Questions? Talk to sales.
- Check out our changelog.
- Check our status page.
- LLM? Read llms.txt.