Download all
Docs · Reference · Signals

All 267 signals

Every datum we collect along with the score weight it carries when it fires. Weights stack so they are capped at 100 and the final score is the sum.

Server signals are computed on our side from the connection or threat intel tables. Client signals come from the browser SDK. Derived signals are computed from comparing the others.

Network · S001 to S059

IP, TLS, HTTP, WebRTC. (59 signals)

IDNameDescriptionWeightSide
S001ip.v4IPv4 of the connection—server
S002ip.v6IPv6 of the connection—server
S003ip.subnet_24/24 block of IPv4+25derived
S004ip.subnet_48/48 block of IPv6+25derived
S005ip.asnAutonomous System Number—server
S006ip.asn_orgASN organization name—server
S007ip.countryISO 3166-1 country—server
S008ip.regionState/province—server
S009ip.cityCity—server
S010ip.lat_longCity centroid coordinates—server
S011ip.timezoneIANA timezone of IP location—server
S012ip.hosting_typeCategory (residential/datacenter/vpn/proxy/mobile/...)—server
S013ip.is_vpnKnown VPN exit+25server
S014ip.is_torTor exit node+80server
S015ip.is_proxyKnown proxy+30server
S016ip.is_residential_proxyResidential proxy network+50server
S017ip.is_mobile_carrierMobile carrier IP+-10server
S018ip.is_datacenterDatacenter IP+30server
S019ip.is_cloud_providerMajor cloud provider IP+35server
S020ip.reputation_scoreOur reputation score 0–100+40server
S021ip.first_seen_in_systemFirst time we ever saw this IP—derived
S022ip.last_seen_in_systemMost recent time we saw this IP—derived
S023ip.velocity_1hChecks from this IP in 1h+20derived
S024ip.velocity_24hChecks from this IP in 24h+25derived
S025ip.velocity_7dChecks from this IP in 7d+15derived
S026subnet.velocity_24hChecks from /24 in 24h+20derived
S027asn.velocity_24hChecks from ASN in 24h+25derived
S028ip.concurrent_sessionsActive sessions from this IP+15derived
S029ip.rdnsReverse DNS PTR—server
S030ip.rdns_leaks_datacenterrDNS leaks datacenter+20derived
S031ip.timezone_vs_browser_tz_mismatchIP TZ != browser TZ+20derived
S032ip.country_vs_browser_locale_mismatchBrowser language unusual for IP country+10derived
S033tls.ja3JA3 hash from ClientHello—server
S034tls.ja3_textJA3 raw text—server
S035tls.ja4JA4 fingerprint—server
S036tls.ja4_textJA4 raw text—server
S037tls.has_greaseTLS GREASE extension present+30server
S038tls.ja4_known_botJA4 matches known bot+60server
S039tls.ja4_matches_claimed_uaJA4 consistent with UA claim+30derived
S040http.http2_fingerprintHTTP/2 SETTINGS+priority fingerprint—server
S041http.http2_fingerprint_mismatchHTTP/2 fingerprint inconsistent with claimed browser+30derived
S042http.header_casing_anomalyHeader casing inconsistent with browser+15server
S043http.sec_fetch_missingSec-Fetch-* missing on modern browser claim+10server
S044http.user_agentUser-Agent header—server
S045http.accept_languageAccept-Language header—server
S046webrtc.public_ip_mismatchWebRTC IP != connection IP+25derived
S047dns.over_https_usedClient appears to use DoH—derived
S048mtu.inferredInferred MTU—server
S049tcp.window_sizeTCP window size—server
S050tcp.ttl_estimateInitial TTL estimate—server
S051tcp.fingerprint_p0fp0f-style passive OS fingerprint—server
S052tls.alpnALPN list—server
S053tls.sniSNI value—server
S054tls.cipher_chosenCipher suite selected—server
S055tls.versionNegotiated TLS version—server
S056tls.session_resumedTLS session resumed—server
S057http.refererReferer header (server-observed)—server
S058http.originOrigin header—server
S059connect.latency_msTLS handshake latency—server

Browser or device · S060 to S172

Navigator, screen, fonts, canvas, WebGL, audio. (113 signals)

