Skip to content

Classifications

Each classification below includes a Result Code and Reason text. These correspond to the resultCode and reason fields in the API response.

Note: Integrate against the numeric resultCode rather than the reason text: result codes are stable, whereas the reason string is descriptive text intended for display and may be reworded. The reason text and some result codes changed on 1 October 2026 — if you integrated before then, see Changes from the previous result reasons for the old→new mapping.


AUTHENTIC

Identifiers are consistent, and the captured properties match a valid variant of the identified device.

Result Code - Reason
101 - Device has passed all verification checks
Description:
The measured properties match the expected device properties and the identifiers align.

INDETERMINATE

Unable to match any identifiers to any known device, hence a determination is not possible.

Result Code - Reason
201 - Masking Proxy Detected
Description:
IP falls in the IP range of a masking proxy. Measured properties are from the proxy server and not the device under test.
202 - User-agent string contains no device identifiers
Description:
The device could not be resolved to a particular model.
203 - Device Match not Found
Description:
No reference devices to compare to. A possible cause is a recently released device.
204 - Device properties required for verification not available
Description:
One or more properties under test are empty or missing.
206 - OS version has not yet been validated (Deprecated)
Description:
The Android version detected is greater than the current production version supported by DeviceAssure. Replaced by 212.
207 - Browser masks the device identifying information
Description:
The browser does not provide the ability to identify the device.
208 - Device identifying information not supplied by browser
Description:
The browser does provide the ability to identify the device but the required identifier was not supplied by the browser.
209 - OS version has not yet been validated (Deprecated)
Description:
The iOS version detected is greater than the current production version supported by DeviceAssure. Replaced by 212.
210 - Unidentified Apple device
Description:
Exhibits characteristics of an Apple device but does not match any known reference devices.
211 - Apple model is not yet fully profiled
Description:
Profiling of the Apple device is in progress.
212 - Support for newly detected OS version under review
Description:
The iOS or Android version detected is greater than the current production version supported by DeviceAssure. Replaces 206 and 209.

INCONSISTENT

Identifiers point to different devices, but at least one of the devices identified is consistent with the actual properties returned (risk of compromised/modified device).

The identifiers compared are the User-Agent, the TAC and the Make-Model. Each reason below names which of those identifiers agreed with the measured hardware. The web library uses the User-Agent and the TAC only, so it returns 305 or 306; the Android library uses all three.

Result Code - Reason
301 - Properties match at least one of multiple reference devices (Deprecated)
Description:
The measured properties match at least one of the reference device property sets and failed to match on another. Replaced by 305 to 310, and by 302 and 303 where those apply.
302 - Device matched available data but insufficient sources for full verification
Description:
The measured properties match the reference device, but with only one identifier available there is insufficient corroboration of its identity.
303 - Browser and TAC reflect different devices
Description:
The measured properties match the reference devices. However, a comparison of the reference devices indicates the device identifiers are pointing to different devices.
304 - TAC aligns with the device hardware but this recent Apple model is not yet fully profiled
Description:
The measured properties match the reference devices of a new Apple device. However, a comparison of the reference devices indicates one of the identifiers for the reference devices is incorrect, due to an incomplete User-Agent mapping.
305 - User-Agent's expected hardware doesn't match device
Description:
The User-Agent does not align with the expected hardware, which may indicate the use of a User-Agent switcher or other spoofing techniques.
Applies to:
Web and Android libraries.
306 - TAC's expected hardware doesn't match device
Description:
The TAC does not match the expected hardware profile for this device, which may indicate that the TAC has been modified or is inconsistent with the actual device.
Applies to:
Web and Android libraries.
307 - Make-Model's expected hardware doesn't match device
Description:
The make and model information does not align with the expected hardware, which may indicate the use of a custom ROM or altered device configuration.
Applies to:
Android library only.
308 - User-Agent and Make-Model indicate a different device; Only TAC matched expected hardware
Description:
Although the TAC matches the expected hardware, discrepancies in the User-Agent and make and model suggest possible spoofing or manipulation of device attributes.
Applies to:
Android library only.
309 - TAC and Make-Model indicate a different device; Only User-Agent matched expected hardware
Description:
Although the User-Agent matches the expected hardware, discrepancies in the TAC and make and model suggest possible device spoofing, manipulation or tampering.
Applies to:
Android library only.
310 - TAC and User-Agent indicate a different device; Only Make-Model matched expected hardware
Description:
The make and model correspond to the expected hardware, but the TAC and User-Agent point to a different device. This partial mismatch may indicate selective modification of device identifiers or the use of non-standard firmware.
Applies to:
Android library only.

