[{"data":1,"prerenderedAt":380},["ShallowReactive",2],{"docsv3-nav":3,"\u002Fdocs\u002Fv3\u002Fconcepts\u002Fsignals":198},[4],{"title":5,"path":6,"stem":7,"children":8,"page":188},"V3","\u002Fdocs\u002Fv3","1.docs\u002Fv3",[9,13,17,21,38,87,189],{"title":10,"path":11,"stem":12},"Introduction","\u002Fdocs\u002Fv3\u002Fintroduction","1.docs\u002Fv3\u002F1.Introduction",{"title":14,"path":15,"stem":16},"Quick start","\u002Fdocs\u002Fv3\u002Fquick-start","1.docs\u002Fv3\u002F2.Quick start",{"title":18,"path":19,"stem":20},"Challenge flow","\u002Fdocs\u002Fv3\u002Fchallenge-flow","1.docs\u002Fv3\u002F3.Challenge flow",{"title":22,"path":23,"stem":24,"children":25},"Fundamentals","\u002Fdocs\u002Fv3\u002Ffundamentals","1.docs\u002Fv3\u002F4.fundamentals",[26,30,34],{"title":27,"path":28,"stem":29},"Signup protection","\u002Fdocs\u002Fv3\u002Ffundamentals\u002Fsignup-protection","1.docs\u002Fv3\u002F4.fundamentals\u002F00.Signup protection",{"title":31,"path":32,"stem":33},"Login protection","\u002Fdocs\u002Fv3\u002Ffundamentals\u002Flogin-protection","1.docs\u002Fv3\u002F4.fundamentals\u002F01.Login protection",{"title":35,"path":36,"stem":37},"Access protection","\u002Fdocs\u002Fv3\u002Ffundamentals\u002Faccess-protection","1.docs\u002Fv3\u002F4.fundamentals\u002F02.Access protection",{"title":39,"path":40,"stem":41,"children":42},"Guides","\u002Fdocs\u002Fv3\u002Fguides","1.docs\u002Fv3\u002F5.guides",[43,47,51,55,59,63,67,71,75,79,83],{"title":44,"path":45,"stem":46},"Account sharing prevention","\u002Fdocs\u002Fv3\u002Fguides\u002Faccount-sharing-prevention","1.docs\u002Fv3\u002F5.guides\u002F1.Account sharing prevention",{"title":48,"path":49,"stem":50},"Web scraping prevention","\u002Fdocs\u002Fv3\u002Fguides\u002Fweb-scraping-prevention","1.docs\u002Fv3\u002F5.guides\u002F13.Web scraping prevention",{"title":52,"path":53,"stem":54},"Ban enforcement","\u002Fdocs\u002Fv3\u002Fguides\u002Fban-enforcement","1.docs\u002Fv3\u002F5.guides\u002F14.Ban enforcement",{"title":56,"path":57,"stem":58},"Chargeback dispute","\u002Fdocs\u002Fv3\u002Fguides\u002Fchargeback-dispute","1.docs\u002Fv3\u002F5.guides\u002F15.Chargeback dispute",{"title":60,"path":61,"stem":62},"Multi-accounting prevention","\u002Fdocs\u002Fv3\u002Fguides\u002Fmulti-accounting-prevention","1.docs\u002Fv3\u002F5.guides\u002F16.Multi-accounting prevention",{"title":64,"path":65,"stem":66},"Account takeover prevention","\u002Fdocs\u002Fv3\u002Fguides\u002Faccount-takeover-prevention","1.docs\u002Fv3\u002F5.guides\u002F2.Account takeover prevention",{"title":68,"path":69,"stem":70},"Risky transaction prevention","\u002Fdocs\u002Fv3\u002Fguides\u002Frisky-transaction-prevention","1.docs\u002Fv3\u002F5.guides\u002F20.Risky transaction prevention",{"title":72,"path":73,"stem":74},"Fake account detection","\u002Fdocs\u002Fv3\u002Fguides\u002Ffake-account-detection","1.docs\u002Fv3\u002F5.guides\u002F3.Fake account detection",{"title":76,"path":77,"stem":78},"Bot detection","\u002Fdocs\u002Fv3\u002Fguides\u002Fbot-detection","1.docs\u002Fv3\u002F5.guides\u002F4.Bot detection",{"title":80,"path":81,"stem":82},"Card testing prevention","\u002Fdocs\u002Fv3\u002Fguides\u002Fcard-testing-prevention","1.docs\u002Fv3\u002F5.guides\u002F5.Card testing prevention",{"title":84,"path":85,"stem":86},"Incentive abuse prevention","\u002Fdocs\u002Fv3\u002Fguides\u002Fincentive-abuse-prevention","1.docs\u002Fv3\u002F5.guides\u002F9.Incentive abuse prevention",{"title":88,"path":89,"stem":90,"children":91,"page":188},"Concepts","\u002Fdocs\u002Fv3\u002Fconcepts","1.docs\u002Fv3\u002F6.concepts",[92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184],{"title":93,"path":94,"stem":95},"Evaluations","\u002Fdocs\u002Fv3\u002Fconcepts\u002Fevaluations","1.docs\u002Fv3\u002F6.concepts\u002F01.evaluations",{"title":97,"path":98,"stem":99},"Actions","\u002Fdocs\u002Fv3\u002Fconcepts\u002Factions","1.docs\u002Fv3\u002F6.concepts\u002F02.actions",{"title":101,"path":102,"stem":103},"Signals","\u002Fdocs\u002Fv3\u002Fconcepts\u002Fsignals","1.docs\u002Fv3\u002F6.concepts\u002F03.signals",{"title":105,"path":106,"stem":107},"Checks","\u002Fdocs\u002Fv3\u002Fconcepts\u002Fchecks","1.docs\u002Fv3\u002F6.concepts\u002F04.checks",{"title":109,"path":110,"stem":111},"Risks","\u002Fdocs\u002Fv3\u002Fconcepts\u002Frisks","1.docs\u002Fv3\u002F6.concepts\u002F05.risks",{"title":113,"path":114,"stem":115},"Verdicts","\u002Fdocs\u002Fv3\u002Fconcepts\u002Fverdicts","1.docs\u002Fv3\u002F6.concepts\u002F06.verdicts",{"title":117,"path":118,"stem":119},"Policies","\u002Fdocs\u002Fv3\u002Fconcepts\u002Fpolicies","1.docs\u002Fv3\u002F6.concepts\u002F07.policies",{"title":121,"path":122,"stem":123},"Challenges","\u002Fdocs\u002Fv3\u002Fconcepts\u002Fchallenges","1.docs\u002Fv3\u002F6.concepts\u002F08.challenges",{"title":125,"path":126,"stem":127},"Concurrency","\u002Fdocs\u002Fv3\u002Fconcepts\u002Fconcurrency","1.docs\u002Fv3\u002F6.concepts\u002F09.concurrency",{"title":129,"path":130,"stem":131},"Impossible travel","\u002Fdocs\u002Fv3\u002Fconcepts\u002Fimpossible-travel","1.docs\u002Fv3\u002F6.concepts\u002F10.impossible-travel",{"title":133,"path":134,"stem":135},"Bots","\u002Fdocs\u002Fv3\u002Fconcepts\u002Fbots","1.docs\u002Fv3\u002F6.concepts\u002F11.bots",{"title":137,"path":138,"stem":139},"Devices","\u002Fdocs\u002Fv3\u002Fconcepts\u002Fdevices","1.docs\u002Fv3\u002F6.concepts\u002F12.devices",{"title":141,"path":142,"stem":143},"Fingerprints","\u002Fdocs\u002Fv3\u002Fconcepts\u002Ffingerprints","1.docs\u002Fv3\u002F6.concepts\u002F13.fingerprints",{"title":145,"path":146,"stem":147},"People","\u002Fdocs\u002Fv3\u002Fconcepts\u002Fpeople","1.docs\u002Fv3\u002F6.concepts\u002F14.people",{"title":149,"path":150,"stem":151},"Lists","\u002Fdocs\u002Fv3\u002Fconcepts\u002Flists","1.docs\u002Fv3\u002F6.concepts\u002F15.lists",{"title":153,"path":154,"stem":155},"Account takeover","\u002Fdocs\u002Fv3\u002Fconcepts\u002Faccount-takeover","1.docs\u002Fv3\u002F6.concepts\u002F16.account-takeover",{"title":157,"path":158,"stem":159},"Account sharing","\u002Fdocs\u002Fv3\u002Fconcepts\u002Faccount-sharing","1.docs\u002Fv3\u002F6.concepts\u002F17.account-sharing",{"title":161,"path":162,"stem":163},"Fake account","\u002Fdocs\u002Fv3\u002Fconcepts\u002Ffake-account","1.docs\u002Fv3\u002F6.concepts\u002F18.fake-account",{"title":165,"path":166,"stem":167},"Scraping","\u002Fdocs\u002Fv3\u002Fconcepts\u002Fscraping","1.docs\u002Fv3\u002F6.concepts\u002F19.scraping",{"title":169,"path":170,"stem":171},"Linked accounts","\u002Fdocs\u002Fv3\u002Fconcepts\u002Flinked-accounts","1.docs\u002Fv3\u002F6.concepts\u002F20.linked-accounts",{"title":173,"path":174,"stem":175},"New IP","\u002Fdocs\u002Fv3\u002Fconcepts\u002Fip","1.docs\u002Fv3\u002F6.concepts\u002F21.ip",{"title":177,"path":178,"stem":179},"Anonymizing network","\u002Fdocs\u002Fv3\u002Fconcepts\u002Fanonymizing-network","1.docs\u002Fv3\u002F6.concepts\u002F22.anonymizing-network",{"title":181,"path":182,"stem":183},"Email quality","\u002Fdocs\u002Fv3\u002Fconcepts\u002Femail","1.docs\u002Fv3\u002F6.concepts\u002F23.email",{"title":185,"path":186,"stem":187},"Velocity","\u002Fdocs\u002Fv3\u002Fconcepts\u002Fvelocity","1.docs\u002Fv3\u002F6.concepts\u002F24.velocity",false,{"title":190,"path":191,"stem":192,"children":193,"page":188},"Advanced","\u002Fdocs\u002Fv3\u002Fadvanced","1.docs\u002Fv3\u002F7.Advanced",[194],{"title":195,"path":196,"stem":197},"Proxy setup","\u002Fdocs\u002Fv3\u002Fadvanced\u002Fproxy-setup","1.docs\u002Fv3\u002F7.Advanced\u002F1.Proxy-setup",{"id":199,"title":101,"body":200,"description":371,"extension":372,"meta":373,"navigation":374,"path":102,"rawbody":375,"seo":376,"stem":103,"__hash__":379},"docsv3\u002F1.docs\u002Fv3\u002F6.concepts\u002F03.signals.md",{"type":201,"value":202,"toc":360},"minimark",[203,207,216,219,224,250,254,280,284,310,314,328,332,335,339,353,357],[204,205,101],"h1",{"id":206},"signals",[208,209,210,211,215],"p",{},"Signals are the raw measurements Rupt collects from a user's environment when an ",[212,213,214],"a",{"href":94},"evaluation"," runs. They aren't decisions on their own. They're the inputs that feed fingerprinting and, more broadly, our ability to spot risk.",[208,217,218],{},"Here are some of the kinds of signals we look at. This is by no means the full list, just a sense of what goes in and how we use it.",[220,221,223],"h2",{"id":222},"network","Network",[225,226,227,236,243],"ul",{},[228,229,230,231,235],"li",{},"The ",[232,233,234],"strong",{},"IP address"," the connection is coming from.",[228,237,238,239,242],{},"Rough ",[232,240,241],{},"location"," (city, region, country) derived from that IP.",[228,244,245,246,249],{},"Whether the IP looks like a ",[232,247,248],{},"VPN, proxy, Tor exit, or hosting provider",". That's a useful tell for things like scraping and account takeover.",[220,251,253],{"id":252},"device","Device",[225,255,256,262,268,274],{},[228,257,258,261],{},[232,259,260],{},"Type",": phone, tablet, or computer.",[228,263,264,267],{},[232,265,266],{},"Hardware"," details like CPU, memory, and touch support.",[228,269,270,273],{},[232,271,272],{},"Screen",": resolution and window size.",[228,275,230,276,279],{},[232,277,278],{},"operating system and platform",".",[220,281,283],{"id":282},"browser","Browser",[225,285,286,292,297,303],{},[228,287,288,291],{},[232,289,290],{},"User agent"," and the related client hints.",[228,293,294,279],{},[232,295,296],{},"Language, timezone, and locale",[228,298,299,302],{},[232,300,301],{},"Fonts and plugins"," that are installed.",[228,304,305,306,309],{},"Smaller ",[232,307,308],{},"permission and configuration"," details. On their own they're nothing, but together they add up to a fairly specific setup.",[220,311,313],{"id":312},"behavior","Behavior",[225,315,316,322],{},[228,317,318,319,279],{},"Whether interactions look ",[232,320,321],{},"real or synthetic",[228,323,324,327],{},[232,325,326],{},"Automation indicators",": signs that a script or testing framework is driving the page rather than a person.",[220,329,331],{"id":330},"how-the-browser-renders-things","How the browser renders things",[208,333,334],{},"Browsers draw and compute certain things in tiny, consistent ways. The same device usually produces the same result every time. When it doesn't, that's often a sign something is being faked or masked.",[220,336,338],{"id":337},"native-apps-ios-and-android","Native apps (iOS and Android)",[208,340,341,342,345,346,349,350,279],{},"When you ship our mobile SDK, we can also tell whether a device is ",[232,343,344],{},"jailbroken or rooted",", running in a ",[232,347,348],{},"simulator or emulator",", or has a ",[232,351,352],{},"debugger attached",[220,354,356],{"id":355},"how-it-comes-together","How it comes together",[208,358,359],{},"No single signal tells you much by itself. IPs change, browsers update, people travel. The value is in the mix: we weigh all of it together, and the combination is what actually points to whether something's risky.",{"title":361,"searchDepth":362,"depth":362,"links":363},"",2,[364,365,366,367,368,369,370],{"id":222,"depth":362,"text":223},{"id":252,"depth":362,"text":253},{"id":282,"depth":362,"text":283},{"id":312,"depth":362,"text":313},{"id":330,"depth":362,"text":331},{"id":337,"depth":362,"text":338},{"id":355,"depth":362,"text":356},"[object Object]","md",{},true,"---\ntitle: Signals\ndescription: Signals are the raw measurements Rupt collects from a user's environment: network, device, browser, behavior, and native integrity. They're the inputs that feed fingerprinting and risk detection.\n---\n\n# Signals\n\nSignals are the raw measurements Rupt collects from a user's environment when an [evaluation](\u002Fdocs\u002Fv3\u002Fconcepts\u002Fevaluations) runs. They aren't decisions on their own. They're the inputs that feed fingerprinting and, more broadly, our ability to spot risk.\n\nHere are some of the kinds of signals we look at. This is by no means the full list, just a sense of what goes in and how we use it.\n\n## Network\n\n- The **IP address** the connection is coming from.\n- Rough **location** (city, region, country) derived from that IP.\n- Whether the IP looks like a **VPN, proxy, Tor exit, or hosting provider**. That's a useful tell for things like scraping and account takeover.\n\n## Device\n\n- **Type**: phone, tablet, or computer.\n- **Hardware** details like CPU, memory, and touch support.\n- **Screen**: resolution and window size.\n- The **operating system and platform**.\n\n## Browser\n\n- **User agent** and the related client hints.\n- **Language, timezone, and locale**.\n- **Fonts and plugins** that are installed.\n- Smaller **permission and configuration** details. On their own they're nothing, but together they add up to a fairly specific setup.\n\n## Behavior\n\n- Whether interactions look **real or synthetic**.\n- **Automation indicators**: signs that a script or testing framework is driving the page rather than a person.\n\n## How the browser renders things\n\nBrowsers draw and compute certain things in tiny, consistent ways. The same device usually produces the same result every time. When it doesn't, that's often a sign something is being faked or masked.\n\n## Native apps (iOS and Android)\n\nWhen you ship our mobile SDK, we can also tell whether a device is **jailbroken or rooted**, running in a **simulator or emulator**, or has a **debugger attached**.\n\n## How it comes together\n\nNo single signal tells you much by itself. IPs change, browsers update, people travel. The value is in the mix: we weigh all of it together, and the combination is what actually points to whether something's risky.\n",{"title":101,"description":377},{"Signals are the raw measurements Rupt collects from a user's environment":378},"network, device, browser, behavior, and native integrity. They're the inputs that feed fingerprinting and risk detection.","IwRd1U30NvGqq0JXLhJFJG4nFEzOpm4B3owYsWGoHVY",1780344893221]