01 Platform keys
Base URL for every call: https://boltt-backend.rad0.dev/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
release_manager — permissions: device:unregister, ota:approve, warranty:adminadmin@boltt.comBoltt#Release2026Bitmisri DSP Operator
dsp_operator — permissions: device:unregisterops@bitmisri.comBitmisri#Ops2026Boltt Read-only Analyst
viewer — permissions: (none — use to demo DSP-112)viewer@boltt.comBoltt#View2026eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWRtaW4iLCJhZG1pbl9pZCI6IjhjZjM4NjE0LWM4MDktNDlmNi1iYzAxLWU0MTJjODljZGU2NiIsImVtYWlsIjoiYWRtaW5AYm9sdHQuY29tIiwicm9sZSI6InJlbGVhc2VfbWFuYWdlciIsInBlcm1pc3Npb25zIjpbImRldmljZTp1bnJlZ2lzdGVyIiwib3RhOmFwcHJvdmUiLCJ3YXJyYW50eTphZG1pbiJdLCJpYXQiOjE3ODEyNDY1NTAsImV4cCI6MTc4MTg1MTM1MH0.2ENdXNP5Frj5mLMXdOFtm_JCr9T5x8BdtLS1ZW6UILU03 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)455ff474-2c9a-49ed-987a-18e83946ca04356938030011051otp-req-uat0demoeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiZGV2aWNlIiwiZGV2aWNlX2lkIjoiNDU1ZmY0NzQtMmM5YS00OWVkLTk4N2EtMThlODM5NDZjYTA0IiwiaW1laTEiOiIzNTY5MzgwMzAwMTEwNTEiLCJtb2RlbF9jb2RlIjoiQk9MVFQtUEg1Ry0yMDI2IiwiZGV2aWNlX3R5cGUiOiJzbWFydHBob25lIiwiaWF0IjoxNzgxMjQ2NTUwLCJleHAiOjE3ODkwMjI1NTB9.8N19VWKwIL_kH_Y8zhi4SXdYNwuKS7oK4DrZ6X0znBADevice B — fully linked
customer +919999900000 linked, active warranty — use for: /device/profile, DSP-030 duplicate-warranty demo181f24ca-4aac-4d04-a2a6-55a8eac9a2e0aba413e6-0f6d-439a-8eb4-3ac3a9d3913ef43ccd39-f8e2-4409-917e-5260c642bc40eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiZGV2aWNlIiwiZGV2aWNlX2lkIjoiMTgxZjI0Y2EtNGFhYy00ZDA0LWEyYTYtNTVhOGVhYzlhMmUwIiwiaW1laTEiOiIzNTY5MzgwMzAwMTEwNzciLCJtb2RlbF9jb2RlIjoiQk9MVFQtUEg1Ry0yMDI2IiwiZGV2aWNlX3R5cGUiOiJzbWFydHBob25lIiwiaWF0IjoxNzgxMjQ2NTUwLCJleHAiOjE3ODkwMjI1NTB9.PfZB7tznpFx0YLnvMOKmQw-2Ca5HV49CCFjGwdcLY8UeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoidXNlciIsImN1c3RvbWVyX2lkIjoiYWJhNDEzZTYtMGY2ZC00MzlhLThlYjQtM2FjM2E5ZDM5MTNlIiwibW9iaWxlX251bWJlciI6Iis5MTk5OTk5MDAwMDAiLCJkZXZpY2VfaWQiOiIxODFmMjRjYS00YWFjLTRkMDQtYTJhNi01NWE4ZWFjOWEyZTAiLCJpYXQiOjE3ODEyNDY1NTAsImV4cCI6MTc4MzgzODU1MH0.00AjsWE1cjgtT4cEvM9vxhEXa7zqCDyZgz1tG_ehYAQDevice C — blacklisted
reported stolen — every call with this token returns DSP-071 DEVICE_BLACKLISTED (403)81f5af74-b89c-4de6-b466-7079aa63a307356938030011093eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiZGV2aWNlIiwiZGV2aWNlX2lkIjoiODFmNWFmNzQtYjg5Yy00ZGU2LWI0NjYtNzA3OWFhNjNhMzA3IiwiaW1laTEiOiIzNTY5MzgwMzAwMTEwOTMiLCJtb2RlbF9jb2RlIjoiQk9MVFQtU1Q0Ry0yMDI2IiwiZGV2aWNlX3R5cGUiOiJzbWFydHBob25lIiwiaWF0IjoxNzgxMjQ2NTUwLCJleHAiOjE3ODkwMjI1NTB9.RsQ3gUfnUxZtiOL9I21WSv8YX0TPGLkeSIe7sJxK02404 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 |
|---|---|---|
5e70ecc2-7810-4952-b8c1-44a880f016b3 | +919876543210 | Aarav Patel |
71c19148-471a-48ac-a67c-d3d20c01d1ad | +919876543217 | Vihaan Khan |
f6140089-d1bc-4ccc-ae3b-18baa080bc78 | +919876543224 | Ananya Singh |
e9015bd4-14cd-4e55-8c1f-95259322cd64 | +919876543231 | Diya Chopra |
e567ec81-2752-44c1-bf06-1cc260c0ee18 | +919876543238 | Ishaan Kulkarni |
4373b8ba-48e6-40ff-8699-ebdfe8725429 | +919876543245 | Kavya Patel |
4560e1e3-eceb-4149-b4a7-b25550133dbe | +919876543252 | Rohan Khan |
c106b3f2-4ba7-4406-926b-7de3b73ce639 | +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.