Genius Scan Data API: Cloud documents, pages and account fields
Genius Scan is The Grizzly Labs' camera-to-PDF scanner with Genius Cloud sync. After POST /v1/accounts/login the client lists vault documents at GET /v1/vault/items (cursor query usn), hydrates page files, and mints short-lived object-storage access at GET /v1/storage/tokens.
Genius Scan is The Grizzly Labs' camera-to-PDF scanner with a first-party Genius Cloud vault. After email/password signup or login the client receives a Bearer token plus the user's uid and email, then incrementally syncs documents (uid, name, tags, pages, usn, document_type, parent) and page files (type, md5, version, format). Short-lived object-storage session credentials (access_key_id, secret_access_key, session_token, expiration) let the app upload and fetch page JPEGs keyed per page uid and file type. Account calls read and update the login email, and a password-confirmed delete closes the user. OCR runs on-device; the valuable network surface is this document sync, identity, and storage-credential handshake.
Screenshots
API surface
Sign up for a Genius Cloud session
POST
/v1/accounts/registeropendataCreates a Genius Cloud account and returns the signed-in user (uid, email) plus the Bearer token used for document sync and account calls.
Auth: None. Body carries email and password. The response token is sent as an Authorization: Bearer header on later Genius Cloud calls.
- password
- user
- uid
- token
Illustrative example reconstructed from the app's interface — not a live capture.
POST /v1/accounts/register HTTP/1.1 Content-Type: application/json { "email": "[email protected]", "password": "hunter2-example" }{ "user": { "uid": "usr_8f3c1d2e7a9b", "email": "[email protected]" }, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's cloud account sign-up flowfield set mirrors the registration form (email, password) and the session it returns
Log in to Genius Cloud
POST
/v1/accounts/loginopendataAuthenticates an existing Genius Cloud account and returns the user object plus Bearer token that the sync client attaches to later calls.
Auth: None. Body carries email and password. The response token is sent as an Authorization: Bearer header on later calls.
- password
- user
- uid
- token
Illustrative example reconstructed from the app's interface — not a live capture.
POST /v1/accounts/login HTTP/1.1 Content-Type: application/json { "email": "[email protected]", "password": "hunter2-example" }{ "user": { "uid": "usr_8f3c1d2e7a9b", "email": "[email protected]" }, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's cloud sign-in screen
Reconnect session by user uid
POST
/v1/accounts/reconnectopendataRe-opens a Genius Cloud session when the client already knows the account uid, returning a fresh Bearer token and user object.
Auth: None. Body carries uid and password rather than email. The response token is sent as an Authorization: Bearer header on later calls.
- uid
- password
- user
- token
Illustrative example reconstructed from the app's interface — not a live capture.
POST /v1/accounts/reconnect HTTP/1.1 Content-Type: application/json { "uid": "usr_8f3c1d2e7a9b", "password": "hunter2-example" }{ "user": { "uid": "usr_8f3c1d2e7a9b", "email": "[email protected]" }, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the session-restore path used when the install already knows the account id
Update session device token
PUT
/v1/accounts/sessionopendataRegisters the device_token on the open Genius Cloud session so sync and account notifications can target this install.
Auth: Authorization: Bearer token from POST /v1/accounts/login.
- device_token
- user
- uid
- token
Illustrative example reconstructed from the app's interface — not a live capture.
PUT /v1/accounts/session HTTP/1.1 Authorization: Bearer <token> Content-Type: application/json { "device_token": "fcm-device-token-example" }{ "user": { "uid": "usr_8f3c1d2e7a9b", "email": "[email protected]" }, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the push-notification registration step after sign-in
List cloud documents since USN
GET
/v1/vault/itemsopendataIncrementally syncs the Genius Cloud vault: items changed after the query usn, including page files and a remaining-count flag so the client knows whether another pull is needed.
Auth: Authorization: Bearer token from POST /v1/accounts/login.
- usn
- remaining-count
- uid
- name
- tags
- pages
- created_at
- updated_at
- deleted_at
- document_type
- parent
- order
- format
- quadrangle
- post_processing_type
- distortion_correction_enabled
- files
- type
- md5
- version
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/vault/items?usn=1842&remaining-count=true HTTP/1.1 Authorization: Bearer <token>[ { "uid": "doc_a1b2c3d4", "name": "Passport scan", "tags": ["id", "travel"], "pages": [{ "uid": "page_9f0e", "order": 0, "format": "jpeg", "quadrangle": "0,0,1,0,1,1,0,1", "post_processing_type": "color", "distortion_correction_enabled": true, "files": [{ "type": "original", "md5": "d41d8cd98f00b204e9800998ecf8427e", "version": "1", "format": "jpeg" }], "created_at": "2026-09-20T14:02:11Z", "updated_at": "2026-09-20T14:02:18Z" }], "created_at": "2026-09-20T14:02:11Z", "updated_at": "2026-09-20T14:02:18Z", "deleted_at": null, "usn": 1843, "document_type": "document", "parent": null } ]Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the document-list sync that powers the app's library viewfield set mirrors the vault document cards and their page descriptors
Fetch one cloud document
GET
/v1/vault/items/{itemId}opendataHydrates a single Genius Cloud vault item (document or folder) by id, including nested pages and the original page-file blobs the scanner stores in object storage.
Auth: Authorization: Bearer token from POST /v1/accounts/login.
- itemId
- uid
- name
- tags
- pages
- created_at
- updated_at
- deleted_at
- usn
- document_type
- parent
- files
- type
- md5
- format
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/vault/items/doc_a1b2c3d4 HTTP/1.1 Authorization: Bearer <token>{ "uid": "doc_a1b2c3d4", "name": "Passport scan", "tags": ["id", "travel"], "pages": [{ "uid": "page_9f0e", "order": 0, "format": "jpeg", "quadrangle": "0,0,1,0,1,1,0,1", "post_processing_type": "color", "distortion_correction_enabled": true, "files": [{ "type": "original", "md5": "d41d8cd98f00b204e9800998ecf8427e", "version": "1", "format": "jpeg" }], "created_at": "2026-09-20T14:02:11Z", "updated_at": "2026-09-20T14:02:18Z" }], "created_at": "2026-09-20T14:02:11Z", "updated_at": "2026-09-20T14:02:18Z", "deleted_at": null, "usn": 1843, "document_type": "document", "parent": null }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the document-detail screen and its page-file manifest
Update a cloud document
PUT
/v1/vault/items/{itemId}opendataWrites document metadata and page descriptors (name, tags, parent folder, page files) back to Genius Cloud and returns the updated item with a new usn.
Auth: Authorization: Bearer token from POST /v1/accounts/login.
- itemId
- uid
- name
- tags
- pages
- usn
- document_type
- parent
- created_at
- updated_at
- deleted_at
Illustrative example reconstructed from the app's interface — not a live capture.
PUT /v1/vault/items/doc_a1b2c3d4 HTTP/1.1 Authorization: Bearer <token> Content-Type: application/json { "uid": "doc_a1b2c3d4", "name": "Passport scan (front)", "tags": ["id", "kyc"], "pages": [{ "uid": "page_9f0e", "order": 0, "format": "jpeg", "quadrangle": "0,0,1,0,1,1,0,1", "post_processing_type": "color", "distortion_correction_enabled": true, "files": [{ "type": "original", "md5": "d41d8cd98f00b204e9800998ecf8427e", "version": "1", "format": "jpeg" }], "created_at": "2026-09-20T14:02:11Z", "updated_at": "2026-09-27T10:15:00Z" }], "created_at": "2026-09-20T14:02:11Z", "updated_at": "2026-09-27T10:15:00Z", "deleted_at": null, "usn": 1843, "document_type": "document", "parent": null }{ "uid": "doc_a1b2c3d4", "name": "Passport scan (front)", "tags": ["id", "kyc"], "pages": [{ "uid": "page_9f0e", "order": 0, "format": "jpeg", "quadrangle": "0,0,1,0,1,1,0,1", "post_processing_type": "color", "distortion_correction_enabled": true, "files": [{ "type": "original", "md5": "d41d8cd98f00b204e9800998ecf8427e", "version": "1", "format": "jpeg" }], "created_at": "2026-09-20T14:02:11Z", "updated_at": "2026-09-27T10:15:00Z" }], "created_at": "2026-09-20T14:02:11Z", "updated_at": "2026-09-27T10:15:00Z", "deleted_at": null, "usn": 1901, "document_type": "document", "parent": null }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the rename, tag and move actions in the document editor
Delete a cloud document
DELETE
/v1/vault/items/{itemId}opendataRemoves a Genius Cloud vault item. Query permanently=false soft-deletes (deleted_at set); permanently=true purges the vault entry.
Auth: Authorization: Bearer token from POST /v1/accounts/login.
- itemId
- permanently
- deleted_at
- uid
Illustrative example reconstructed from the app's interface — not a live capture.
DELETE /v1/vault/items/doc_a1b2c3d4?permanently=false HTTP/1.1 Authorization: Bearer <token>Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the document trash flow with soft- and hard-delete options
Refresh object-storage credentials for page images
GET
/v1/storage/tokensopendataMints short-lived object-storage session credentials so the scanner can upload and download page image objects keyed per page uid and file type (default jpeg; the original file type is mandatory).
Auth: Authorization: Bearer token from POST /v1/accounts/login.
- access_key_id
- secret_access_key
- session_token
- expiration
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/storage/tokens HTTP/1.1 Authorization: Bearer <token>{ "access_key_id": "ASIAEXAMPLEKEYID", "secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "session_token": "FwoGZXIvYXdzEJr//////////wEaEXAMPLE", "expiration": "2026-09-27T13:05:00Z" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the handoff that lets the app move page images to and from object storage
Fetch Genius Cloud user
GET
/v1/accounts/profileosintReturns the signed-in Genius Cloud identity: uid and email used by the account screen.
Auth: Authorization: Bearer token from POST /v1/accounts/login.
- uid
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/accounts/profile HTTP/1.1 Authorization: Bearer <token>{ "uid": "usr_8f3c1d2e7a9b", "email": "[email protected]" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the account screen that shows the signed-in identity
Update user email
PUT
/v1/accounts/profileopendataChanges the Genius Cloud login email after confirming current_password and returns the updated user object.
Auth: Authorization: Bearer token from POST /v1/accounts/login. Body requires current_password.
- current_password
- uid
Illustrative example reconstructed from the app's interface — not a live capture.
PUT /v1/accounts/profile HTTP/1.1 Authorization: Bearer <token> Content-Type: application/json { "email": "[email protected]", "current_password": "hunter2-example" }{ "uid": "usr_8f3c1d2e7a9b", "email": "[email protected]" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the change-email form with password confirmation
Delete Genius Cloud user
DELETE
/v1/accounts/profileopendataPermanently closes the Genius Cloud account after the user confirms their password; used by the account-deletion flow.
Auth: Authorization: Bearer token from POST /v1/accounts/login. The DELETE body carries the account password.
- password
- uid
Illustrative example reconstructed from the app's interface — not a live capture.
DELETE /v1/accounts/profile HTTP/1.1 Authorization: Bearer <token> Content-Type: application/json { "password": "hunter2-example" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the close-account flow with password confirmation
Refresh Genius Scan SDK license key
GET
/v1/licensing/keys/{keyId}opendataRefreshes the on-device scanning license. The query identifies the install; the response key and expiration_date gate capture features.
Auth: None. Device and SDK identity travel as query params: device_id, sdk_version, framework, os, os_version, optional app_version, integration_mode and key_refresh.
- keyId
- device_id
- sdk_version
- framework
- os
- os_version
- app_version
- integration_mode
- key_refresh
- key
- expiration_date
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/licensing/keys/GS-BASE-LICENSE-KEY?device_id=3a7c9e12f04b8d11&sdk_version=5.12.0&framework=android&os=android&os_version=14&app_version=7.43.0&integration_mode=app&key_refresh=1 HTTP/1.1{ "key": "GS-REFRESHED-LICENSE-KEY", "expiration_date": "2027-03-01T00:00:00Z" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the scanner license refresh the app performs on capable devices
Data categories
- documents
- pages
- account
- sessions
- credentials
- identity
Where teams use this data
KYC packet archive from scanned IDs
An onboarding desk pulls Genius Cloud documents tagged as identity scans, walks nested pages and original jpeg files, and stores uid, name, tags and usn so a case file can be rebuilt without re-photographing the passport or ID card.
Incremental document vault backup
A records job pages the document list with the usn cursor and remaining-count flag, then uses the minted access_key_id, secret_access_key, session_token and expiration to copy page blobs keyed as pageUid-fileType.format into a long-term archive.
Account lifecycle and erasure
A privacy workflow reads uid and email from the signed-in user, can rotate email with current_password, and issues a password-confirmed account delete when the customer asks to leave Genius Cloud.
Scanner license health for capture fleets
Ops monitors SDK license refreshes per device_id and app_version so expiration_date is visible before capture, distortion correction and PDF export stop working on a field device.
Frequently asked questions
How does Genius Scan authenticate cloud sync?
Signup and login post email and password to /v1/accounts/register and /v1/accounts/login. The response token is sent as an Authorization: Bearer header on later vault, storage-token and profile calls. A reconnect variant posts the account uid plus password to /v1/accounts/reconnect.
What fields describe a synced Genius Scan document?
Each vault item has uid, name, tags, pages, usn, document_type (document or folder), parent, created_at, updated_at and deleted_at. Pages add order, format, quadrangle, post_processing_type, distortion_correction_enabled and files (type, md5, version, format).
Where are scanned page images stored?
GET /v1/storage/tokens returns access_key_id, secret_access_key, session_token and expiration. Page image objects are keyed per page uid and file type; the original is the mandatory file type and jpeg is the default format.
Does Genius Scan send scans to a cloud OCR API?
No. Optical character recognition runs on the device. The network data surface is cloud document sync, the user account at /v1/accounts/profile, short-lived storage tokens for page blobs, and a scanner license refresh at /v1/licensing/keys/{keyId}.
Topics
- genius scan api
- genius cloud sync
- genius scan pdf scanner data api
- genius scan bearer token
- genius scan storage tokens
- genius scan usn sync
- genius scan account uid email
- the grizzly labs scanner api
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.