iOS

Insights Overview

NameAPI CodeRequired Module
1DevicedeviceInfoCore Module
2VelocityvelocityCore Module
3IP InfoipInfoCore Module
4Apps InfoapplicationCore Module
5PermissionspermissionsCore Module
6Calendar EventscalendarCalendar Events Module
7Calendar RemindersremindersCalendar Reminders Module
8ContactscontactsContact Module
9ImagesimagesMedia Module
10VideovideoMedia Module
11UI InteractionsuiInteractionsBehavioral Module
12TypingtypingBehavioral Module
13Finger GesturesfingerGesturesBehavioral Module
14TouchestouchesBehavioral Module
15AnomalyanomalyBehavioral 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 is VOIP is allowed
deviceCurrencyCodestringCurrency code. Max length: 100
deviceNetworkOperatorNamestringName of the mobile network operator (only active SiM card is detected). Max length: 100
deviceNetworkConnectionTypestringActive network connection type. Max length: 100
deviceSimCountryIsostringISO country code of the SIM card. 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",
      "deviceNetworkOperatorName":"--",
      "deviceNetworkConnectionType":"wifi",
      "deviceSimCountryIso":"--",
      "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)

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"
   },
   "calculatedDate":"2023-08-14T08:29:27.8536353Z"
}

Apps Info

Requires integration of Core 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"
}

Permissions

Requires integration of Core Module

FieldData TypeDescription
NSAppleMusicUsageDescriptionintegerPermission that allows reading metadata related to music and music albums
NSContactsUsageDescriptionintegerPermission that allows reading metadata related to Contacts and Contacts Group
NSRemindersUsageDescriptionintegerPermission that allows reading metadata related to Calendar reminders
NSCalendarsUsageDescriptionintegerPermission that allows reading metadata related to Calendar events
NSPhotoLibraryUsageDescriptionintegerPermission that allows reading metadata related to images and videos

Response body example (application/json)

{
   "code":"permissions",
   "value":{
      "NSAppleMusicUsageDescription":"1",
      "NSContactsUsageDescription":"1",
      "NSRemindersUsageDescription":"1",
      "NSCalendarsUsageDescription":"1",
      "NSPhotoLibraryUsageDescription":"1"
   },
   "calculatedDate":"2023-08-14T08:29:27.8536343Z"
}

📘

Permission Value Description

ValueDescription
nullThe corresponding SDK module is not integrated
0Permission is not granted
1Permission is granted

Calendar Events

Requires integration of Calendar Events Module

FieldData TypeDescription
CalendarEventsPastCountintegerTotal number of past events
calendarEventsTotalCountintegerTotal number of calendar events
calendarEventsAsOrganizerCountintegerTotal number of organized calendar events
calendarEventsStatusConfirmedCountintegerTotal number of calendar events with confirmed status
calendarEventsDuringWeekdayCountintegerTotal number of calendar events during the weekday
calendarEventsMoreThan1AttendeeCountintegerTotal number of calendar events with more than 1 attendee
calendarEventsDifferentTimeZonesCountintegerTotal number of calendar events in different time zone
calendarEventsLast30DaysCountintegerTotal number of calendar events in the last 30 days
calendarEventsNext30DaysCountintegerTotal number of events in the next 30 days
calendarEventsLast30DaysRepetitiveCountintegerTotal number of repetitive calendar events in the last 30 days
calendarEventsDuringWeekdayLast30DaysCountintegerTotal number of calendar events during the weekday in the last 30 days

❗️

The values in the API response will be null if the permission is not granted or there is no data available

Response body example (application/json)

{
   "code":"calendar",
   "value":{
      "calendarEventsPastCount":" 5993",
      "calendarEventsTotalCount":"6461",
      "calendarEventsAsOrganizerCount":"1",
      "calendarEventsStatusConfirmedCount":"3985",
      "calendarEventsDuringWeekdayCount":"6455",
      "calendarEventsMoreThan1AttendeeCount":"1",
      "calendarEventsDifferentTimeZonesCount":"1",
      "calendarEventsLast30DaysCount":"0",
      "calendarEventsNext30DaysCount":"418",
      "calendarEventsLast30DaysRepetitiveCount":"0",
      "calendarEventsDuringWeekdayLast30DaysCount":"0"
   },
   "calculatedDate":"2023-08-14T08:29:27.8536346Z"
}

