API interface description
Interface method
Base URL
- China: https://cn.apitd.net/device/v3
- America: https://us.apitd.net/device/v3
- Singapore: https://sg.apitd.net/device/v3
- Germany: https://de.apitd.net/device/v3
- Indonesia: https://id.apitd.net/device/v3
- Pakistan: https://pk.apitd.net/device/v3
- Thailand: https://th.apitd.net/device/v3
API
| URL | Request method | Content-Type | Output format | Character set |
|---|---|---|---|---|
| api-base-url?partner_code=xxx∂ner_key=xxx | POST | application/json | JSON | UTF-8 |
Authentication
| Field | Type | Meaning | Required fields | Remarks |
|---|---|---|---|---|
| partner_code | String | Partner identify | Yes | Provided by TD |
| partner_key | String | Partner secret key | Yes | Provided by TD |
Request
| Field | Type | Meaning | Required fields | Remarks |
|---|---|---|---|---|
| black_box | String | Vouchers for access to device information | Yes | Obtain from SDK |
| behavior | String | The Behavior data payload returned by the collect method of the Terminal TDBehavior SDK. | Not necessary | Obtain through SDK |
Example Request
{
"black_box": "aGPH1658920283672ropYaFxT7",
"behavior": "O-vbT-U9ZE2EhrqwgdnwicS0ckarzkkXH4mutX_WrYYujof29benGjFu29hzCxziQjnYGYHmia7QcKNwOfn8Pk57JhMJj4ehl58fFZvyM2VIdm9uVRRYj_A7fiWSbdZPwyVDFlcm1APji3lnb_DTApq9I5c6n3HqRsGLkx_rG_0IXjBRUR3izPjLr-kz7jDqGyoXmrvRfvPIS0TwdjWYa677OHoUr_-2RtAX5ljkknSfMxZQ36rzYN_1RH1ZDyu7akDSg2Pg9AxjYWOaMsxVu6vXWCPwGlbgHyu8h06PO87uoQ3-iYAYr15zcZY-mSsbPi-X8cxH4FlN2b0BoqfoFjWCnCFOR5nRmsEKyNfGsQH-ph9YPUsJVZPNdZZwow_5tWqENMO82yMIc-G2PxZTQXkwQA_9xGtuvsmy6loxYNB_a2qJa3HMHGkoxb7vb1flIaYgCTG2zPRnUWCF7ujBMT6TJq-V0DOtSzmNEBbHfQ7vC4lWGs51shpynfgnJ6bW8FGlrq5veqpFgnGKkJNdONz-8x-TvOs6n17KHDXLVUuXppNdfkeWUY3eRTtrjd_MxYcKN_eFCKn0HezOYURQ9WyP8szoDA-zE3OKj_cUWAwvIKANuV8CHWvWhB6T7PO9y1HlIYJynNqGjwI4jdjIQ6A6HeFqK2wXXNrCbxyCHfz3EeaBDVeWxFcbBnDggd7W"
}
Response
| Field | Type | Meaning | Output situation | Remarks |
|---|---|---|---|---|
| code | Integer | interface response status codes | All | Refer to the status code description |
| message | String | status Info | All | Specific reasons for an exception |
| sequence_id | String | unique Identifier ID | All | A unique identifier for each request-response |
| device_id | String | device unique ID | All | Unique identification of the device |
| device_os | String | device type | All | Android、Harmony、iOS、Web |
| channel | String | channel | All | channel |
| device_detail | Object | device details | All | Please refer to the description of the device details |
| ip_location | Object | location information corresponding to the IP of the device | All | Please refer to the IP location information description |
| device_risk_score | Integer | device risk score | All | Range 0 - 10000,supports customization. For documentation, refer to risk score |
| device_risk_label | Array | device risk label list | All | Please refer to the description of the device risk label |
| device_risk_tools | Object | device risk tools | All | Please refer to the description of the device risk tools |
| device_history_risk_label | Array | device history risk label list | All | Please refer to the description of the device history risk labels |
| vpn_true_ip_location | Object | location information corresponding to the VPN real IP of the device | All | Please refer to the VPN True IP location information description |
| behavior_detail | Object | Behavior Collection Data Details | Output When the behavior parameter is passed | Reference below Behavior collection information |
Device Details
There are differences in the device fields corresponding to different device types and the following lists the field descriptions for the different device types
Android
| Field | Type | Meaning | Remarks |
|---|---|---|---|
| app_version | String | app versions | E.g. "4.1.6" |
| system_version | String | android system versions | E.g. "6.0.1" |
| api_version | String | android API versions | E.g. "23" |
| fp_version | String | SDK versions | E.g. "4.1.6" |
| model | String | device model | E.g. "2014811" |
| brand | String | device Brand | E.g. "Xiaomi" |
| device_name | String | device name | E.g. "HM2014811" |
| network_type | String | network type | E.g. "2g"、"3g"、"4g"、"5g"、"wifi"、"mobile"、"bluetooth_tethering"、"unknown" |
| ip | String | IP address | E.g. "123.157.153.130" |
| time_zone | String | time zone | E.g. "UTC+08:00" |
| startup_time | Long | boot time | E.g. 1741660150575 |
| up_time | Long | uptime | E.g. "568273951" |
| charge_state | String | charging status | E.g. "charging"、"full"、"not_charging"、"discharging"、"unknown" |
| battery_level | Integer | electrical quantities | Range 0 - 100 |
| screen_resolution | String | screen resolution | Width x Height,Example:"720x1280" |
| screen_brightness | Integer | screen brightness | Range -1 - 256 |
| total_memory | Long | total memory size | Bytes |
| available_memory | Long | available memory size | Bytes |
| total_storage | Long | total storage size | Bytes |
| available_storage | Long | available storage size | Bytes |
| latitude | Double | latitude | Accuracy to 6 decimal places, Example 30.282331 |
| longitude | Double | longitude | Accuracy to 6 decimal places, Example 120.011395 |
| accuracy | Double | GPS Horizontal Positioning Accuracy (Error Radius, Unit: m) | E.g. 15.0 |
| carrier | String | carrier | E.g. "Viettel" |
| bssid | String | bssid | E.g. "00:1a:8c:a0:69:0a" |
| wifi_ip | String | wifi ip | E.g. "10.57.3.135" |
| wifi_list | String | wifi list | E.g. "[["38:17:c3:c0:0a:53","Test-Firewall",-49]]" |
| device_svn | String | device svn | E.g. "07" |
| hardware | String | hardware | E.g. "qcom" |
| dns_address | String | dns address | E.g. "211.137.32.178" |
| product | String | product | E.g. "A37T" |
| host | String | host | E.g. "qh-miui-ota-offline07" |
| sim_operator | String | sim operator | E.g. "Viettel,VinaPhone" |
| ssid | String | ssid | E.g. "xiaoming 的 wifi" |
| vpn_ip | String | vpn ip | E.g. "10.251.37.229" |
| cell_ip | String | cell ip | E.g. "10.3.4.9" |
| current_time | Long | current time | E.g. "1687764437374" |
| package_name | String | package name | E.g. "cn.tongdun. android&3.0.0" |
| language | String | language | E.g. "zh" |
| android_id | String | android id | E.g. "952b0b1edda80b44" |
| cpu_hardware | String | cpu hardware | E.g. "ARMv7 Processor rev 0 (v7l)" |
| cpu_type | String | cpu type | E.g. "Qualcomm Technologies" |
| baseband_version | String | baseband version | E.g. "MPSS.DPM.1.0.c7. 18-00023" |
| mnc | String | mobile network code | E.g. "01" |
| mcc | String | mobile country code | E.g. "460" |
| installed_packages | String | installed packages | E.g. "[{\"package\":\"com.miui.screenrecorder\",\"name\":\"-\"},{\"package\":\"com.miui.fm\",\"name\":\"-\"}]" |
| running_packages | String | running packages | E.g. "com.xiaomi.shop" |
| ipv6 | String | ipv6 | E.g. "fe80::bfd7:21d8:318a:693b" |
| sign_md5 | String | sign md5 | E.g. "6fb472cac420436b773a6325d4cdd7bd" |
| proxy_info | String | proxy info | E.g. "42.235.30.24:8080" |
| country_iso | String | iso country code | E.g. "cn,cn" |
| aid | String | google advertising id | E.g. "db13e159-1058-46fc-a4dc-4d2f8197f3af" |
| vpn_true_ip | String | vpn true ip address | E.g. "123.157.153.130" |
| audio_mode | Integer | audio mode | E.g. 0 - Normal mode,1 - Ringtone mode,2 - Call mode,3 - Communication mode,4 - Call screening is in progress |
| first_seen_at | Long | first seen at | E.g. 1734342323000 |
| app_install_time | Long | app install time | E.g. 1743587909428 |
iOS
| Field | Type | Meaning | Remarks |
|---|---|---|---|
| app_version | String | app versions | E.g. "1.0.3" |
| system_version | String | ios system versions | E.g. "10.2.1" |
| fp_version | String | SDK versions | E.g. "4.1.2" |
| model | String | device model | E.g. "iPhone 6s" |
| device_name | String | device name | E.g. "iPhone" |
| network_type | String | network type | E.g. "2g"、"3g"、"4g"、"5g"、"wifi"、"mobile"、"bluetooth_tethering"、"unknown" |
| ip | String | IP address | E.g. "123.157.153.130" |
| time_zone | String | time zone | E.g. "UTC+08:00" |
| startup_time | Long | boot time | E.g.1741660150575 |
| up_time | Long | uptime | E.g. 568273951 |
| charge_state | String | charging status | E.g. "charging"、"unplugged"、"unknown" |
| battery_level | Integer | electrical quantities | Range 0 - 100 |
| screen_resolution | String | screen resolution | Width x Height,Example:"720x1280" |
| screen_brightness | Integer | screen brightness | Range 0 - 100 |
| total_memory | Long | total memory size | Bytes |
| total_storage | Long | total storage size | Bytes |
| available_storage | Long | available storage size | Bytes |
| latitude | Double | latitude | Accuracy to 6 decimal places, Example 30.282331 |
| longitude | Double | longitude | Accuracy to 6 decimal places, Example 120.011395 |
| accuracy | Double | GPS Horizontal Positioning Accuracy (Error Radius, Unit: m) | E.g. 15.0 |
| current_time | String | current time | E.g. "1687764437374" |
| cell_ip | String | cell ip | E.g. "10.5.2.39" |
| wifi_ip | String | wifi ip | E.g. "192.168.10.111" |
| language | String | language | E.g. "en" |
| carrier | String | carrier | E.g. "Viettel,VinaPhone" |
| mnc | String | mobile network code | E.g. "0" |
| mcc | String | mobile country code | E.g. "460" |
| country_iso | String | iso country code | E.g. "cn" |
| bundle_id | String | bundle id | E.g. "cn.fraudmetrix. FMDeviceManager" |
| proxy_info | String | proxy info | E.g. "10.2.3.4:8080" |
| ssid | String | ssid | E.g. "TP-LINK_03FE" |
| bssid | String | bssid | E.g. "80:2f:3e:dd:03:fe" |
| dns_address | String | dns address | E.g. "192.168.10.1" |
| vpn_ip | String | vpn ip | E.g. "10.32.3.98" |
| ipv6 | String | ipv6 | E.g. "fe08:393ed3" |
| idfa | String | identifier for dvertisers | E.g. "5D26C201-7FEF-44A6-B57A-1D10E2E2EC63" |
| idfv | String | Identifier for Vendor | E.g. "C767FCBE-6135-4F23-82EB-BBF35E493CDF" |
| issue_region | String | issue region | E.g. "CH/A" |
| vpn_true_ip | String | vpn true ip address | E.g. "123.157.153.13 |
| microphone_use_state | Integer | microphone use state | E.g.-1: No available microphone,0: Not in a call state,1: In a call state |
| first_seen_at | Long | first seen at | E.g. 1734342323000 |
| app_install_time | Long | app install time | E.g. 1743587909428 |
Harmony
| Field | Type | Meaning | Remarks |
|---|---|---|---|
| fp_version | String | device type | E.g. "1.0.2" |
| screen_resolution | String | screen resolution | E.g. "1344x2772" |
| current_time | Long | current time | E.g. 1711594081876 |
| startup_time | Long | boot time | E.g. 1741660150575 |
| up_time | Long | up time | E.g. 3503141 |
| time_zone | String | time zone | E.g. UTC+08:00 |
| language | String | language | E.g. "zh-Hans" |
| charge_state | String | charging status | E.g. "unknown"、"charging"、"unplugged、"unplugged"、"full" |
| battery_level | Integer | battery level | E.g. 20 |
| network_type | string | network type | E.g. "wifi" |
| total_storage | Long | total storage size | E.g. 243041042432 |
| available_storage | Long | available storage size | E.g. 231078236160 |
| cell_ip | String | cell ip | E.g. "10.24.207.224" |
| wifi_ip | String | wifi ip | E.g. "192.168.101.38" |
| vpn_ip | String | vpn ip | E.g. "198.18.0.1" |
| proxy_info | string | proxy info | E.g. "10.57.241.80:8888" |
| device_type | String | device type | E.g. "phone" |
| brand | String | device brand | E.g. "HUAWEI" |
| market_name | String | market name | E.g. "HUAWEI Mate 40 Pro" |
| model | String | model | E.g. "NON-AN00" |
| hardware | String | hardware | E.g. "HN1NOAHM" |
| serial_no | String | serial no | E.g. "05b37354f0dd7f2e" |
| system_version | String | system version | E.g. "2.1.6.6(Beta2)" |
| api_version | String | API versions | E.g. "11" |
| udid | String | udid | E.g. "default" |
| package_name | string | package name | E.g. "com.example.harmonyosdemo" |
| app_version | string | app versions | E.g. "1.0.1" |
| sign_md5 | string | sign md5 | E.g. "8CC29B99116E11A24A7762539327BB566D65773CB64C1521D68E67316DE1923F" |
| country_iso | string | iso country code | E.g. "cn,-" |
| sim_operator | string | sim operator | E.g. "Viettel,VinaPhone" |
| latitude | double | latitude | Accuracy to 6 decimal places, Example 30.282331 |
| longitude | double | longitude | Accuracy to 6 decimal places, Example 120.011395 |
| ip | String | IP address | 223.104.160.62 |
| audio_mode | Integer | audio mode | 0 - Default,1 - Ringing mode,2 - Telephone mode,3 - Voice mode |
| first_seen_at | Long | first seen at | E.g. 1734342323000 |
| app_install_time | Long | app install time | E.g. 1743587909428 |
Web
| Field | Type | Meaning | Remarks |
|---|---|---|---|
| browser_name | String | browser name | E.g. "Chrome" |
| browser_version | String | browser version | E.g. "56.0.2924.87" |
| fp_version | String | SDK versions | E.g."3.8.5" |
| user_agent | String | browser userAgent | E.g. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" |
| url | String | uniform resource locator | E.g. "file:///Users/td/Documents/td/fp/demo_web.html" |
| device_type | String | device type | E.g. "Mac" |
| os | String | device operating system | E.g. "Mac OS" |
| ip | String | ip addresses | E.g. "123.157.153.130" |
| time_zone | String | time zone | E.g. "UTC+08:00" |
| screen_resolution | String | screen resolution | Width x Height,Example:"720x1280" |
| language | String | language | E.g. "zh-CN" |
| referer | String | referer | E.g."http://10.57.30.164:8088/" |
| canvas | String | canvas | E.g. "c8a8455d02d7cec9e dbe980b6b9e0ff8" |
| current_time | Long | current time | E.g. "1481694227762" |
| vpn_true_ip | String | vpn true ip address | E.g. "123.157.153.13 |
| latitude | Double | latitude | Accuracy to 6 decimal places, Example 30.282331 |
| longitude | Double | longitude | Accuracy to 6 decimal places, Example 120.011395 |
| first_seen_at | Long | first seen at | E.g. 1734342323000 |
IP Location Information
| Field | Type | Meaning | Remarks |
|---|---|---|---|
| continent | String | continent | E.g. "North America" |
| country | String | country | E.g. "The United States" |
| country_id | String | country code | E.g. "US" |
| region | String | province/state/region | E.g. "Virginia" |
| city | String | city | E.g. "Ashburn" |
| accuracy_radius | Double | Positioning Error Radius Value, Unit: m | E.g. 35.6001 |
| latitude | Double | IP latitude | E.g. 30.384272 |
| longitude | Double | IP longitude | E.g. 119.987002 |
Device Risk Label
| Field | Type | Applicable platform | Description | Remarks |
|---|---|---|---|---|
| abnormal_time | String | Android, iOS, Web,Mini program | current device time abnormal | Excessive deviation of device times from actual times |
| emulator | String | Android, iOS, Web,Mini program,Harmony | device is a simulator | The device is an emulator installed on the computer |
| incognito_mode | String | Web | incognito mode | |
| headless_mode | String | Web,Mini | virtual browser | |
| abnormal_useragent | String | Web,Mini program | useragent abnormal | |
| debugger_detected | String | Android, iOS, Web,Mini(wechat) | debugger is detected | Debugger is detected |
| hook_tool_detected | String | Android, iOS,Web | hook tool detected | |
| device_info_tampered | String | Android, iOS,Web,Mini program | tampering with device parameters | Device information tampering detected |
| group_control | String | Android, iOS | group control | Using cloud handsets, group control devices |
| no_sim | String | Android, iOS、Harmony | without sim card inserted | Device without a sim card inserted |
| abnormal_device_attr | String | iOS, Web,Mini program | device parameter abnormal | Hash check exceptions, some fields hit special values |
| script_tempered | String | Web | script tampering | |
| virtual_machine | String | Web | device as a virtual machine | The current device is detected as a virtual machine |
| local_debug | String | Web | local debugging | Local debugging detected |
| adb_link | String | Android | android debug bridge | Mobile device connected to PC, in ADB debugging state |
| repackaged | String | Android, iOS | secondary packaging | |
| proxy_detected | String | Android, Harmony,iOS,Mini program(wechat、Alipay) | using a proxy | |
| root | String | Android | root | |
| jail_break | String | iOS | jailbreak devices | |
| vpn_detected | String | Android, iOS,Web,Harmony | using vpn | |
| replay_attacks | String | Android,Harmony ,iOS, Web,Mini program | replay attack | The current device information has been repeatedly requested several times |
| cookie_tempered | String | Android, Harmony、iOS, Web,Mini program | cookie tampering | Cookie tampering on client device fingerprint |
| crawler | String | Web,program(wechat) | web crawler | |
| malicious_crx | String | Web | malicious extension plugins | |
| debug_tool | String | Web | debugger tools | |
| app_multiple_running | String | Android,iOS | app multi opening | |
| sys_multiple_running | String | Android | system multi opening | |
| gps_fake | String | Android, iOS,Mini program(wechat) | virtual positioning | |
| risk_rom | String | Android | suspected risk rom | ROMs for non-native factory devices |
| camera_fake | String | Android, iOS | camera fake | |
| suspected_reset | String | Android, iOS | suspected reset | |
| short_uptime | String | Android, iOS,Harmony | short uptime | |
| screen_sharing | String | Android, iOS,Harmony,Mini program(wechat) | screen sharing | |
| cloud_phone | String | Android, iOS,Mini program(wechat) | cloud phone | |
| device_call | String | Android, iOS,Harmony | device call | |
| anti_association_browser | String | Web | anti association browser | |
| offline_attack | String | Web,Android,iOS,Mini program(wechat) | offline attack |
Device Risk Tools
| Field | type | Description | Remarks |
|---|---|---|---|
| installed_risk_tools_type | Array | installation risk tool Type description | Please refer to installation risk tool Type description |
| running_risk_tools_type | Array | description of the type of risk tool running | Please refer to the description of the type of risk tool running |
Installation Risk Tools
| Field | Applicable platform | Description | |
|---|---|---|---|
| quick_macro | Android, iOS | auto click tool | |
| cydia | Android, iOS | Cydia | |
| agent_app | Android, iOS | agent app | |
| more_open | Android | double open tool | |
| machine_change_tools | Android, iOS | hook tools | |
| code_receiving_platform | Android | code receiving platform | |
| magisk | Android | Magisk | |
| group_control_software | Android | group control software | |
| virtual_app | Android | VirtualApp | |
| virtual_positioning | Android, iOS | GPS location fake | |
| xposed | Android | Xposed | |
| game_transmission | Android | game transmission | |
| game_modifier | Android, iOS | game modifier | |
| cloud_simulator | Android | cloud simulator | |
| crowdsourcing_app | Android | crowdsourcing app | |
| skip_ads | Android | skip ads | |
| anti_crash_frame | Android | anti crash frame | |
| capture_tool | Android | capture tool | |
| frida | Android, iOS | frida | |
| troll_store | iOS | TrollStore | |
| cloud_phone | iOS | cloud phone | |
| root_manager | Android | root manager | |
| remote_control | Android | remote control | |
| screen_casting_software | Android | screen casting software | |
| face_spoofing | Android | face spoofing |
Running Risk Tools
| Field | Applicable platform | Description |
|---|---|---|
| quick_macro | Android, iOS | auto click tool |
| machine_change_tools | iOS | hook tools |
| cydia | Android | Cydia |
| magisk | Android | Magisk |
| test_frame | Android | TestFrame |
| virtual_app | Android | VirtualApp |
| xposed | Android | Xposed |
| capture_tool | Android | capture tool |
| frida | Android,iOS | frida |
| troll_store | iOS | TrollStore |
Device History Risk Labels
| Field | type | Description | Remarks |
|---|---|---|---|
| label | String | risk label | Reference device history risk label list "f" |
| last_time | String | last time | 13 digit timestamp |
Device History Risk Label List
| Field | Type | Applicable platform | Description | Remarks |
|---|---|---|---|---|
| abnormal_time | String | Android, iOS, Web,Mini program | current device time abnormal | Excessive deviation of device times from actual times |
| emulator | String | Android, iOS, Web,Mini program,Harmony | device is a simulator | The device is an emulator installed on the computer |
| incognito_mode | String | Web | incognito mode | |
| headless_mode | String | Web,Mini program | virtual browser | |
| abnormal_useragent | String | Web,Mini program | useragent abnormal | |
| debugger_detected | String | Android, iOS, Web,Mini program(wechat) | debugger is detected | Debugger is detected |
| hook_tool_detected | String | Android, iOS | hook tool detected | |
| device_info_tampered | String | Android, Web | tampering with device parameters | Device information tampering detected |
| group_control | String | Android, iOS | group control | Using cloud handsets, group control devices |
| no_sim | String | Android, iOS,Harmony | without sim card inserted | Device without a sim card inserted |
| abnormal_device_attr | String | iOS, Web,Mini program | device parameter abnormal | Hash check exceptions, some fields hit special values |
| script_tempered | String | Web | script tampering | |
| virtual_machine | String | Web | device as a virtual machine | The current device is detected as a virtual machine |
| local_debug | String | Web | local debugging | Local debugging detected |
| adb_link | String | Android | android debug bridge | Mobile device connected to PC, in ADB debugging state |
| repackaged | String | Android, iOS | secondary packaging | |
| proxy_detected | String | Android, Harmony,iOS,Mini program(wechat,Alipay) | using a proxy | |
| root | String | Android | root | |
| jail_break | String | iOS | jailbreak devices | |
| vpn_detected | String | Android, iOS,Web,Harmony | using vpn | |
| replay_attacks | String | Android,Harmony ,iOS, Web,Mini program | replay attack | The current device information has been repeatedly requested several times |
| cookie_tempered | String | Android, Harmony、iOS, Web,Mini program | cookie tampering | Cookie tampering on client device fingerprint |
| crawler | String | Web,program(wechat) | web crawler | |
| malicious_crx | String | Web | malicious extension plugins | |
| debug_tool | String | Web | debugger tools | |
| app_multiple_running | String | Android,iOS | app multi opening | |
| sys_multiple_running | String | Android | system multi opening | |
| gps_fake | String | Android, iOS,Mini program(wechat) | virtual positioning | |
| risk_rom | String | Android | suspected risk rom | ROMs for non-native factory devices |
| camera_fake | String | Android, iOS | camera fake | |
| suspected_reset | String | Android, iOS | suspected reset | |
| short_uptime | String | Android, iOS,Harmony | short uptime | |
| screen_sharing | String | Android, iOS | screen sharing | |
| cloud_phone | String | Android, iOS,Mini program(wechat) | cloud phone | |
| device_call | String | Android, iOS,Harmony | device call | |
| anti_association_browser | String | Web | anti association browser | |
| offline_attack | String | Web,Android,iOS,Mini program(wechat) | offline attack |
VPN True IP Location Information
| Field | Type | Meaning | Remarks |
|---|---|---|---|
| continent | String | continent | E.g. "North America" |
| country | String | country | E.g. "The United States" |
| country_id | String | country code | E.g. "US" |
| region | String | province/state/region | E.g. "Virginia" |
| city | String | city | E.g. "Ashburn" |
| accuracy_radius | Double | Positioning Error Radius Value, Unit: m | E.g. 35.6001 |
| latitude | Double | IP latitude | E.g. 30.384272 |
| longitude | Double | IP longitude | E.g. 119.987002 |
Behavior collection information
| Field | Category | Type | Description | Platform |
|---|---|---|---|---|
| scale_rage_actions_count | Anomaly | int | Number of times scale event speed exceeds a threshold per second, e.g., if current unit speed exceeds 5 scale events/second, count +1 | iOS、Android、Flutter |
| scroll_rage_actions_count | Anomaly | int | Number of times scroll event speed exceeds a threshold per second, e.g., if current unit speed exceeds 5 scroll events/second, count +1 | iOS、Android、Flutter |
| swipe_rage_actions_count | Anomaly | int | Number of times swipe event speed exceeds a threshold per second, e.g., if current unit speed exceeds 5 swipe events/second, count +1 | iOS、Android、Flutter |
| text_input_rage_actions_count | Anomaly | int | Number of times text input event speed exceeds a threshold per second, e.g., if current unit speed exceeds 5 text input events/second, count +1 | iOS、Android、Flutter |
| touch_rage_actions_count | Anomaly | int | Number of times touch event speed exceeds a threshold per second, e.g., if current unit speed exceeds 5 touch events/second, count +1 | iOS、Android、Flutter、Web |
| keyboard_rage_actions_count | Anomaly | int | Number of times keyboard event speed exceeds a threshold per second, e.g., if current unit speed exceeds 5 keyboard events/second, count +1 | Web |
| mouse_rage_actions_count | Anomaly | int | Number of times mouse event speed exceeds a threshold per second, e.g., if current unit speed exceeds 5 mouse events/second, count +1 | Web |
| click_rage_actions_count | Anomaly | int | Number of times click event speed exceeds a threshold per second, e.g., if current unit speed exceeds 5 click events/second, count +1 | Web |
| scale_total_events_count | Finger | int | Total number of scale events | iOS、Android、Flutter |
| scroll_path_length | Finger | string(float) | Total distance of scroll events, unit: pixels, example:"100.0" | iOS、Android、Flutter |
| swipe_path_length | Finger | string(float) | Total distance of swipe events, unit: pixels, example:"100.0" | iOS、Android、Flutter |
| swipe_total_events_count | Finger | int | Total number of swipe events | iOS、Android、Flutter |
| text_input_total_events_count | Finger | int | Total number of text input events | iOS、Android、Flutter |
| touch_total_events_count | Finger | int | Total number of touch events | iOS、Android、Flutter、Web |
| scroll_total_events_count | Finger | int | Total number of scroll events | iOS、Android、Flutter、Web |
| touch_actions_speed | Finger | string(float) | Touch event speed, unit: events/s, example:"100.0" | iOS、Android、Flutter、Web |
| click_total_events_count | Finger | int | Total number of click events | Web |
| mouse_moving_path_length | Finger | string(float) | Total distance of mouse movement events, unit: pixels, example:"100.0" | Web |
| mouse_moving_speed | Finger | string(float) | Mouse movement speed, unit: pixels/s, example:"100.0" | Web |
| mouse_hover_total_events_count | Finger | int | Total number of mouse hover events,A mouse hover event is triggered when the mouse remains stationary for more than 0.5 seconds. | Web |
| mouse_hover_time_spent_total | Finger | string(float) | Total Time spent in mouse hover state, A mouse hover event is triggered when the mouse remains stationary for more than 0.5 seconds.unit: seconds, example:"100.0" | Web |
| application_as_background_count | Interactions | int | Number of times the application enters background | iOS、Android、Flutter |
| application_as_foreground_count | Interactions | int | Number of times the application enters foreground | iOS、Android、Flutter |
| application_navi_count | Interactions | int | Number of application interface switches | iOS、Android、Flutter |
| client_activity_session_time_spent_total | Interactions | string(float) | Time spent by application in foreground, unit: seconds, example:"100.0" | iOS、Android、Flutter |
| client_interactions_time_spent_total | Interactions | string(float) | Total time of input field cursor focus within the application, unit: seconds, example:"100.0" | iOS、Android、Flutter |
| client_interactions_tracked_events_count | Interactions | int | Number of events triggered during input field cursor focus within the application, event types include touch, scroll, screenEdgePan, swipe, textInput | iOS、Android、Flutter |
| text_input_text_removed_all_count | Interactions | int | Number of complete text deletion input events among text input events, requires text length > 1 before deletion | iOS、Android、Flutter |
| input_delete_actions_count | Interactions | int | Number of delete operation input events when a letter was deleted in the "usual" way during fields filling (1 character per 1 event) | iOS、Android、Flutter、Web |
| input_insert_actions_count | Interactions | int | Number of insert operation input events when a letter was inserted in the "usual" way during fields filling (1 character per 1 event) | iOS、Android、Flutter、Web |
| input_cut_actions_count | Interactions | int | Number of cut operation input events among text input events | Web |
| input_copy_actions_count | Interactions | int | Number of copy operation input events among text input events | Web |
| input_paste_actions_count | Interactions | int | Number of paste operation input events among text input events | iOS、Android、Flutter、Web |
| application_navi_info | Interactions | string | Information on application interface switching, including interface name and dwell time, example:"Main0,2.1211,SignIn0,25.7295" | iOS、Android、Flutter、Web |
| accelerometer_g_rage_actions_count | Sport | int | For time-sorted accelerometer data, take a fixed number of accelerometer data points, calculate if the variance of g values exceeds a threshold, if yes, count +1 | iOS、Android、Flutter |
| gyroscope_x_rage_actions_count | Sport | int | For time-sorted gyroscope data, take a fixed number of gyroscope data points, calculate if the variance of x values exceeds a threshold, if yes, count +1 | iOS、Android、Flutter |
| gyroscope_y_rage_actions_count | Sport | int | For time-sorted gyroscope data, take a fixed number of gyroscope data points, calculate if the variance of y values exceeds a threshold, if yes, count +1 | iOS、Android、Flutter |
| gyroscope_z_rage_actions_count | Sport | int | For time-sorted gyroscope data, take a fixed number of gyroscope data points, calculate if the variance of z values exceeds a threshold, if yes, count +1 | iOS、Android、Flutter |
| orientation_total_events_count | Sport | int | Number of times device orientation changes | iOS、Android、Flutter |
| orientation_rage_actions_count | Sport | int | Number of times device rotation event speed exceeds a threshold per minute, e.g., if current unit speed exceeds 5 device rotation events/minute, count +1 | iOS、Android、Flutter |
| text_input_chars_except_num_and_letters_count | Typing | int | Number of characters 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) | iOS、Android、Flutter |
| text_input_letters_count | Typing | int | Number of text input events when a letter was typed in the "usual" way during fields filling (1 letter per 1 event) | iOS、Android、Flutter |
| text_input_numbers_count | Typing | int | Number of text input events when a number was typed in the "usual" way during fields filling (1 number per 1 event) | iOS、Android、Flutter |
| text_input_speed | Typing | int | Text input speed, unit: characters/s | iOS、Android、Flutter |
| input_start_with_lower_count | Typing | int | Number of text input events when user started to type field with a lower letter | iOS、Android、Flutter、Web |
| input_start_with_number_count | Typing | int | Number of text input events user started to type field with a number | iOS、Android、Flutter、Web |
| input_start_with_upper_count | Typing | int | Number of text input events when user started to type field with a upper letter | iOS、Android、Flutter、Web |
| keyboard_letter_keys_pressed_count | Typing | int | Number of letter key press events among keyboard events | Web |
| keyboard_total_keys_pressed_count | Typing | int | Total number of keyboard key press events | Web |
| keyboard_meta_key_pressed_count | Typing | int | Number of meta key press events among keyboard events | Web |
| keyboard_number_keys_pressed_count | Typing | int | Number of number key press events among keyboard events | Web |
| keyboard_backspace_key_pressed_count | Typing | int | Number of backspace key press events among keyboard events | Web |
| keyboard_shift_key_pressed_count | Typing | int | Number of shift key press events among keyboard events | Web |
| keyboard_ctrl_key_pressed_count | Typing | int | Number of ctrl key press events among keyboard events | Web |
| keyboard_delete_key_pressed_count | Typing | int | Number of delete key press events among keyboard events | Web |
| keyboard_space_key_pressed_count | Typing | int | Number of space key press events among keyboard events | Web |
| keyboard_symbol_key_pressed_count | Typing | int | Number of symbol key press events among keyboard events | Web |
| keyboard_tab_key_pressed_count | Typing | int | Number of tab key press events among keyboard events | Web |
| keyboard_alt_key_pressed_count | Typing | int | Number of alt key press events among keyboard events | Web |
| keyboard_cut_keys_pressed_count | Typing | int | Number of "ctrl + x" key combination press events among keyboard events | Web |
| keyboard_copy_keys_pressed_count | Typing | int | Number of "ctrl + c" key combination press events among keyboard events | Web |
| keyboard_paste_keys_pressed_count | Typing | int | Number of "ctrl + v" key combination press events among keyboard events | Web |
| keyboard_shift_delete_actions_count | Typing | int | Number of "shift + delete" key combination press events among keyboard events | Web |
| keyboard_ctrl_alt_delete_actions_count | Typing | int | Number of "ctrl + alt + delete" key combination press events among keyboard events | Web |
| keyboard_text_shift_key_pressed_count | Typing | int | Number of shift key press events for uppercase letters and special symbols among keyboard events; | Web |
| keyboard_typing_speed | Typing | int | Keyboard event speed, unit: events/s | Web |
| keyboard_is_trusted_key_count | Typing | int | Number of trusted text input events in application flow among keyboard events, i.e., total events where event.isTrusted == true | Web |
| input_from_inside_count | Typing | int | Total number of times user inputs values within the field during interaction with input box (position > 1 and position < string length) | Web |
| input_from_end_count | Typing | int | Total number of times user inputs values at the end of string during first interaction with input box | Web |
| input_from_beginning_count | Typing | int | Number of times user starts input from the first position of the field during interaction with input box | Web |
| touch_prop_force_max | Typing | string(float) | Touch events, maximum pressure value, example:"0.8" | Web |
| touch_prop_force_avg | Typing | string(float) | Touch events, average pressure value, example:"0.5" | Web |
| touch_prop_force_min | Typing | string(float) | Touch events, minimum pressure value, example:"0.2" | Web |
| text_input_count | Typing | int | Total number of characters in all text input events | iOS、Android、Flutter、Web |
Status Code
| Status Code | Suggestion | Charged |
|---|---|---|
| 200 | Yes | |
| 306 | No available traffic, please contact operations | No |
| 406 | Wrong region,Version is not support | No |
| 500 | Application exception, reserved errors, can be ignored | No |
| 512 | Service not purchased, please contact operations | No |
| 513 | Traffic disabled, please contact operations | No |
| 514 | Service expired, please contact operations | No |
| 515 | Lack of traffic, please contact operations | No |
| 9150 | Wrong region,device os not support | No |
| 9151 | Authentication failed, please check the authentication parameters | No |
| 9152 | Service exception, reserved errors, can be ignored | No |
| 9153 | black_box is illegal,please mark | No |
| 9154 | SDK exception, please check the integration | No |
| 9155 | Replay, please mark | No |
| 9156 | Missing file, reserved errors, please check the integration | No |
| 9157 | Time out, please retry | No |
| 9158 | BlackBox forgery, please mark | No |
| 9159 | Missing blackBox, please check your code | No |
| 9160 | Wrong environment, confusion between production and testing environments | No |
| 9161 | BlackBox expired, prohibit caching blackBox | No |
| 9162 | Content type is not support | No |
| 9163 | Wrong region,Wrong address | No |
| 9164 | SDK init exception, please check the apiStatus returned by the SDK | No |
Example of response
JSON
{
"device_risk_score": 8,
"code": 200,
"device_id": "c1nG3793-Z5a0-p97J-180N-0nC1DYQh12Yj",
"channel": "apitest",
"device_risk_label": [
"no_sim",
"adb_link"
],
"device_risk_tools": {
"running_risk_tools_type": [],
"installed_risk_tools_type": []
},
"device_detail": {
"app_version": "4.8.0.2",
"language": "zh",
"installed_packages": "[{\"package\":\"cn.tongdun.mobrisk.demo\",\"name\":\"-\"}]",
"mcc": "",
"gps_location": {
"address": "",
"province": "",
"city": "",
"region": "",
"township": ""
},
"wifi_ip": "",
"device_svn": "20",
"available_storage": 137275531264,
"cpu_type": "",
"dns_address": "",
"host": "cn-west-hcd-5a-acab910141717386065435-588c6955d6-48x72",
"model": "OXF-AN10",
"brand": "HONOR",
"hardware": "kirin990",
"longitude": 0,
"cell_ip": "",
"ip": "183.129.232.236",
"screen_resolution": "1080x2400",
"cpu_hardware": "",
"charge_state": "charging",
"up_time": 82841770,
"audio_mode": 0,
"aid": "",
"startup_time": 1757472801887,
"bssid": "",
"latitude": 0,
"running_packages": "cn.tongdun.mobrisk.demo",
"proxy_info": "",
"device_name": "HWOXF",
"total_memory": 7868047360,
"vpn_true_ip": "",
"ipv6": "",
"system_version": "12",
"baseband_version": "21C93B398S000C000",
"fp_version": "4.8.0.2",
"country_iso": "cn,-",
"current_time": 1757555643657,
"product": "OXF-AN10",
"mnc": "",
"sim_operator": "-,-",
"battery_level": 67,
"first_seen_at": 1735097180012,
"vpn_ip": "",
"api_version": "31",
"time_zone": "UTC+08:00",
"sign_md5": "03ce925f76ceb40e1c2ed8bfe3fcdd0c480a7ba8689ff814c601edfbf79e339e",
"screen_brightness": 71,
"carrier": "-,-",
"app_install_time": 1757482908393,
"package_name": "cn.tongdun.mobrisk.demo",
"available_memory": 3286253568,
"total_storage": 245389852672,
"android_id": "0828e7ca28dae28c",
"network_type": "wifi",
"wifi_list": "[{\"wifi_bssid\":\"28:6c:07:47:c3:bb\",\"wifi_ssid\":\"ZD_5G\",\"wifi_level\":-54},{\"wifi_bssid\":\"dc:f0:90:33:02:92\",\"wifi_ssid\":\"nunu\",\"wifi_level\":-58},{\"wifi_bssid\":\"e8:ac:23:cb:34:76\",\"wifi_ssid\":\"tdiot\",\"wifi_level\":-69},{\"wifi_bssid\":\"e8:ac:23:cb:34:74\",\"wifi_ssid\":\"TD-Phone\",\"wifi_level\":-69},{\"wifi_bssid\":\"e8:ac:23:cb:34:73\",\"wifi_ssid\":\"TD-GUEST\",\"wifi_level\":-69},{\"wifi_bssid\":\"e8:ac:23:cb:34:72\",\"wifi_ssid\":\"Tongdun\",\"wifi_level\":-69},{\"wifi_bssid\":\"e8:ac:23:cb:34:71\",\"wifi_ssid\":\"TrustDecision\",\"wifi_level\":-69},{\"wifi_bssid\":\"e8:ac:23:cb:34:70\",\"wifi_ssid\":\"Zhongboxin\",\"wifi_level\":-69},{\"wifi_bssid\":\"76:8d:2a:32:71:49\",\"wifi_ssid\":\"608-TDXT\",\"wifi_level\":-75},{\"wifi_bssid\":\"e8:ac:23:ca:89:a2\",\"wifi_ssid\":\"Tongdun\",\"wifi_level\":-91}]",
"accuracy": 15.0,
"ssid": "ZD_5G",
"oaid": "f976d3ee-7168-4f06-a7a5-4dea08a9662a"
},
"behavior_detail": {
"anomaly": {
"scale_rage_actions_count": 0,
"scroll_rage_actions_count": 0,
"swipe_rage_actions_count": 0,
"text_input_rage_actions_count": 1,
"touch_rage_actions_count": 0
},
"finger": {
"scale_total_events_count": 0,
"scroll_path_length": 0,
"scroll_total_events_count": 0,
"swipe_path_length": 0,
"swipe_total_events_count": 0,
"text_input_total_events_count": 21,
"touch_actions_speed": 0,
"touch_total_events_count": 0
},
"interactions": {
"application_as_background_count": 0,
"application_as_foreground_count": 0,
"application_navi_count": 0,
"application_navi_info": "SignIn0,25.7295",
"client_activity_session_time_spent_total": "25.8215",
"client_interactions_time_spent_total": "9.6349",
"client_interactions_tracked_events_count": 21,
"input_delete_actions_count": 0,
"input_insert_actions_count": 17,
"input_paste_actions_count": 0,
"text_input_text_removed_all_count": 1
},
"sport": {
"accelerometer_g_rage_actions_count": 22,
"gyroscope_x_rage_actions_count": 22,
"gyroscope_y_rage_actions_count": 22,
"gyroscope_z_rage_actions_count": 22,
"orientation_rage_actions_count": 0,
"orientation_total_events_count": 0
},
"typing": {
"input_start_with_lower_count": 1,
"input_start_with_number_count": 0,
"input_start_with_upper_count": 0,
"text_input_chars_except_num_and_letters_count": 6,
"text_input_count": 23,
"text_input_letters_count": 9,
"text_input_numbers_count": 8,
"text_input_speed": "2.3871"
}
},
"message": "success",
"device_os": "Android",
"ip_location": {
"continent": "亚洲",
"country": "中国",
"city": "杭州市",
"region": "浙江省",
"country_id": "CN",
"latitude": 30.384272,
"accuracy_radius": 35.6001,
"longitude": 119.987002
},
"vpn_true_ip_location": {
"continent": "",
"country": "",
"city": "",
"region": "",
"country_id": "",
"latitude": 0.0,
"accuracy_radius": 0.0,
"longitude": 0.0
},
"device_history_risk_label": [
{
"last_time": "1749105497989",
"label": "app_multiple_running"
},
{
"last_time": "1753944006009",
"label": "vpn_detected"
},
{
"last_time": "1749105497989",
"label": "camera_fake"
},
{
"last_time": "1757555625652",
"label": "no_sim"
},
{
"last_time": "1742286486244",
"label": "short_uptime"
},
{
"last_time": "1757555625652",
"label": "adb_link"
},
{
"last_time": "1749105497989",
"label": "gps_fake"
},
{
"last_time": "1746762648790",
"label": "repackaged"
},
{
"last_time": "1753944006009",
"label": "device_info_tampered"
},
{
"last_time": "1757498166978",
"label": "abnormal_time"
},
{
"last_time": "1748338101708",
"label": "cloud_phone"
},
{
"last_time": "1753944006009",
"label": "proxy_detected"
},
{
"last_time": "1757498166978",
"label": "replay_attacks"
}
],
"sequence_id": "1757555737405256F8BD761B87527878"
}