IDNameDescriptionWeightSide
S060nav.user_agentnavigator.userAgent—client
S061nav.user_agent_dataUA-CH high-entropy values—client
S062nav.platformnavigator.platform—client
S063nav.languagesnavigator.languages—client
S064nav.languagenavigator.language—client
S065nav.hardware_concurrencynavigator.hardwareConcurrency (CPU cores)—client
S066nav.device_memorynavigator.deviceMemory (GB bucket)—client
S067nav.max_touch_pointsTouch points supported—client
S068nav.do_not_trackDNT—client
S069nav.cookie_enablednavigator.cookieEnabled—client
S070nav.onlinenavigator.onLine—client
S071nav.pdf_viewer_enablednavigator.pdfViewerEnabled—client
S072nav.plugins_countNumber of navigator.plugins entries—client
S073nav.plugins_hashHash of plugins list—client
S074nav.mime_types_hashHash of navigator.mimeTypes—client
S075screen.widthscreen.width—client
S076screen.heightscreen.height—client
S077screen.avail_widthscreen.availWidth—client
S078screen.avail_heightscreen.availHeight—client
S079screen.color_depthscreen.colorDepth—client
S080screen.pixel_depthscreen.pixelDepth—client
S081screen.pixel_ratiowindow.devicePixelRatio—client
S082screen.orientationscreen.orientation.type—client
S083screen.viewport_widthinnerWidth—client
S084screen.viewport_heightinnerHeight—client
S085locale.timezoneIntl.DateTimeFormat resolvedOptions.timeZone—client
S086locale.timezone_offsetDate getTimezoneOffset—client
S087locale.number_formatIntl.NumberFormat resolvedOptions—client
S088locale.date_formatIntl.DateTimeFormat resolvedOptions—client
S089canvas.hashCanvas 2D rendering hash—client
S090canvas.emoji_hashCanvas emoji rendering hash—client
S091canvas.text_hashCanvas text rendering hash—client
S092webgl.vendorWebGL VENDOR—client
S093webgl.rendererWebGL RENDERER—client
S094webgl.unmasked_vendorWEBGL_debug_renderer_info unmasked vendor—client
S095webgl.unmasked_rendererWEBGL_debug_renderer_info unmasked renderer (GPU)—client
S096webgl.params_hashHash of MAX_TEXTURE_SIZE, MAX_VIEWPORT_DIMS, etc.—client
S097webgl.extensions_hashHash of supported WebGL extensions—client
S098webgl.shader_precision_hashHash of shader precision formats—client
S099webgl2.supportedWebGL2 context available—client
S100audio.fingerprintOfflineAudioContext rendering hash—client
S101audio.sample_rateAudioContext sampleRate—client
S102audio.channel_count_maxdestination.maxChannelCount—client
S103audio.compressor_node_hashDynamicsCompressorNode output hash—client
S104fonts.installedList of detected installed fonts—client
S105fonts.installed_hashHash of installed fonts list—client
S106fonts.installed_countNumber of installed fonts detected—client
S107media.speech_voicesspeechSynthesis.getVoices()—client
S108media.speech_voices_hashHash of speech voices—client
S109media.media_capabilities_hashHash of MediaCapabilities decodingInfo results—client
S110media.video_inputsNumber of video inputs (no labels)—client
S111media.audio_inputsNumber of audio inputs (no labels)—client
S112media.audio_outputsNumber of audio outputs—client
S113perms.notificationsPermission state—client
S114perms.geolocationPermission state—client
S115perms.cameraPermission state—client
S116perms.microphonePermission state—client
S117perms.midiPermission state—client
S118webrtc.public_ipsWebRTC discovered public IPs (server-reflexive)—client
S119webrtc.local_ipsWebRTC discovered local IPs—client
S120math.fingerprintHash of Math.* edge cases (asinh, etc.)—client
S121timing.performance_now_resolutionperformance.now() effective resolution—client
S122timing.date_resolutionDate.now() resolution—client
S123storage.persistednavigator.storage.persisted()—client
S124storage.quota_gbnavigator.storage.estimate().quota in GB—client
S125storage.session_supportedsessionStorage available—client
S126storage.local_supportedlocalStorage available—client
S127storage.idb_supportedIndexedDB available—client
S128feature.service_workernavigator.serviceWorker present—client
S129feature.push_managerPushManager available—client
S130feature.payment_requestPaymentRequest available—client
S131feature.credential_managementnavigator.credentials available—client
S132feature.bluetoothnavigator.bluetooth available—client
S133feature.usbnavigator.usb available—client
S134feature.hidnavigator.hid available—client
S135feature.serialnavigator.serial available—client
S136feature.sharenavigator.share available—client
S137feature.locksnavigator.locks available—client
S138feature.wake_locknavigator.wakeLock available—client
S139feature.gamepadgetGamepads available—client
S140feature.eye_dropperwindow.EyeDropper available—client
S141feature.shape_detectionBarcodeDetector etc.—client
S142feature.web_assemblyWebAssembly support—client
S143feature.web_workersWorker support—client
S144feature.shared_workersSharedWorker support—client
S145feature.web_rtcRTCPeerConnection support—client
S146css.media_pointer_coarsematchMedia pointer: coarse—client
S147css.media_pointer_finematchMedia pointer: fine—client
S148css.media_hover_hovermatchMedia hover: hover—client
S149css.media_any_pointermatchMedia any-pointer—client
S150css.media_prefers_darkmatchMedia prefers-color-scheme: dark—client
S151css.media_prefers_contrastmatchMedia prefers-contrast—client
S152css.media_prefers_reduced_motionmatchMedia prefers-reduced-motion—client
S153css.forced_colorsmatchMedia forced-colors—client
S154css.display_modematchMedia display-mode: standalone—client
S155window.outer_dimensionsouterWidth/outerHeight—client
S156window.screen_xscreenX/screenY—client
S157window.dpi_inferredInferred DPI from devicePixelRatio—client
S158battery.chargingBattery API charging state—client
S159battery.levelBattery API level—client
S160connection.effective_typenavigator.connection.effectiveType—client
S161connection.downlinknavigator.connection.downlink—client
S162connection.rttnavigator.connection.rtt—client
S163connection.save_datanavigator.connection.saveData—client
S164connection.typenavigator.connection.type—client
S165intl.localeIntl.Locale resolved values—client
S166intl.collationCollation fingerprint via sort order—client
S167intl.currency_formatCurrency format sample—client
S168console.fingerprintconsole-specific quirks—client
S169error.stack_formatError stack format fingerprint—client
S170engine.v8_featuresV8-specific feature detection—client
S171engine.spidermonkey_featuresSpiderMonkey-specific feature detection—client
S172engine.webkit_featuresWebKit-specific feature detection—client

