API playground

Score a device in three calls

Your backend mints a short-lived context token, the device submits an encrypted payload with it, and your backend reads the assessment.

  1. 01
    Mint a context tokenYour server signs a short-lived token for this session with your secret key.Your backendHS256 JWT
  2. 02
    Submit the encrypted payloadThe device sends its encrypted signals with the token and gets an assessment ID back.POST/v1/assessments
  3. 03
    Read the assessmentYour server reads the risk level, score and recommendation for that ID.GET/v1/assessments/{id}

Try the API

Pick a language and see the request your device sends and the response your backend reads.

01 · POST /v1/assessments
curl -X POST \  https://api.devizescore.com/v1/assessments \  -H "Content-Type: application/json" \  -H "X-Context-Token: <context-token>" \  -d '{  "encryptedPayload": "...",  "encryptedKey": "...",  "iv": "...",  "authTag": "...",  "keyVersion": "v2026-10",  "algorithm": "RSA-OAEP-256+AES-256-GCM+AAD1"}'
202 Accepted{ "assessment_id": "asm_k7r2m9p4x8c1v6b3n5q0w2e4t7y", "status": "PENDING", "token_id": "q4Hn2vX8sK1pL6mR9tY3wA" }
Payload before encryptionq4Hn2vX8sK1pL6mR9tY3wA
PlatformModelIP address
"signals": {  "platform": "android",  "model": "Pixel 7",  "os_version": "14",  "ip_address": "203.0.113.42",  "network_type": "wifi",  "risk_hints": {    "is_emulator": false,    "is_vpn": false  }}
Sample 200 OK
Risk level
LOW
Risk score
15
Recommendation
ALLOW

Trusted device, low risk

02 · GET /v1/assessments/asm_k7r2m9p4x8c1v6b3n5q0w2e4t7yALLOW
{  "assessment_id": "asm_k7r2m9p4x8c1v6b3n5q0w2e4t7y",  "status": "COMPLETED",  "created_at": "2026-10-14T09:12:03.120Z",  "completed_at": "2026-10-14T09:12:03.151Z",  "token_id": "q4Hn2vX8sK1pL6mR9tY3wA",  "token_conflict": false,  "result": {    "device_id": "dev_m3x9k2p7r4c8v1b6n0q5w2e4ty",    "is_new_device": false,    "recommendation": "ALLOW",    "overall_risk_score": 15,    "overall_risk_level": "LOW",    "device_risk_score": 15,    "behavioral_risk_score": 4,    "reason_codes": []  }}

Sample responses. Keys and tokens are redacted.Security and compliance

One API for every surface

The Android, Web and React Native SDKs ship today. iOS and Flutter are coming.

Android
iOSComing
Web
React Native
FlutterComing
Server
Persistent device identityDevice IDdevice_idNew deviceis_new_device
Behavioral biometricsPointer eventspointer_eventsAccelerometer intervalsaccel_intervalsGyroscope intervalsgyro_intervalsKey presseskey_press_events
Platform attestationPlay Integrity tokenplay_integrity_tokenApp Attest assertionapp_attest_assertionDeviceCheck tokendevice_check_token
Device farm detectionEmulatoris_emulatorReason codesreason_codes
Configurable enforcementBlock thresholdhard_block_thresholdStep-up thresholdstep_up_threshold
Cross-platform coveragePlatformplatformSDK versionsdk_versionUser agentuser_agent
Fraud-ring clusteringReason codesreason_codesRecommendationrecommendation
Audit-ready decision contextRisk leveloverall_risk_levelReason codesreason_codesRecommendationrecommendation

Ready to score your first device?

Get started with the DevizeScore API. Explore the documentation or talk to our team about your use case.