iOS

Insights Overview

NameAPI CodeAPI tagRequired Module
1DevicedeviceInfofeaturesCore Module
2VelocityvelocityfeaturesCore Module
3IP InfoipInfofeaturesCore Module
4Apps TrackingapplicationfeaturesApplication Module
5Fraud AlertsfraudAlertsfeaturesDepends on alert
6UI InteractionsuiInteractionsfeaturesBehavioral Module
7TypingtypingfeaturesBehavioral Module
8Finger GesturesfingerGesturesfeaturesBehavioral Module
9TouchestouchesfeaturesBehavioral Module
10AnomalyanomalyfeaturesBehavioral Module
📘

Accessing API Fields

Discover how to retrieve the API fields listed below through the Dataset Insights API.

📌

Note

Our 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 Core Module

FieldData TypeDescription
deviceIdstringUnique device identifier. Max length: 100
deviceIsSimulatorbooleanIndicates whether the device is simulator or not
deviceIsJailBrokenbooleanIndicates whether the device is JailBroken or not
deviceBrandstringBrand or manufacturer of the device. Max length: 100
deviceModelstringModel of the device. Max length: 100
deviceOsVersionstringOperating System version of the device. Max length: 100
deviceScreenSizestringScreen size. Max length: 100
deviceMainStorageTotalfloatTotal main storage in Megabytes
deviceMainStorageFreefloatFree main storage in Megabytes
deviceRamTotalSizefloatTotal RAM size
deviceLocationEnabledbooleanIndicates if location is enabled
deviceAllowsVOIPbooleanIndicates if VOIP is allowed
deviceAllowsVOIP2booleanIndicates if VOIP is allowed on a second SIM card
deviceCurrencyCodestringCurrency code. Max length: 100
deviceNetworkConnectionTypestringActive network connection type. Max length: 100
deviceLanguageCodestringCode for the primary language. Max length: 100
deviceRegionCodestringCode for the region or country based on locale settings of the device. Max length: 100
deviceTimeZoneIdstringTime zone setting of the device. Max length: 100
deviceLocaleDisplayLanguagestringLanguage for displaying text and UI. Max length: 100
deviceBatteryIsChargingbooleanIndicates whether the battery is charging or not
deviceBatteryStatusfloatIndicates the current battery level in percentage (for ios only in case the battery monitoring is enabled)
deviceCPUTypestringThe name of CPU type. Max length: 100
deviceIsLyingbooleanThe approximate device position: is lying flat or not
deviceIsAngledbooleanThe approximate device position: is angled or not
deviceIsStandingbooleanThe approximate device position: is standing or not

Response body example (application/json)

{
   "code":"deviceInfo",
   "value":{
      "deviceId":"B01634BF-C7E6-4BA1-9384-3D862E8DF050",
      "deviceIsSimulator":"false",
      "deviceIsJailBroken":"false",
      "deviceBrand":"iPhone",
      "deviceModel":"iPhone12,5",
      "deviceOsVersion":"16.5",
      "deviceScreenSize":"2688x1242",
      "deviceMainStorageTotal":"60907.11328125",
      "deviceMainStorageFree":"38180.22265625",
      "deviceRamTotalSize":"3750.15625",
      "deviceLocationEnabled":"true",
      "deviceAllowsVOIP":"true",
      "deviceCurrencyCode":"UAH",
      "deviceNetworkConnectionType":"wifi",
      "deviceLanguageCode":"en",
      "deviceRegionCode":"UA",
      "deviceTimeZoneId":"Europe/Kiev",
      "deviceLocaleDisplayLanguage":"en_UA",
      "deviceBatteryIsCharging":"true",
      "deviceBatteryStatus":null,
      "deviceCPUType":"ARM_64",
      "deviceIsLying":"true",
      "deviceIsAngled":"false",
      "deviceIsStanding":"false"
   },
   "calculatedDate":"2023-08-14T08:29:27.853634Z"
}

Velocity

Requires integration of 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.

FieldData TypeDescription
datasetsCountFromDeviceIdLastYearintegerTotal number of datasets uploaded from the same device during last year
datasetsCountFromIpLastYearintegerTotal number of datasets uploaded from the same IP during last year
datasetsCountFromDeviceIdAndIpLastYearintegerTotal number of datasets uploaded from the same device and IP during last year
datasetsUniqueIpFromDeviceIdLastYearintegerUnique IP addresses for given device during last year
datasetsUniqueDeviceIdFromIpLastYearintegerUnique 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 Core Module

📘

Note

If you're using a Proxy or Reverse Proxy configuration with the IP Info, ensure you submit the actual device IP address in your request

FieldData TypeDescription
ipstringUnique identifier assigned to a device on a network. Max length: 100
hostnamestringHost name of an IP address. Max length: 100
citystringUrban area where an IP address is located. Max length: 100
regionstringGeographical subdivision of a country where an IP address is situated. Max length: 100
countrystringCountry where an IP address is registered. Max length: 100
locstringGPS location of area where an IP address is registered. Max length: 100
postalstringPostal code associated with an IP address's location. Max length: 100
timezonestringStandard time of an IP address's geographical area. Max length: 100
privacyVpnbooleanConnection via VPN (IP address masking)
privacyProxybooleanConnection via proxy (IP address masking)
privacyTorbooleanConnection via tor (IP address masking)
privacyRelaybooleanConnection via privat relay (IP address masking)
privacyHostingbooleanConnection via hosting provider (IP address masking)
bogonbooleanIndicates whether the IP should never appear on the public internet.
Appears only when true.