Anti evasion · S173 to S199

Bot frameworks, headless tells, spoof detection. (27 signals)

IDNameDescriptionWeightSide
S173evasion.webdriver_flagnavigator.webdriver === true+90derived
S174evasion.puppeteer_signaturePuppeteer signatures present+80derived
S175evasion.playwright_signaturePlaywright signatures present+80derived
S176evasion.selenium_signatureSelenium signatures present+80derived
S177evasion.is_headlessHeadless indicators (HeadlessChrome UA, missing plugins, etc.)+70derived
S178evasion.stealth_pluginStealth plugin inconsistencies+50derived
S179evasion.canvas_noiseCanvas fingerprint noise+30derived
S180evasion.audio_noiseAudio fingerprint noise+30derived
S181evasion.webgl_spoofedWebGL renderer inconsistent with platform+25derived
S182evasion.tor_browserTor Browser detected+70derived
S183consistency.ua_platform_mismatchUA platform conflicts with navigator.platform+60derived
S184consistency.ua_webgl_mismatchUA OS conflicts with WebGL renderer+60derived
S185consistency.ua_client_hints_mismatchUA conflicts with Client Hints+40derived
S186consistency.touch_platform_mismatchTouch capability conflicts with platform+70derived
S187consistency.mobile_screen_mismatchMobile flag with desktop screen size+50derived
S188consistency.tz_ip_mismatchBrowser timezone differs from IP location+20derived
S189consistency.locale_ip_mismatchBrowser language unusual for IP country+10derived
S190consistency.browser_version_staleBrowser version > 6 months old+15derived
S191consistency.plugins_browser_mismatchNo plugins on claimed modern Chrome+30derived
S192consistency.languages_mismatchnavigator.language not in navigator.languages+40derived
S193consistency.notification_inconsistentNotification API state inconsistent+30derived
S194evasion.window_chrome_missingwindow.chrome missing on Chrome UA—derived
S195evasion.permissions_query_liesnavigator.permissions.query returns inconsistent result—derived
S196evasion.iframe_chrome_liesiframe contentWindow.chrome inconsistent—derived
S197evasion.toString_tamperedFunction.toString returns suspicious source—derived
S198evasion.battery_unsupported_in_modern_chromeBattery API state suggests masking—derived
S199evasion.plugin_array_constructor_checkplugins constructor name tampered—derived

Behavioral · S200 to S221

Mouse, keystrokes, paste, autofill. (22 signals)