Calendar Reminders

Requires integration of Calendar Reminders Module

FieldData TypeDescription
remindersTotalCountintegerTotal number of reminders
remindersDuringWeekdayCountintegerTotal number of reminders during the weekdays
remindersMoreThan1AttendeeCountintegerTotal number of reminders with more than one attendee
remindersDifferentTimeZonesCountintegerTotal number of reminders with different time zones
remindersLast30DaysCountintegerTotal number of reminders in last 30 days
remindersLast30DaysRepetitiveCountintegerTotal number of reminders for repetitive events in last 30 days
remindersDuringWeekdayLast30DaysCountintegerTotal number of reminders during the weekday in last 30 days

❗️

The values in the API response will be null if the permission is not granted or there is no data available

Response body example (application/json)

{
   "code":"reminders",
   "value":{
      "remindersTotalCount":"7",
      "remindersDuringWeekdayCount":"7",
      "remindersMoreThan1AttendeeCount":"0",
      "remindersDifferentTimeZonesCount":"0",
      "remindersLast30DaysCount":"7",
      "remindersLast30DaysRepetitiveCount":"0",
      "remindersDuringWeekdayLast30DaysCount":"7"
   },
   "calculatedDate":"2023-08-14T08:29:27.8536354Z"
}

Contacts

Requires integration of Contact Module

FieldData TypeDescription
contactsTotalCountintegerTotal number of contacts
contactsWithoutNumberCountintegerTotal number of contacts without any phone number
contactsMultipleNumbersCountintegerTotal number of contacts with multiple associated phone numbers
contactsWithPictureCountintegerTotal number of contacts with associated picture
phoneNumberTotalCountintegerTotal number of phone numbers
contactsEmailCountintegerTotal number of contacts with email address
contactsWorkCountintegerTotal number of contacts with company name

❗️

The values in the API response will be null if the permission is not granted or there is no data available

Response body example (application/json)

{
   "code":"contacts",
   "value":{
      "contactsTotalCount":"3",
      "contactsWithoutNumberCount":"1",
      "contactsMultipleNumbersCount":"1",
      "contactsWithPictureCount":"0",
      "phoneNumberTotalCount":"3",
      "contactsEmailCount":"2",
      "contactsWorkCount":"1"
   },
   "calculatedDate":"2023-08-14T08:29:27.8536345Z"
}

Images

Requires integration of Media Module

FieldData TypeDescription
imagesCountintegerTotal number of images
imagesCountWithLocationintegerTotal number of images with location property
imageResolutionstringMost frequent image resolution. Max length: 100
imagesLast30DaysCountintegerTotal number of images created in the last 30 days
imagesLast360DaysCountintegerTotal number of images created in the last 360 days
imagesFirstMonth10ImagesstringFirst month with more than 10 images. Max length: 100

❗️

The values in the API response will be null if the permission is not granted or there is no data available

Response body example (application/json)

{
   "code":"images",
   "value":{
      "imagesCount":"73",
      "imagesCountWithLocation":"6",
      "imageResolution":"3024x4032",
      "imagesLast30DaysCount":"0",
      "imagesLast360DaysCount":"72",
      "imagesFirstMonth10Images":"2021-03"
   },
   "calculatedDate":"2023-08-08T13:40:16.3508145Z"
}

Video

Requires integration of Media Module

FieldData TypeDescription
videoCountintegerTotal number of video files
videoLast30DaysCountintegerTotal number of video files created in the last 30 days

❗️

The values in the API response will be null if the permission is not granted or there is no data available

Response body example (application/json)

{
   "code":"video",
   "value":{
      "videoCount":"4",
      "videoLast30DaysCount":"1"
   },
   "calculatedDate":"2023-08-14T08:29:27.8536352Z"
}

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 eventsNo
swipePathLengthfloatDistance between all points of swipe eventsNo
panTotalEventsCountintegerTotal count of text input insert eventsNo
scaleTotalEventsCountintegerTotal count of scale eventsNo
swipeTotalEventsCountintegerTotal count of swipe events (similar to fling in Android)No
touchTotalEventsCountintegerTotal count of touch eventsYes
textInputTotalEventsCountintegerTotal count of text input insert eventsYes

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"
  }
}

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

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 format yyyy-mm-ddThh:mm:ss.ffffffZ

2023-08-14T08:29:27.8536352Z