NON-COMPLIANT

The TAC is invalid (The reported TAC is not a valid TAC issued by the GSMA).

Result Code - Reason
401 - Invalid TAC
Description:
TAC is not a recognised TAC in the GSMA's global TAC list.

NON-AUTHENTIC

The device makes at least one technical claim to be a specific device, but the captured properties do not match the identified device.

Result Code - Reason
501 - Device claiming to be iOS but is Android
Description:
Android device pretending to be an iOS device.
502 - Device has known counterfeit identifier
Description:
Device has been blacklisted as a known counterfeit device.
503 - Device properties do not match any expected device profile
Description:
The measured properties do not match any reference device properties.
504 - Emulator Detected
Description:
Device identified as an emulator.
505 - Device properties match a known non-authentic profile
Description:
Device properties have been reviewed and deemed invalid.
506 - Desktop device with non-desktop properties (Deprecated)
Description:
The claimed headers do not match the profile of the device.
507 - Misalignment between device properties
Description:
Misalignment between the JavaScript properties and/or HTTP headers.
508 - Invalid TAC
Description:
The measured properties do not match any of the reference device property sets and the TAC is not a recognised TAC in the GSMA's global TAC list.

BOT (JS client only)

Automated traffic, either self-identifying as bot, or masquerading as different device but originating from server or desktop hardware. Could also encompass device emulators.

Result Code - Reason
601 - Bot (non-human traffic)
Description:
Device/UA has declared itself as a bot.
602 - User-agent is controlled by automation
Description:
Software automation detected.

Changes from the previous result reasons

On 1 October 2026 the reason text and, in a few cases, the resultCode returned within each classification changed. The top-level classifications (AUTHENTIC, INDETERMINATE, INCONSISTENT, NON-COMPLIANT, NON-AUTHENTIC, BOT) did not change.

If your integration branches on the numeric resultCode and the top-level result, most changes needed no action - but codes 206, 209 and 301 have been retired. If you match on the reason text, review the tables below, as several strings changed. We recommend branching on the numeric resultCode, which is stable, rather than the descriptive reason text.

Reworded reasons - same code, new text

Classification Code Previous reason New reason
INDETERMINATE 201 Masking proxy Masking Proxy Detected
INDETERMINATE 202 No reference device User-agent string contains no device identifiers
INDETERMINATE 203 No reference device Device Match not Found
INDETERMINATE 204 Insufficient measured data Device properties required for verification not available
INDETERMINATE 207 The browser used does not provide information identifying the model Browser masks the device identifying information
INCONSISTENT 302 Insufficient corroboration of its identity Device matched available data but insufficient sources for full verification
INCONSISTENT 303 HTTP headers and TAC are misaligned Browser and TAC reflect different devices
NON-AUTHENTIC 501 Android as iOS Device claiming to be iOS but is Android
NON-AUTHENTIC 502 Device blacklisted Device has known counterfeit identifier
NON-AUTHENTIC 503 Properties don't match any reference devices Device properties do not match any expected device profile
NON-AUTHENTIC 504 Emulator Emulator Detected
NON-AUTHENTIC 505 Matches profile of known non-standard devices Device properties match a known non-authentic profile

Codes 202 and 203 both previously returned "No reference device"; the new wording distinguishes the two situations.

Merged reason - codes 206 and 209 retired

The two "OS version has not yet been validated" reasons (Android 206 and iOS 209) have been combined into a single new code 212.

Previous New
Code 206 (Android) and 209 (iOS) 212
Reason OS version has not yet been validated Support for newly detected OS version under review

Split reason - code 301 retired

The single INCONSISTENT reason 301 has been replaced by six more specific reasons that name which identifier (TAC, User-Agent or Make-Model) did not match.

Situation New code New reason
User-Agent doesn't match, others do 305 User-Agent's expected hardware doesn't match device
TAC doesn't match, others do 306 TAC's expected hardware doesn't match device
Make-Model doesn't match, others do 307 Make-Model's expected hardware doesn't match device
Only TAC matched 308 User-Agent and Make-Model indicate a different device; Only TAC matched expected hardware
Only User-Agent matched 309 TAC and Make-Model indicate a different device; Only User-Agent matched expected hardware
Only Make-Model matched 310 TAC and User-Agent indicate a different device; Only Make-Model matched expected hardware

The web library uses two identifiers (TAC and User-Agent), so only 305 and 306 apply there; the Android library uses all three, so any of 305-310 can occur. Situations that previously returned 301 now return one of 305-310, or 302/303 where those better describe the result.


See Also