Android
Insights Overview
| № | Name | API Code | API tag | Required Module |
|---|---|---|---|---|
| 1 | Device | deviceInfo | features | Core Module |
| 2 | Velocity | velocity | features | Core Module |
| 3 | IP Info | ipInfo | features | Core Module |
| 4 | Fraud Alerts | fraudAlerts | features | Depends on alert |
| 5 | UI Interactions | uiInteractions | features | Behavioral Module |
| 6 | Finger Gestures | fingerGestures | features | Behavioral Module |
| 7 | Touches | touches | features | Behavioral Module |
| 8 | Typing | typing | features | Behavioral Module |
| 9 | Anomaly | anomaly | features | Behavioral Module |
Accessing API FieldsDiscover how to retrieve the API fields listed below through the Dataset Insights API.
NoteOur API typically returns non-null values as
string. For type spec on each field, see the Data Type column in the tables below.For detailed type specifications, check out the Type Specification
Device
Requires integration of latest Core Module
| Field | Data Type | Description |
|---|---|---|
deviceId | string | Unique device identifier. Max length: 100 |
deviceBrand | string | The brand with which the product/hardware will be associated. Max length: 100 |
deviceModel | string | Product name visible to the end user. Max length: 100 |
deviceOsVersion | string | Version of the operating system (Android). Max length: 100 |
deviceProduct | string | The name of the overall product. Max length: 100 |
deviceScreenSize | string | Screen resolution of the device. Max length: 100 |
deviceExternalStorageTotal | float | Total size of the device's external storage in Megabytes |
deviceExternalStorageFree | float | Available space of the device's external storage |
deviceMainStorageTotal | float | Total size of the storage on the device (data directory) |
deviceMainStorageFree | float | Available storage space on the device (data directory) in Megabytes |
deviceRamTotalSize | float | Total size of the RAM on the device |
deviceLocationEnabled | boolean | Indicates whether the device location is enabled or not |
deviceWifiIsEnabled | boolean | Indicates whether the WiFi is enabled or not |
deviceBluetoothOn | boolean | Indicates whether the bluetooth is enabled or not |
deviceDataRoaming | boolean | Indicates whether the data roaming is enabled or not |
deviceAccessibilityEnabled | boolean | Indicates whether the accessibility is enabled or not |
deviceBatteryIsCharging | boolean | Indicates whether the battery is charging or not |
deviceBatteryStatus | float | Indicates the current battery level in percentage |
deviceCPUType | string | The name of CPU type. Max length: 100 |
deviceIsLying | boolean | The approximate device position: is lying flat or not |
deviceIsAngled | boolean | The approximate device position: is angled or not |
deviceIsStanding | boolean | The approximate device position: is standing or not |
deviceIsVirtual | boolean | Indicates if the device is running in a virtual environment |
deviceEmulatorName | string | Name of the virtual device emulator. Max length: 100 |
deviceIsRooted | boolean | Indicates if the device is rooted |
deviceIsFingerprintEnrolled | boolean | Indicates if there is at least one fingerprint enrolled |
deviceNextAlarmClock | datetime | The time at which the alarm is going to trigger (UTC) |
devicePhoneType | string | The phone type of the device: GSM, CDMA, etc. Max length: 100 |
deviceNetworkOperatorName | string | Name of the mobile network operator (only active SIM card is detected). Max length: 100 |
deviceSimCountryIso | string | ISO country code of the SIM card. Max length: 100 |
deviceLanguageCode | string | Code for the primary language. Max length: 100 |
deviceRegionCode | string | Code for the region or country setting. Max length: 100 |
deviceTimeZoneId | string | Time zone setting of the device. Max length: 100 |
deviceLocaleDisplayLanguage | string | Language for displaying text and UI. Max length: 100 |
deviceNetworkConnectionType | string | Active network connection type. Max length: 100 |
deviceHostAppIsCloned | boolean | Indicates if a host application is cloned. |
deviceUSBMassStorageEnabled | boolean | Indicates if USB MassStorage is enabled. |
deviceADBEnabled | boolean | Indicates if Android Debug Bridge is enabled. |
deviceDevelopmentSettingsEnabled | boolean | Indicates if Developer Mode is enabled. |
Response body example (application/json)
{
"code":"deviceInfo",
"value":{
"deviceBrand":"samsung",
"deviceModel":"SM-A528B",
"deviceOsVersion":"13",
"deviceProduct":"a52sxqeea",
"deviceScreenSize":"1080x2400",
"deviceExternalStorageTotal":"61024",
"deviceExternalStorageFree":"34686.875",
"deviceMainStorageTotal":"108865.984375",
"deviceMainStorageFree":"65761.796875",
"deviceRamTotalSize":"5367.4609375",
"deviceLocationEnabled":"false",
"deviceWifiIsEnabled":"true",
"deviceBluetoothOn":"false",
"deviceDataRoaming":"true",
"deviceAccessibilityEnabled":"false",
"deviceBatteryIsCharging":"false",
"deviceBatteryStatus":"0.76",
"deviceCPUType":"arm64-v8a;armeabi-v7a;armeabi",
"deviceIsLying":"false",
"deviceIsAngled":"true",
"deviceIsStanding":"false",
"deviceIsFingerprintEnrolled":"1",
"deviceNextAlarmClock":"2023-08-14 09:20:00",
"devicePhoneType":"1",
"deviceIsVirtual":"false",
"deviceId":"fe533e40da103950ac649cf1a0090404",
"deviceEmulatorName":null,
"deviceIsRooted":"false",
"deviceNetworkOperatorName":"KAKTUS",
"deviceSimCountryIso":"cz",
"deviceLanguageCode":"eng",
"deviceRegionCode":"GBR",
"deviceTimeZoneId":"Europe/Prague",
"deviceLocaleDisplayLanguage":"English",
"deviceNetworkConnectionType":"wifi",
"deviceHostAppIsCloned":"false",
"deviceUSBMassStorageEnabled":"false",
"deviceADBEnabled":"false",
"deviceDevelopmentSettingsEnabled":"false"
},
"calculatedDate":"2023-08-14T07:29:46.315602Z"
}Velocity
Requires integration of latest Core Module
Note: If a dataset IP address cannot be classified as an end-user IP (for example VPN was used), the associated feature will be null.
| Field | Data Type | Description |
|---|---|---|
datasetsCountFromDeviceIdLastYear | integer | Total number of datasets uploaded from the same device during last year |
datasetsCountFromIpLastYear | integer | Total number of datasets uploaded from the same IP during last year |
datasetsCountFromDeviceIdAndIpLastYear | integer | Total number of datasets uploaded from the same device and IP during last year |
datasetsUniqueIpFromDeviceIdLastYear | integer | Unique IP addresses for given device during last year |
datasetsUniqueDeviceIdFromIpLastYear | integer | Unique devices for given IP address during last year |
Response body example (application/json)
{
"code":"velocity",
"value":{
"datasetsCountFromDeviceIdLastYear": "10",
"datasetsCountFromIpLastYear": "5",
"datasetsCountFromDeviceIdAndIpLastYear": "1",
"datasetsUniqueIpFromDeviceIdLastYear": "10",
"datasetsUniqueDeviceIdFromIpLastYear": "2"
},
"calculatedDate":"2023-08-14T07:29:46.3156019Z"
}IP Info
Requires integration of latest Core Module
NoteIf you're using a Proxy or Reverse Proxy configuration with the IP Info, ensure you submit the actual device IP address in your request
| Field | Data Type | Description |
|---|---|---|
ip | string | Unique identifier assigned to a device on a network. Max length: 100 |
hostname | string | Host name of an IP address. Max length: 100 |
city | string | Urban area where an IP address is located. Max length: 100 |
region | string | Geographical subdivision of a country where an IP address is situated. Max length: 100 |
country | string | Country where an IP address is registered. Max length: 100 |
loc | string | GPS location of area where the IP address is registered. Max length: 100 |
postal | string | Postal code associated with the IP address location. Max length: 100 |
timezone | string | Standard time of the IP address geographical area. Max length: 100 |
privacyVpn | boolean | Connection via VPN (IP address masking |
privacyProxy | boolean | Connection via proxy (IP address masking) |
privacyTor | boolean | Connection via tor (IP address masking) |
privacyRelay | boolean | Connection via private relay (IP address masking) |
privacyHosting | boolean | Connection via hosting provider (IP address masking) |
bogon | boolean | Indicates whether the IP should never appear on the public internet. Appears only when true. |
Response body example (application/json)
{
"code":"ipInfo",
"value":{
"ip":"178.72.203.93",
"hostname":"host-178-72-203-93.ip.nej.cz",
"city":"Prague",
"region":"Prague",
"country":"CZ",
"loc":"50.0880,14.4208",
"postal":"110 00",
"timezone":"Europe/Prague",
"privacyVpn":"false",
"privacyProxy":"false",
"privacyTor":"false",
"privacyRelay":"false",
"privacyHosting":"false",
"bogon":"true"
},
"calculatedDate":"2023-08-14T07:29:46.3156018Z"
}Fraud Alerts
| Field | Data Type | Description | Required Modules |
|---|---|---|---|
riskActiveCall | string | Indicates if the device is on an active phone call while conducting financial transactions | Behavioral Module, Behavioral Phone Plugin, Telephony Module |
riskEmulator | string | Indicates if the device is running in a virtual environment | Core Module |
riskTorUsage | string | Indicates if there is a risk of using TOR | Core Module |
riskVpnUsage | string | Indicates if there is a risk of using VPN | Core Module |
riskHttpProxy | string | Indicates if there a risk of HTTP Proxy is configured | Core Module |
riskNewDevice | string | Indicates if the device is new | Core Module |
riskAutomation | string | Indicates if there is a risk of automation | Core Module |
riskDeviceFarm | string | Indicates if there is a risk of device farm | Core Module |
riskEmptyDevice | string | Indicates if the device is empty | Core Module |
riskRecentFactoryReset | string | Indicates if the device was restored to factory settings within the last 72 hours, erasing all prev. data and usage history | Core Module |
riskScreenCast | string | Indicates if the device is broadcasting its screen to another display or device | Behavioral Module |
riskScreenCapture | string | Indicates if the device is recording or streaming its screen contents | Core Module, Behavioral Module |
riskRemoteAccess | string | Indicates whether the device can be accessed remotely | Core Module |
riskRemoteControl | string | Indicates if someone is actively viewing and controlling the device screen in real-time | Core Module |
riskRootedDevice | string | Indicates if the device is rooted | Core Module |
riskRootRequiredApps | string | Indicates device has applications that only function on rooted phones | Core Module |
riskCryptoEnthusiast | string | Indicates if a device belongs to a crypto enthusiast | Core Module |
riskBiometricsDisabled | string | Indicates device has fingerprint or face recognition capabilities but these features are turned off | Core Module |
riskLocationSpoofing | string | Indicates whether the location can be spoofed | Core Module |
riskSimManipulation | string | Indicates if SIM card info has changed frequently (swapping cards, using temp. numbers, changing carriers) | Behavioral Module |
riskTimeManipulation | string | Indicates whether the time or timezone may have been manipulated | Core Module |
riskGeographyMismatch | string | Indicates whether there is mismatch in geography | Core Module |
riskTemporaryEmailUsage | string | Indicates if there is a risk of using temporary email apps | Core Module |
riskDeviceIdChangerUsage | string | Indicates if there is a risk of changing device ID | Core Module |
riskSuspiciousAccessibilityServicesCritical | string | Indicates if the device is running dangerous accessibility services with broad permissions | Core Module |
riskSuspiciousAccessibilityServicesHigh | string | Indicates if the device has accessibility services with elevated fraud risk capabilities | Core Module |
riskSuspiciousAccessibilityServicesMedium | string | Indicates if the device runs accessibility services with moderate fraud indicators | Core Module |
riskHostApplicationCloned | string | Indicates if a host application is cloned | Core Module |
riskApplicationClonerUsage | string | Indicates if there is a risk of cloning applications | Core Module |
riskControlledFromComputer | string | Indicates if there is a risk that a user manipulates the device from computer | Core Module |
riskFridaUsage | string | Indicates if the device is running Frida, a tool that injects code into running apps to modify their behavior in real-time | Guard Module, Behavioral Module, Behavioral Guard Plugin |
riskAnonymousMessengerUsage | string | Indicates if there is a risk of using anonymous messengers | Core Module |
riskApplicationManipulation | string | Indicates if there is a risk of the host application manipulation | Core Module |
riskApplicationGamblingUsage | string | Indicates if a device belongs to a gambler | Core Module |
riskNonMarketApplicationUsage | string | Indicates if the host application installed not from official app markets | Core Module |
riskHostApplicationNotInstalledFromMarket | string | Indicates if other applications could be installed not from official app markets | Core Module |
riskFinancialApplicationsInstallationSurge | string | Indicates a surge in financial apps installation | Core Module |
Response body example (application/json)
{
"code": "fraudAlerts",
"value": {
"riskActiveCall": "low",
"riskEmulator": "low",
"riskTorUsage": "low",
"riskVpnUsage": "low",
"riskHttpProxy": "low",
"riskNewDevice": "low",
"riskAutomation": "low",
"riskDeviceFarm": "low",
"riskEmptyDevice": "high",
"riskRecentFactoryReset": "low",
"riskScreenCast": "low",
"riskScreenCapture": "low",
"riskRemoteAccess": "low",
"riskRemoteControl": "low",
"riskRootedDevice": "low",
"riskRootRequiredApps": "low",
"riskCryptoEnthusiast": "low",
"riskBiometricsDisabled": "high",
"riskLocationSpoofing": "low",
"riskSimManipulation": "high",
"riskTimeManipulation": "low",
"riskGeographyMismatch": "high",
"riskTemporaryEmailUsage": "low",
"riskDeviceIdChangerUsage": "low",
"riskSuspiciousAccessibilityServicesCritical": "low",
"riskSuspiciousAccessibilityServicesHigh": "low",
"riskSuspiciousAccessibilityServicesMedium": "low",
"riskHostApplicationCloned": "low",
"riskApplicationClonerUsage": "low",
"riskControlledFromComputer": "high",
"riskFridaUsage": "high",
"riskAnonymousMessengerUsage": "low",
"riskApplicationManipulation": "high",
"riskApplicationGamblingUsage": "low",
"riskNonMarketApplicationUsage": "high",
"riskHostApplicationNotInstalledFromMarket": "low",
"riskFinancialApplicationsInstallationSurge": "low"
},
"calculatedDate": "2025-02-27T11:13:33.559676Z"
}
UI Interactions
Requires integration of Behavioral Module
| Field | Data Type | Description | Is available on Flutter? | Is available on Compose? |
|---|---|---|---|---|
inputDeleteActionsCount | integer | Qty of all delete actions | Yes | No |
inputInsertActionsCount | integer | Qty of all insert actions | Yes | No |
inputDeleteTextActionsCount | integer | Qty of delete text actions | Yes | No |
inputInsertTextActionsCount | integer | Qty of insert text actions | No | No |
textInputTextPrefilledCount | integer | Qty of tracked first interaction with the element, and text input before length > 0. Could be affected by the date selection from the calendar picker | Yes | No |
textInputTextRemovedAllCount | integer | Qty of events when all text was removed | Yes | No |
clientInteractionsTimeSpentTotal | float | The actual time spent on the direct interaction with the fields, excluding gaps between screens, seconds | Yes | Yes |
clientActivitySessionTimeSpentTotal | float | The total time that the app was open and active (foreground time), in seconds | Yes | Yes |
clientInteractionsTrackedEventsCount | integer | Total count of tracked events during application form filling. Events = touch, text input | Yes | No |
Response body example (application/json)
{
"code": "uiInteractions",
"calculatedDate": "2025-06-02T08:44:21.55265",
"value": {
"inputDeleteActionsCount": "0",
"inputInsertActionsCount": "0",
"inputDeleteTextActionsCount": "0",
"inputInsertTextActionsCount": "0",
"textInputTextPrefilledCount": "1",
"textInputTextRemovedAllCount": "0",
"clientInteractionsTimeSpentTotal": "4.13100004196167",
"clientActivitySessionTimeSpentTotal": "76.6300001144409",
"clientInteractionsTrackedEventsCount": "12"
}
}Finger Gestures
Requires integration of Behavioral Module
| Field | Data Type | Description | Is available on Flutter? | Is available on Compose? |
|---|---|---|---|---|
flingTotalEventsCount | integer | Total count of fling events (similar to swipe in iOS) | Yes | Yes |
scaleTotalEventsCount | integer | Total count of scale events | No | No |
touchTotalEventsCount | integer | Total count of touch events | Yes | Yes |
scrollTotalEventsCount | integer | Total count of scroll events (similar to pan / move in iOS) | Yes | Yes |
textInputTotalEventsCount | integer | Total count of text input insert events | Yes | No |
flingCoordinatesDistanceAvg | float | Average distance between coordinates of the fling events, pixels | Yes | Yes |
scrollCoordinatesDistanceAvg | float | Average distance between coordinates of the scroll events, pixels | Yes | Yes |
Response body example (application/json)
{
"code": "fingerGestures",
"calculatedDate": "2025-06-02T08:44:21.552651",
"value": {
"flingTotalEventsCount": "4",
"scaleTotalEventsCount": null,
"touchTotalEventsCount": "11",
"scrollTotalEventsCount": "4",
"textInputTotalEventsCount": "1",
"flingCoordinatesDistanceAvg": "213.299239525673",
"scrollCoordinatesDistanceAvg": "77.520437196023"
}
}Touches
Requires integration of Behavioral Module
| Field | Data Type | Description | Is available on Flutter? | Is available on Compose? |
|---|---|---|---|---|
touchOnDownCount | integer | Qty of touch down events | No | Yes |
touchOnDoubleTapCount | integer | Qty of double tap events | No | Yes |
touchOnLongPressCount | integer | Qty of long press events | No | Yes |
Response body example (application/json)
{
"code": "touches",
"calculatedDate": "2025-06-02T08:44:21.55265",
"value": {
"touchOnDownCount": "11",
"touchOnDoubleTapCount": "4",
"touchOnLongPressCount": "0"
}
}Typing
Requires integration of Behavioral Module
| Field | Data Type | Description | Is available on Flutter? | Is available on Compose? |
|---|---|---|---|---|
textInputSpeed | float | Only text input insert events are taken into the account, text inputs per second | Yes | No |
textInputLettersCount | integer | Qty of events when a letter was typed in the "usual" way during fields filling (1 letter per 1 event) | Yes | No |
textInputNumbersCount | integer | Qty of events when a number was typed in the "usual" way during fields filling (1 number per 1 event) | Yes | No |
inputStartWithLowerCount | integer | Qty of times when user started to type field with a lower letter | Yes | No |
inputStartWithUpperCount | integer | Qty of times when user started to type field with a upper letter | Yes | No |
inputStartWithNumberCount | integer | Qty of times when user started to type field with a number | Yes | No |
textInputCharsExceptNumAndLettersCount | integer | Qty of events when any other character (among symbols, punctuations, marks & separators) was typed in the field or when the number of pasted characters was greater than one per 1 event (incl. the date selection from the calendar picker) | Yes | No |
Response body example (application/json)
{
"code": "typing",
"calculatedDate": "2025-06-02T08:44:21.552504",
"value": {
"textInputSpeed": "0.34",
"textInputLettersCount": "0",
"textInputNumbersCount": "0",
"inputStartWithLowerCount": "0",
"inputStartWithUpperCount": "0",
"inputStartWithNumberCount": "0",
"textInputCharsExceptNumAndLettersCount": "1"
}
}Anomaly
Requires integration of Behavioral Module
| Field | Data Type | Description | Is available on Flutter? | Is available on Compose? |
|---|---|---|---|---|
flingRageActionsCount | integer | Qty of times when user made fling actions more than 5 times per second | Yes | Yes |
touchRageActionsCount | integer | Qty of times when user made touch more than 5 times per second | Yes | Yes |
scrollRageActionsCount | integer | Qty of times when user made scroll actions more than 5 times per second | Yes | Yes |
textInputRageActionsCount | integer | Qty of times when user made text input more than 5 times per second | Yes | No |
scaleRageActionsCount | integer | Qty of times when user made scale actions more than 5 times per second | No | No |
Response body example (application/json)
{
"code": "anomaly",
"calculatedDate": "2025-06-02T08:44:21.552651",
"value": {
"flingRageActionsCount": "0",
"scaleRageActionsCount": null,
"touchRageActionsCount": "0",
"scrollRageActionsCount": "0",
"textInputRageActionsCount": "0"
}
}Type Specification
| Type | Description | Example |
|---|---|---|
string | A string is a sequence of characters. It can include letters, numbers, symbols, and spaces. | "Europe/Kyiv" |
boolean | Boolean represents values true or false | true |
float | Float represents decimal numbers with fractional parts | 3.142 |
integer | Integer represents whole numbers without decimals | 42 |
datetime | Date and time values expressed in UTC and have the following formatyyyy-mm-ddThh:mm:ss.ffffffZ | 2023-08-14T07:29:46.3156016Z |
Updated 3 days ago

