Understanding Results
When DeviceAssure validates a device, it returns a classification indicating the device's authenticity. This page explains what each classification means and suggests how to handle it.
For the full API response format and field definitions, see API Response. For all result codes, see Classifications.
Classifications at a Glance
| Classification | What It Means | Suggested Action |
|---|---|---|
| AUTHENTIC | Device properties match a known valid device profile. Identifiers are consistent. | Allow normal access. |
| NON-AUTHENTIC | Device claims to be a specific device, but its properties don't match. May be counterfeit, spoofed, or tampered. | Flag for review or block. Investigate further. |
| INCONSISTENT | Identifiers point to different devices, but at least one matches the measured properties. Risk of a compromised or modified device. The reason names which identifier disagreed with the measured hardware. | Flag for review. May require additional verification. |
| NON-COMPLIANT | The device's TAC is not a valid TAC issued by the GSMA. | Flag for review. The device may not meet regulatory standards. |
| INDETERMINATE | DeviceAssure cannot make a determination. This may be due to insufficient data, an unrecognised device, a masking proxy, or a browser that doesn't expose identifying information. | Handle based on your risk tolerance. Consider requesting more information or allowing with monitoring. |
| BOT | Automated, non-human traffic detected. May be a bot, automation framework, or emulator. Web library only. | Block or flag depending on context. |
Key Response Fields
Each validation response includes these fields:
| Field | Description |
|---|---|
result | The classification: AUTHENTIC, NON-AUTHENTIC, NON-COMPLIANT, INCONSISTENT, INDETERMINATE, or BOT |
resultCode | A numeric code identifying the specific result and reason (e.g., 101, 503, 601). Branch on this field - see the note below |
reason | A human-readable description of why the device received this classification. Intended for display rather than for branching |
referenceId | A unique ID for the validation request, useful when contacting support |
Note: Match on
resultCode, not onreason. Result codes are stable, whereas thereasonstring is descriptive text that may be reworded. Both fields are returned only when enabled for your licence, so confirm result codes are enabled before relying on them.
Additional Flags
DeviceAssure also returns these boolean flags, independent of the main classification:
| Flag | Description |
|---|---|
deviceIdentifiedAsRooted | The device shows signs of being rooted or jailbroken |
customRomIdentified | The device is running a custom ROM |
desktopIdentified | The device has been identified as a desktop rather than a mobile device |
privateBrowsing | The browser is in private/incognito mode |
torExitNode | The request originated from a known Tor exit node |
appleICloudRelay | The request originated from Apple iCloud Private Relay |
Example: Reading a Result
A response with "result": "NON-AUTHENTIC" and "reason": "Device properties do not match any expected device profile" means:
- The device claims to be a specific model (e.g., Samsung Galaxy S9)
- But its measured hardware properties (CPU, GPU, memory, screen, etc.) don't match any known variant of that device
- This is a strong indicator of a counterfeit or spoofed device
Next Steps
- API Response - Full response format and field definitions
- Classifications - All result codes and their meanings
- Error Codes - HTTP error codes and recommended actions
- Glossary - Definitions of key terms like TAC, IMEI, and GSMA
- Ready to integrate? Choose your platform: Web | Android