Response body example (application/json)

{
   "code":"ipInfo",
   "value":{
      "ip":"62.216.42.130",
      "hostname":null,
      "city":"Kyiv",
      "region":"Kyiv City",
      "country":"UA",
      "loc":"50.4547,30.5238",
      "postal":"03027",
      "timezone":"Europe/Kyiv",
      "privacyVpn":"true",
      "privacyProxy":"false",
      "privacyTor":"false",
      "privacyRelay":"false",
      "privacyHosting":"false",
      "bogon":"true"
   },
   "calculatedDate":"2023-08-14T08:29:27.8536353Z"
}

Apps Tracking

Requires integration of Application Module

FieldData TypeDescription
isInstalledintegerIndicates whether an application of the particular URL Schema is installed
urlSchemaNamestringName of the URL Schema

Response body example (application/json)

{
   "code":"application",
   "value":[
      {
         "isInstalled":"0",
         "urlSchemaName":"th.co.amoney"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"com.ntl.cxm-mobile"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"mtls"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"kbank.kplus"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"scbeasy"
      },
      {
         "isInstalled":"1",
         "urlSchemaName":"ktbnext"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"tmbtouch"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"krungsri-kma"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"bblapptoappmbanking"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"chaiyomobile"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"line3rdp.com.ccc.game.pcr"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"com.gameindy.dummyth"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"bornrich"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"goldwing-global"
      },
      {
         "isInstalled":"1",
         "urlSchemaName":"gsbmymo"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"com.scbabacus.l2020"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"monix"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"ghb-allgen"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"srisawadapp"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"com.huoys.royalcasinoonline"
      },
      {
         "isInstalled":"0",
         "urlSchemaName":"fb507039520732712"
      }
   ],
   "calculatedDate":"2023-08-14T08:29:27.8536343Z"
}

Fraud Alerts

FieldData TypeDescriptionRequired Modules
riskEmulatorstringIndicates if the device is running in a virtual environment.Core Module
riskRootedDevicestringIndicates if the host app's code has been modified to remove security restrictions that manufacturers put in place.Core Module
riskApplicationManipulationstringIndicates if the host app's code has been modified or tampered with after installation.Core Module
riskDeviceFarmstringIndicates if the device belongs to a large collection of phones controlled centrally for coordinated operations.Core Module
riskAutomationstringIndicates if the device is running automation tools that control apps without human interaction.Behavioral Module
riskHttpProxystringIndicates if the device is routing traffic through an intermediary server that sits between the app and the internet.Core Module
riskTorUsagestringIndicates if the device is routing traffic through Tor that anonymizes connections through multiple encrypted layers.Core Module
riskVpnUsagestringIndicates if the device is routing internet traffic through encrypted tunnels that hide its true network origin.Core Module
riskLocationSpoofingstringIndicates if the device is broadcasting a fake GPS location that contradicts where it physically exists.Location Module
riskEmptyDevicestringIndicates if the device is empty.Core Module
riskGeographyMismatchstringIndicates if the device claims to be in a location that contradicts other geographic signals like network data.Core Module
riskFridaUsagestringIndicates if the device is running Frida, a tool that injects code into running apps to modify their behavior in real-time.Core Module
riskActiveCallstringIndicates if the device is on an active phone call while conducting financial transactions.Telephony Module
riskScreenCaststringIndicates if the device is broadcasting its screen to another display or device.Core Module

Response body example (application/json):

{
    "code": "fraudAlerts",
    "value": {
        "riskEmulator": "high",
        "riskRootedDevice": "high",
        "riskApplicationManipulation": "low",
        "riskDeviceFarm": "high",
        "riskAutomation": "high",
        "riskHttpProxy": "low",
        "riskTorUsage": "high",
        "riskVpnUsage": "high",
        "riskLocationSpoofing": "low",
        "riskEmptyDevice": "high",
        "riskGeographyMismatch": "low",
        "riskFridaUsage": "low",
        "riskActiveCall": "low",
        "riskScreenCast": "low"
    },
    "calculatedDate": "2026-02-12T15:17:00.000000Z"
}

UI Interactions

Requires integration of Behavioral Module

FieldData TypeDescriptionIs available on Flutter?
inputDeleteActionsCountintegerQty of all delete actionsYes
inputInsertActionsCountintegerQty of all insert actionsYes
inputDeleteTextActionsCountintegerQty of delete text actionsNo
inputInsertTextActionsCountintegerQty of insert text actionsNo
textInputTextPrefilledCountintegerQty of tracked first interaction with the element, and text input before length > 0. Could be affected by the date selection from the calendar pickerYes
applicationAsBackgroundCountintegerQty of times when application was in the backgroundYes
applicationAsForegroundCountintegerQty of times when application was in the foregroundYes
textInputTextRemovedAllCountintegerQty of events when all text was removedYes
clientInteractionsTimeSpentTotalfloatThe actual time spent on the direct interaction with the fields, excluding gaps between screens, secondsYes
clientInteractionsTrackedEventsCountintegerTotal count of tracked events during application form filling. Events = touch, pan, edge pan, swipe, text inputYes