IDNameDescriptionWeightSide
S200behavior.mouse_event_countNumber of mouse events observed before submit—client
S201behavior.keystroke_countNumber of keystrokes—client
S202behavior.touch_event_countTouch events observed—client
S203behavior.focus_blur_countFocus/blur events—client
S204behavior.scroll_distanceCumulative scroll distance—client
S205behavior.time_on_page_msTime on page before submit—client
S206behavior.copy_paste_countNumber of paste events—client
S207behavior.paste_into_emailEmail field filled by paste—client
S208behavior.paste_into_passwordPassword field filled by paste—client
S209behavior.tab_switchesvisibilitychange events with hidden—client
S210behavior.visibility_changesvisibilitychange events count—client
S211behavior.no_human_inputNo mouse movement and no keystroke variance+60derived
S212behavior.keystroke_too_uniformKeystroke timing too uniform+40derived
S213behavior.mouse_too_straightMouse paths too straight+30derived
S214behavior.typing_speed_wpmEstimated typing speed—derived
S215behavior.first_input_delay_msDelay from page load to first user input—client
S216behavior.form_fill_orderOrder in which form fields were filled—client
S217behavior.form_fill_speed_msTime taken to fill the form—client
S218behavior.autofill_usedBrowser autofill detected—client
S219behavior.devtools_openDevTools detected as open—client
S220behavior.mouse_acceleration_varianceVariance in mouse acceleration—derived
S221behavior.click_timing_varianceVariance in click timing—derived

Identity · S222 to S260

Email, phone, card. (39 signals)

IDNameDescriptionWeightSide
S222email.rawEmail as provided—server
S223email.normalizedLowercased, trimmed—server
S224email.canonicalAfter +alias stripping, Gmail dot-collapse—derived
S225email.localLocal part—server
S226email.domainDomain part—server
S227email.canonical_matchSame canonical email as previous trial+60derived
S228email.is_disposableDisposable email provider+30derived
S229email.is_relayEmail relay/forwarding service (Apple, SimpleLogin, etc.)+10derived
S230email.is_freemailFree webmail provider—derived
S231email.is_corporateLikely corporate email (non-freemail, has MX, > 1y old)—derived
S232email.is_role_basedRole-based local part (admin, info, ...)+15derived
S233email.is_gibberishRandom-looking local part+20derived
S234email.local_shortLocal part length < 4+5derived
S235email.local_numeric_ratioNumeric ratio > 0.5+5derived
S236email.domain_age_daysDays since WHOIS registration—server
S237email.domain_newDomain age < 30 days+25derived
S238email.mx_validDomain has MX records+30server
S239email.mx_countMX records returned—server
S240email.smtp_deliverableSMTP RCPT TO check+30server
S241email.catch_all_domainDomain accepts any mailbox+10server
S242email.plus_alias_countSame canonical seen with multiple +aliases+30derived
S243email.gmail_dot_variant_countSame Gmail with dot variants+35derived
S244phone.rawPhone as provided—server
S245phone.e164E.164 normalized—derived
S246phone.countryCountry from E.164 prefix—derived
S247phone.line_typemobile / fixed_line / voip / ...—derived
S248phone.is_voipVoIP number+20derived
S249phone.is_toll_freeToll-free number+10derived
S250phone.canonical_matchSame phone as previous trial user+50derived
S251phone.country_vs_ip_mismatchPhone country differs from IP country+10derived
S252phone.country_vs_email_mismatchPhone country disagrees with email TLD country+5derived
S253card.fpCard fingerprint from PSP—server
S254card.fp_matchSame card as previous trial user+70derived
S255card.binCard BIN (first 6–8)—server
S256card.is_prepaidPrepaid card+20derived
S257card.is_virtual_disposablePrivacy.com / Revolut Disposable / etc.+35derived
S258card.country_vs_ip_mismatchCard country differs from IP country+10derived
S259card.country_vs_billing_mismatchCard country differs from billing country+15derived
S260card.avs_mismatchAVS not full match+10derived

Composite IDs · S261 to S264

Derived SHA256 identifiers used for matching. (4 signals)

IDNameDescriptionWeightSide
S261composite.hardware_idHardware-level SHA-256 over canvas+WebGL+audio+CPU+RAM+screen+platform+45derived
S262composite.browser_idBrowser-profile SHA-256 over UA+fonts+voices+locale+permissions+30derived
S263composite.network_idNetwork SHA-256 over ASN+subnet+JA4+HTTP2+25derived
S264composite.identity_idIdentity SHA-256 over email canonical+phone+card+50derived

Soft identifiers · S265 to S267

Cookie, localStorage, IndexedDB. (3 signals)

IDNameDescriptionWeightSide
S265soft.first_party_cookieFirst-party visitor cookie (_tellr_visitor)—client
S266soft.local_storage_idlocalStorage visitor ID (_tellr_v)—client
S267soft.idb_idIndexedDB visitor ID (_tellr.v.id)—client