API playground
From raw signal to risk decision
Use the same request shape across web, mobile, and server flows. Payloads are encrypted end to end; this demo is canned and the API key is intentionally redacted.
01
POST /v1/fingerprint202 AcceptedX-API-KeyX-NonceX-Request-TimestampX-SignatureRSA-OAEP-256+AES-256-GCM
{ "session_id": "sess_demo_checkout_42", "status": "PENDING", "poll_url": "/v1/fingerprint/sessions/sess_demo_checkout_42", "retry_after": 1 }02
GET /v1/fingerprint/sessions/sess_demo_checkout_42{ "session_id": "sess_demo_checkout_42", "status": "COMPLETED", "created_at": "2026-09-11T10:12:00Z", "completed_at": "2026-09-11T10:12:01Z", "result": { "fingerprint_id": "fp_9f8e7d6c5b4a3210", "is_new_device": false, "device_risk_score": 15, "device_risk_level": "LOW", "behavioral_risk_score": 4, "final_risk_score": 15, "final_risk_level": "LOW", "recommendation": "ALLOW" }}
15LOWALLOW
Compliance
Building toward enterprise-grade trust
- Payloads are encrypted end to end
- Hosted in India, multi-region ready
- DPDP Act 2023 aligned
- SOC 2 Type II audit in progress
01 · POST /v1/fingerprintcurl -X POST \ https://api.devizescore.com/v1/fingerprint \ -H "Content-Type: application/json" \ -H "X-API-Key: dsek_..." \ -H "X-Nonce: 3f9c2a1e-7b4d-4c8e-9a1f-2d5e6f7a8b9c" \ -H "X-Request-Timestamp: 2026-09-11T10:12:00Z" \ -H "X-Signature: <hmac-sha256>" \ -d '{ "encryptedPayload": "...", "encryptedKey": "...", "iv": "...", "authTag": "...", "keyVersion": "v1", "algorithm": "RSA-OAEP-256+AES-256-GCM"}'
const submit = await fetch('https://api.devizescore.com/v1/fingerprint', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-API-Key': 'dsek_...', 'X-Nonce': '3f9c2a1e-7b4d-4c8e-9a1f-2d5e6f7a8b9c', 'X-Request-Timestamp': '2026-09-11T10:12:00Z', 'X-Signature': '<hmac-sha256>', }, body: JSON.stringify({ "encryptedPayload": "...", "encryptedKey": "...", "iv": "...", "authTag": "...", "keyVersion": "v1", "algorithm": "RSA-OAEP-256+AES-256-GCM" }),});const { session_id, poll_url, retry_after } = await submit.json(); // 202 Accepted
import requestssubmit = requests.post( "https://api.devizescore.com/v1/fingerprint", headers={ "Content-Type": "application/json", "X-API-Key": "dsek_...", "X-Nonce": "3f9c2a1e-7b4d-4c8e-9a1f-2d5e6f7a8b9c", "X-Request-Timestamp": "2026-09-11T10:12:00Z", "X-Signature": "<hmac-sha256>", }, json={ "encryptedPayload": "...", "encryptedKey": "...", "iv": "...", "authTag": "...", "keyVersion": "v1", "algorithm": "RSA-OAEP-256+AES-256-GCM" },)accepted = submit.json() # 202 Accepted
envelope := `{ "encryptedPayload": "...", "encryptedKey": "...", "iv": "...", "authTag": "...", "keyVersion": "v1", "algorithm": "RSA-OAEP-256+AES-256-GCM"}`req, _ := http.NewRequest("POST", "https://api.devizescore.com/v1/fingerprint", strings.NewReader(envelope))req.Header.Set("Content-Type", "application/json")req.Header.Set("X-API-Key", "dsek_...")req.Header.Set("X-Nonce", "3f9c2a1e-7b4d-4c8e-9a1f-2d5e6f7a8b9c")req.Header.Set("X-Request-Timestamp", "2026-09-11T10:12:00Z")req.Header.Set("X-Signature", "<hmac-sha256>")resp, _ := http.DefaultClient.Do(req) // 202 Accepted
202 Accepted
{ "session_id": "sess_demo_checkout_42", "status": "PENDING", "poll_url": "/v1/fingerprint/sessions/sess_demo_checkout_42", "retry_after": 1 }Sample 200 OK
- Risk level
- LOW
- Risk score
- 15
- Recommendation
- ALLOW
Trusted device, low risk
02 · GET /v1/fingerprint/sessions/sess_demo_checkout_42ALLOW{ "session_id": "sess_demo_checkout_42", "status": "COMPLETED", "created_at": "2026-09-11T10:12:00Z", "completed_at": "2026-09-11T10:12:01Z", "result": { "fingerprint_id": "fp_9f8e7d6c5b4a3210", "is_new_device": false, "device_risk_score": 15, "device_risk_level": "LOW", "behavioral_risk_score": 4, "final_risk_score": 15, "final_risk_level": "LOW", "recommendation": "ALLOW" }}
Payload before encryption
sess_demo_checkout_42App AttestIP addressTouch variance
"signals": { "platform": "android", "model": "Pixel 7", "os_version": "14", "ip_address": "203.0.113.42", "app_attest": "valid", "emulator": false, "vpn": false, "touch_variance": 0.87}
Sample data
Cross-PlatformOne API, every surface — native, hybrid, web, and server-side.
Android
iOS
Web
React Native
Flutter
Server
Ready to score your first device?
Get started with the DevizeScore API. Explore the documentation or talk to our team about your use case.