Response body example (application/json)

{
  "code": "uiInteractions",
  "calculatedDate": "2025-06-02T08:57:27.21084",
  "value": {
    "inputDeleteActionsCount": "1",
    "inputInsertActionsCount": "1",
    "inputDeleteTextActionsCount": "0",
    "inputInsertTextActionsCount": "1",
    "textInputTextPrefilledCount": "1",
    "applicationAsBackgroundCount": "4",
    "applicationAsForegroundCount": "3",
    "textInputTextRemovedAllCount": "1",
    "clientInteractionsTimeSpentTotal": "7.48899984359741",
    "clientInteractionsTrackedEventsCount": "15"
  }
}

Typing

Requires integration of Behavioral Module

FieldData TypeDescriptionIs available on Flutter?
textInputSpeedfloatOnly text input insert events are taken into the account, text inputs per secondYes
textInputLettersCountintegerQty of events when a letter was typed in the "usual" way during fields filling (1 letter per 1 event)Yes
textInputNumbersCountintegerQty of events when a number was typed in the "usual" way during fields filling (1 number per 1 event)Yes
inputStartWithLowerCountintegerQty of times when user started to type field with a lower letterYes
inputStartWithUpperCountintegerQty of times when user started to type field with a upper letterYes
inputStartWithNumberCountintegerQty of times when user started to type field with a numberYes
textInputCharsExceptNumAndLettersCountintegerQty 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

Response body example (application/json)

{
  "code": "typing",
  "calculatedDate": "2025-06-02T08:57:27.210839",
  "value": {
    "textInputSpeed": "10.5633803053381",
    "textInputLettersCount": "8",
    "textInputNumbersCount": "0",
    "inputStartWithLowerCount": "1",
    "inputStartWithUpperCount": "0",
    "inputStartWithNumberCount": "0",
    "textInputCharsExceptNumAndLettersCount": "1"
  }
}

Finger Gestures

Requires integration of Behavioral Module

FieldData TypeDescriptionIs available on Flutter?
panPathLengthfloatDistance between all points of pan eventsYes
swipePathLengthfloatDistance between all points of swipe eventsYes
panTotalEventsCountintegerTotal count of pan eventsYes
scaleTotalEventsCountintegerTotal count of scale eventsNo
swipeTotalEventsCountintegerTotal count of swipe events (similar to fling in Android)Yes
touchTotalEventsCountintegerTotal count of touch eventsYes
textInputTotalEventsCountintegerTotal count of text input insert eventsYes
touchActionsSpeedfloatMeasure of the performing of the touch actions, touches per second. Flutter only, for touchActionsSpeed on native iOS see Touches.Yes

Response body example (application/json)

{
  "code": "fingerGestures",
  "calculatedDate": "2025-06-02T08:57:27.210839",
  "value": {
    "panPathLength": null,
    "swipePathLength": null,
    "panTotalEventsCount": null,
    "scaleTotalEventsCount": null,
    "swipeTotalEventsCount": null,
    "touchTotalEventsCount": "9",
    "textInputTotalEventsCount": "9",
    "touchActionsSpeed": "8.41908321031396",
  }
}

Touches

Requires integration of Behavioral Module

FieldData TypeDescriptionIs available on Flutter?
touchActionsSpeedfloatMeasure of the performing of the touch actions, touches per secondYes
panTotalNumberOfTouchesCountintegerQty of touches during pan eventsNo
scaleTotalNumberOfTouchesCountintegerQty of touches during scale eventsNo

Response body example (application/json)

{
  "code": "touches",
  "calculatedDate": "2025-06-02T08:57:27.210839",
  "value": {
    "touchActionsSpeed": "8.41908321031396",
    "panTotalNumberOfTouchesCount": null,
    "scaleTotalNumberOfTouchesCount": null
  }
}

Anomaly

Requires integration of Behavioral Module

FieldData TypeDescriptionIs available on Flutter?
touchRageActionsCountintegerQty of times when user made touch more than 5 times per secondYes
textInputRageActionsCountintegerQty of times when user made text input more than 5 times per secondYes

Response body example (application/json)

{
  "code": "anomaly",
  "calculatedDate": "2025-06-02T08:57:27.210837",
  "value": {
    "touchRageActionsCount": "0",
    "textInputRageActionsCount": "1"
  }
}

Type Specification

TypeDescriptionExample
stringA string is a sequence of characters. It can include letters, numbers, symbols, and spaces."Europe/Kyiv"
booleanBoolean represents values true or falsetrue
floatFloat represents decimal numbers with fractional parts3.142
integerInteger represents whole numbers without decimals42
datetimeDate and time values expressed in UTC and have the following format
yyyy-mm-ddThh:mm:ss.ffffffZ
2023-08-14T08:29:27.8536352Z

Did this page help you?