Vault - Hide Pics, App Lock icon

Vault data API: cloud backup, restore, recovery email

Wafer Co. · Identity

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

  • Vault - Hide Pics, App Lock screenshot 1
  • Vault - Hide Pics, App Lock screenshot 2
  • Vault - Hide Pics, App Lock screenshot 3
  • Vault - Hide Pics, App Lock screenshot 4
  • Vault - Hide Pics, App Lock screenshot 5

API surface

  • Cloud account sign-in

    POST /v1/auth/session osint

    Authenticates 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 flow
    • session token and quota counters match what the backup screens consume
  • Cloud storage quota

    POST /v1/account/storage opendata

    Reads 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/backup osint

    Uploads 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 flow
    • file metadata rows match the hidden-media sync payload
  • Cloud restore of vault contents

    POST /v1/vault/restore osint

    Asks 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/media opendata

    Downloads 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-email osint

    Binds 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
    • email
    • 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.

Get a quote