Vault data API: cloud backup, restore, recovery email
Vault - Hide Pics, App Lock (package com.netqin.ps, version 6.8.12.80) syncs hidden photos, private contacts, SMS and call logs through a first-party JSON command API. Sign-in (/v1/auth/session) returns an accessToken that later calls carry in userInfo; quota, backup (/v1/vault/backup) and restore (/v1/vault/restore) follow the same command envelope. Hidden-media bytes move through /v1/vault/media with action=download or action=upload, and a recovery address is bound at /v1/account/recovery-email.
Field names stay in the JSON: smsList, contactList, calllogList, bookmarksList, fileList (fileId, path, digest, size), plus quota/used and recovery-email deviceId/spaceId. Bodies are compressed JSON over OkHttp.
Vault - Hide Pics, App Lock (package com.netqin.ps, versionName 6.8.12.80) is Wafer Co.'s Android vault for hiding photos, locking apps, and keeping private contacts, SMS and call logs. Cloud backup talks to a first-party JSON command API: sign-in issues an accessToken, a quota call reports used/quota bytes, and backup/restore move smsList, contactList, calllogList, bookmarksList and fileList entries. Hidden media bytes transfer through a separate file endpoint with action=download|upload, and a recovery email is bound through a dedicated account call. Request bodies are compressed JSON over OkHttp.
Screenshots
API surface
Cloud account sign-in
POST
/v1/auth/sessionosintAuthenticates the Vault cloud account and returns accessToken plus storage quota/used counters used by every later backup call.
Auth: Vault password in the JSON body; the returned session token is reused on later cloud calls.
- command
- userInfo
- uid
- userName
- level
- password
- softwareInfo
- version
- os
- partner
- language
- status
- code
- message
- title
- content
- accessToken
- quota
- used
- step
- tag
Illustrative example reconstructed from the app's interface — not a live capture.
POST /v1/auth/session HTTP/1.1 Content-Type: application/json { "command": "login", "userInfo": { "uid": "10086001", "userName": "vault_user", "level": "1" }, "password": "<vault-password>", "softwareInfo": { "version": "6.8.12.80", "os": "android", "partner": "googleplay", "language": "en" } }{ "status": { "code": 0, "message": { "title": "OK", "content": "login success" } }, "userInfo": { "accessToken": "<access-token>", "quota": 1073741824, "used": 24883200, "step": 0, "tag": 1 } }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's cloud sign-in flowsession token and quota counters match what the backup screens consume
Cloud storage quota
POST
/v1/account/storageopendataReads the signed-in vault's cloud storage quota and used bytes before a backup or restore.
Auth: userInfo.accessToken from sign-in, plus uid/userName/level.
- command
- uid
- userName
- level
- accessToken
- version
- os
- partner
- language
- status
- code
- title
- content
- quota
- used
- step
- tag
Illustrative example reconstructed from the app's interface — not a live capture.
POST /v1/account/storage HTTP/1.1 Content-Type: application/json { "command": "quota", "userInfo": { "uid": "10086001", "userName": "vault_user", "level": "1", "accessToken": "<access-token>" }, "softwareInfo": { "version": "6.8.12.80", "os": "android", "partner": "googleplay", "language": "en" } }{ "status": { "code": 0, "message": { "title": "OK", "content": "" } }, "userInfo": { "accessToken": "<access-token>", "quota": 1073741824, "used": 24883200, "step": 0, "tag": 1 } }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the storage meter shown ahead of a cloud backup
Cloud backup of vault contents
POST
/v1/vault/backuposintUploads vault SMS, call logs, contacts, bookmarks and hidden-file metadata to the cloud; the file block returns a fileUrl used by the binary media transfer endpoint.
Auth: userInfo.accessToken from sign-in.
- command
- uid
- userName
- level
- accessToken
- smsList
- calllogList
- contactList
- bookmarksList
- fileList
- fileId
- path
- digest
- size
- currentPath
- meta
- contact_result
- smsResult
- calllogResult
- bookmarkResult
- fileResult
- fileUrl
- fileInfo
- uploadSize
Illustrative example reconstructed from the app's interface — not a live capture.
POST /v1/vault/backup HTTP/1.1 Content-Type: application/json { "command": "backup", "userInfo": { "uid": "10086001", "userName": "vault_user", "level": "1", "accessToken": "<access-token>" }, "softwareInfo": { "version": "6.8.12.80", "os": "android", "partner": "googleplay", "language": "en" }, "smsList": [], "calllogList": [], "contactList": [], "bookmarksList": [], "fileList": [ { "fileId": "img-001", "path": "/vault/hidden/IMG_1001.jpg", "digest": "d41d8cd98f00b204e9800998ecf8427e", "size": 248832, "currentPath": "/vault/hidden/IMG_1001.jpg", "meta": "10002" } ] }{ "status": { "code": 0, "message": { "title": "OK", "content": "" } }, "userInfo": { "accessToken": "<access-token>" }, "contact": { "result": 0 }, "sms": { "result": 0 }, "calllog": { "result": 0 }, "bookmarks": { "result": 0 }, "file": { "result": 0, "url": "/v1/vault/media", "fileInfo": [ { "fileId": "img-001", "path": "/vault/hidden/IMG_1001.jpg", "digest": "d41d8cd98f00b204e9800998ecf8427e", "size": 248832, "currentPath": "/vault/hidden/IMG_1001.jpg", "uploadSize": 0 } ] } }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's cloud backup progress flowfile metadata rows match the hidden-media sync payload
Cloud restore of vault contents
POST
/v1/vault/restoreosintAsks the cloud which vault slices to restore (contacts, SMS, call logs, bookmarks, files) and returns per-type result plus a fileUrl/fileInfo list for binary download.
Auth: userInfo.accessToken from sign-in.
- command
- uid
- userName
- level
- accessToken
- contact
- sms
- calllog
- bookmarks
- file
- fileList
- fileId
- path
- digest
- size
- meta
- fileUrl
- fileInfo
- mimeType
- fileResult
- calllogFileid
- bookmarkFileid
Illustrative example reconstructed from the app's interface — not a live capture.
POST /v1/vault/restore HTTP/1.1 Content-Type: application/json { "command": "restore", "userInfo": { "uid": "10086001", "userName": "vault_user", "level": "1", "accessToken": "<access-token>" }, "softwareInfo": { "version": "6.8.12.80", "os": "android", "partner": "googleplay", "language": "en" }, "contact": "true", "sms": "true", "calllog": "true", "bookmarks": "true", "file": "true", "fileList": [ { "fileId": "img-001", "path": "/vault/hidden/IMG_1001.jpg", "digest": "d41d8cd98f00b204e9800998ecf8427e", "size": 248832 } ] }{ "status": { "code": 0, "message": { "title": "OK", "content": "" } }, "userInfo": { "accessToken": "<access-token>" }, "contact": { "result": 0, "fileId": "contact-001" }, "sms": { "result": 0 }, "calllog": { "result": 0, "fileId": "calllog-001" }, "bookmarks": { "result": 0, "fileId": "bookmark-001" }, "file": { "result": 0, "url": "/v1/vault/media", "fileInfo": [ { "fileId": "img-001", "path": "/vault/hidden/IMG_1001.jpg", "digest": "d41d8cd98f00b204e9800998ecf8427e", "size": 248832, "mimeType": "image" } ] } }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's restore-onto-new-device flow
Download vault media
GET
/v1/vault/mediaopendataDownloads a previously backed-up vault photo or video by fileId, with optional byte-range resume.
Auth: accessToken query parameter from sign-in.
- action
- accessToken
- fileId
- range
- saveFilePath
- startPosition
- endPosition
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/vault/media?action=download&accessToken=<access-token>&fileId=img-001&range=bytes=0-248831 HTTP/1.1<binary octet-stream of the vault file; Range writes into saveFilePath from startPosition>Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's hidden-photo download flow with byte-range resume
Bind recovery email
POST
/v1/account/recovery-emailosintBinds a recovery (safe) email to the vault space so a forgotten lock can be reset from the password-recovery flow.
Auth: userInfo.uid and level; deviceId identifies the vault space.
- deviceId
- spaceId
- uid
- level
- version
- os
- partner
- language
- result
- userInfo
- softwareInfo
Illustrative example reconstructed from the app's interface — not a live capture.
POST /v1/account/recovery-email HTTP/1.1 Content-Type: application/json { "deviceId": "a1b2c3d4e5f6", "spaceId": "space-001", "email": "[email protected]", "userInfo": { "uid": "10086001", "level": "1" }, "softwareInfo": { "version": "6.8.12.80", "os": "android", "partner": "googleplay", "language": "en" } }{ "result": "ok", "spaceId": "space-001" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's recovery-email binding and forgot-password screens
Data categories
- cloud-backup
- contacts
- sms
- call-logs
- photos
- account-recovery
Where teams use this data
Device-migration services
Phone-switching tools move a user's contacts, SMS, call logs and vaulted photos between handsets through the cloud backup/restore round trip, with digests verifying nothing was lost.
Backup quota management
Reseller dashboards watch cloud storage quota versus usage per account, alerting or upselling before a customer's nightly backup starts failing silently.
Account-recovery flows
Support tooling binds a recovery email to the vault account, cutting lockout tickets when users change phones or forget their vault password.
Frequently asked questions
What data API does the Vault Android app use?
Cloud backup is a JSON command protocol: a sign-in call opens the session, and sibling calls handle quota, backup, restore and account maintenance under the same request envelope. Binary photo/video transfer runs through a separate media endpoint with action=download or action=upload. A recovery email is bound and queried through dedicated account calls.
How is the Vault cloud API authenticated?
Sign-in posts the vault password plus userInfo.uid/userName/level and returns userInfo.accessToken. Later cloud calls carry that token in userInfo; media download/upload pass it as an accessToken query parameter. Recovery-email calls send deviceId, spaceId and userInfo.uid/level instead of the token.
Which vault records does backup send?
The backup call serializes smsList, calllogList, contactList, bookmarksList and fileList. Each fileList row has fileId, path, digest, size, currentPath and optional meta. The response returns per-type result codes and a file URL plus fileInfo list used to push the actual bytes.
How does Vault recover a forgotten lock?
The settings flow posts deviceId, spaceId and an email address to bind a recovery address to the vault space. The password-recovery flow then queries that address (whether it is activated), sends a random code to it, and validates the code against the device to prove ownership.
Topics
- Vault Hide Pics API
- vault cloud backup endpoint
- accessToken vault sync
- smsList contactList fileList
- vault photo download API
- recovery email deviceId spaceId
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.