01 Platform keys
Base URL for every call: http://localhost:4100/dsp/v1
SDK API Key
header X-SDK-API-Key — used only by POST /device/activatesdk-test-key-uat-boltt-2024UAT OTP Bypass
accepted as otp_code for ANY pending OTP request (UAT only)123456+919999900000Auth model
JWT Bearer — three token types
device_token ← /device/activate (90 d)
user_token ← /user/verify-otp (30 d)
admin_token ← /auth/admin/login (8 h)
02 Admin accounts
POST /auth/admin/login with these to mint an admin_token (needed for /device/unregister).
Boltt Release Manager
owner — permissions: review:read, review:write, device:read, device:block, device:unregister, activation:read, warranty:read, warranty:admin, ota:read, ota:approve, telemetry:read, model:read, model:write, audit:read, rbac:manage, settings:writeadmin@boltt.comBoltt#Release2026Bitmisri DSP Operator
ops_admin — permissions: review:read, review:write, device:read, device:block, device:unregister, activation:read, warranty:read, warranty:admin, ota:read, ota:approve, telemetry:read, model:read, model:write, audit:read, settings:writeops@bitmisri.comBitmisri#Ops2026Boltt Read-only Analyst
viewer — permissions: review:read, device:read, activation:read, warranty:read, ota:read, telemetry:read, model:read, audit:readviewer@boltt.comBoltt#View2026eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWRtaW4iLCJhZG1pbl9pZCI6ImQ5ZmNmM2I5LTUzZDEtNDE2MC04ZTJlLWNmZjRkYTRlZGVlOSIsImVtYWlsIjoiYWRtaW5AYm9sdHQuY29tIiwicm9sZSI6Im93bmVyIiwicGVybWlzc2lvbnMiOlsicmV2aWV3OnJlYWQiLCJyZXZpZXc6d3JpdGUiLCJkZXZpY2U6cmVhZCIsImRldmljZTpibG9jayIsImRldmljZTp1bnJlZ2lzdGVyIiwiYWN0aXZhdGlvbjpyZWFkIiwid2FycmFudHk6cmVhZCIsIndhcnJhbnR5OmFkbWluIiwib3RhOnJlYWQiLCJvdGE6YXBwcm92ZSIsInRlbGVtZXRyeTpyZWFkIiwibW9kZWw6cmVhZCIsIm1vZGVsOndyaXRlIiwiYXVkaXQ6cmVhZCIsInJiYWM6bWFuYWdlIiwic2V0dGluZ3M6d3JpdGUiXSwiaWF0IjoxNzgxMzc3NjQzLCJleHAiOjE3ODE5ODI0NDN9.ON0i1LSgXf2hUmlilnjBUC3svJghoWbYWBVfo7NF47w03 Ready-to-use test devices
Three hero devices cover every flow. Tokens are live JWTs signed by this backend.
Device A — fresh & unlinked
use for: OTP flow → user_token → warranty → OTA check (fw 1.2.0 → update to 1.3.0 available)f61a3e7c-e072-40f8-9089-c183c6ce245c356938030011051otp-req-uat0demoeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiZGV2aWNlIiwiZGV2aWNlX2lkIjoiZjYxYTNlN2MtZTA3Mi00MGY4LTkwODktYzE4M2M2Y2UyNDVjIiwiaW1laTEiOiIzNTY5MzgwMzAwMTEwNTEiLCJtb2RlbF9jb2RlIjoiQk9MVFQtUEg1Ry0yMDI2IiwiZGV2aWNlX3R5cGUiOiJzbWFydHBob25lIiwiaWF0IjoxNzgxMzc3NjQzLCJleHAiOjE3ODkxNTM2NDN9.es2ZlTMScma3i8pKy5cs4n5lYqI4_VAvHiDAdixDdksDevice B — fully linked
customer +919999900000 linked, active warranty — use for: /device/profile, DSP-030 duplicate-warranty demo08a4c197-b237-47c3-badb-c3c6e7977c604a23a060-73fa-40e9-a45a-6b3e84fe85d07e7bad62-335b-47d1-8bb9-8e20d1a53e1eeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiZGV2aWNlIiwiZGV2aWNlX2lkIjoiMDhhNGMxOTctYjIzNy00N2MzLWJhZGItYzNjNmU3OTc3YzYwIiwiaW1laTEiOiIzNTY5MzgwMzAwMTEwNzciLCJtb2RlbF9jb2RlIjoiQk9MVFQtUEg1Ry0yMDI2IiwiZGV2aWNlX3R5cGUiOiJzbWFydHBob25lIiwiaWF0IjoxNzgxMzc3NjQzLCJleHAiOjE3ODkxNTM2NDN9.BRQXgyENFcPQh6t5tOD1leioVkTSUAwpQZRwJQJuan4eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoidXNlciIsImN1c3RvbWVyX2lkIjoiNGEyM2EwNjAtNzNmYS00MGU5LWE0NWEtNmIzZTg0ZmU4NWQwIiwibW9iaWxlX251bWJlciI6Iis5MTk5OTk5MDAwMDAiLCJkZXZpY2VfaWQiOiIwOGE0YzE5Ny1iMjM3LTQ3YzMtYmFkYi1jM2M2ZTc5NzdjNjAiLCJpYXQiOjE3ODEzNzc2NDMsImV4cCI6MTc4Mzk2OTY0M30.mbLyJVMLRFVv79g56tR9kImKZUrerDxG9wSmo5DA7lsDevice C — blacklisted
reported stolen — every call with this token returns DSP-071 DEVICE_BLACKLISTED (403)975a60d5-86e4-4830-9e2f-9a29af8e6536356938030011093eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiZGV2aWNlIiwiZGV2aWNlX2lkIjoiOTc1YTYwZDUtODZlNC00ODMwLTllMmYtOWEyOWFmOGU2NTM2IiwiaW1laTEiOiIzNTY5MzgwMzAwMTEwOTMiLCJtb2RlbF9jb2RlIjoiQk9MVFQtU1Q0Ry0yMDI2IiwiZGV2aWNlX3R5cGUiOiJzbWFydHBob25lIiwiaWF0IjoxNzgxMzc3NjQzLCJleHAiOjE3ODkxNTM2NDN9.h-ewI5V9GasHSQWT4EZxotKL9DrmVOPZM1bvte3mhNg04 Fresh IMEIs for live activation
Unregistered, Luhn-valid IMEIs — activate them yourself via POST /device/activate (model codes in §06). Each allows 3 attempts per 24 h.
| # | IMEI (click to copy) | Suggested model_code |
|---|---|---|
| 1 | 356938030011101 | BOLTT-PH5G-2026 |
| 2 | 356938030011119 | BOLTT-ST4G-2026 |
| 3 | 356938030011127 | BOLTT-BL5G-2026 |
| 4 | 356938030011135 | BOLTT-TB10-2026 |
| 5 | 356938030011143 | BOLTT-PH5G-2026 |
| 6 | 356938030011150 | BOLTT-ST4G-2026 |
05 OTA release catalogue
Seeded firmware releases. Only approved / rolling_out / completed releases are offered by /ota/check-update.
| update_id | Model | Target fw | Min fw | Type | Status | Rollout |
|---|---|---|---|---|---|---|
ota-upd-20260601-001 | BOLTT-PH5G-2026 | 1.2.0 | 1.0.0 | full | completed | 100% |
ota-upd-20260602-002 | BOLTT-PH5G-2026 | 1.3.0 | 1.1.0 | delta | rolling_out | 50% |
ota-upd-20260603-003 | BOLTT-PH5G-2026 | 1.4.0 | 1.3.0 | delta | pending_approval | 0% |
ota-upd-20260604-004 | BOLTT-ST4G-2026 | 1.2.0 | 1.0.0 | delta | rolling_out | 25% |
ota-upd-20260605-005 | BOLTT-BL5G-2026 | 2.1.0 | 2.0.0 | full | completed | 100% |
ota-upd-20260606-006 | BOLTT-TB10-2026 | 1.1.0 | 1.0.0 | delta | approved | 5% |
06 Reference data
Allowed models
| model_code | Name | Warranty |
|---|---|---|
BOLTT-PH5G-2026 | Boltt Phantom 5G | 12 mo |
BOLTT-ST4G-2026 | Boltt Storm 4G | 12 mo |
BOLTT-BL5G-2026 | Boltt Blaze 5G Pro | 18 mo |
BOLTT-TB10-2026 | Boltt Tab X10 | 12 mo |
Retailer Master (for warranty/register)
| retailer_code | Name |
|---|---|
RET-MH-001 | Boltt Flagship Store Mumbai, Mumbai |
RET-MH-002 | Croma Andheri West, Mumbai |
RET-DL-001 | Boltt Experience Centre CP, New Delhi |
RET-KA-001 | Reliance Digital Indiranagar, Bengaluru |
RET-KA-002 | Boltt Partner Store Koramangala, Bengaluru |
RET-TN-001 | Poorvika Mobiles T Nagar, Chennai |
Sample verified customers
| customer_id | Mobile | Name |
|---|---|---|
9df8aa8f-9bc0-40a6-a4c1-1886f565968d | +919876543210 | Aarav Patel |
691a6433-9c19-4711-a169-1d7d4b9f11d9 | +919876543217 | Vihaan Khan |
78118047-46f9-4f9e-82e1-e8daf66a800e | +919876543224 | Ananya Singh |
b35b9edc-a638-49b0-ab5d-3ec0c4e92483 | +919876543231 | Diya Chopra |
6d8d240c-9a37-45ef-80eb-6e4db949e639 | +919876543238 | Ishaan Kulkarni |
204a5f50-d1e6-41e1-81a4-885d4ec7a8b9 | +919876543245 | Kavya Patel |
0875aae4-33e1-4a71-a222-934531a1f188 | +919876543252 | Rohan Khan |
ffd3635a-5e40-497f-9ef4-4992fe1997b9 | +919876543259 | Priya Singh |
07 5-minute browser walkthrough
Open the API Playground, then:
POST /device/activate — set header X-SDK-API-Key (§01), body with a fresh IMEI from §04. You get a device_token. Repeat the same IMEI to see DSP-001 (409).
Click the playground's Auth section, paste the device_token as Bearer.
POST /user/request-otp with any +91 mobile, then POST /user/verify-otp with otp_code: 123456 and the returned request_id. You get a user_token. (Device A's pre-issued request_id works too.)
Switch Bearer to the user_token; POST /warranty/register with purchase_date within the last 90 days and retailer RET-MH-001. Run it twice for DSP-030.
Back on the device_token: POST /ota/check-update with current_fw_version: "1.2.0", model BOLTT-PH5G-2026 → update 1.3.0 offered. Then POST /ota/report-status with status: "success". Try battery_level: 15 for the BATTERY_TOO_LOW branch.
POST /device/telemetry (try battery_level: 150 for detailed validation errors), /device/heartbeat, /device/crash-report.
Login via /auth/admin/login (§02) or use the pre-minted token; POST /device/unregister with reason customer_resale. Try the viewer account to see DSP-112. Use Device C's token anywhere for DSP-071.