ID of the user
Device keys
Device keys are used to cryptographically bind devices to a user for strong device identification. This allows the device to act as a user-identifying factor, and allows elevating trust for known devices.
These APIs are used to manage and verify bound devices for a user and application. The device may correspond to either a browser (for web apps) or a mobile device (for mobile apps).
Device binding relies on a cryptographic key-pair generated by the device. The private key is securely stored on the device (typically protected by biometrics or a PIN), while the public key is stored by Transmit for a given user. When needed, the device uses the private key to sign a challenge that Transmit verifies using the public key.
Note: This feature requires the client to implement the relevant cryptography APIs exposed by the browser or mobile platform (Android or iOS).
Request
Registers a device key in the platform for a specific user and app. Device keys are generated by the client using the relevant cryptography APIs exposed by the browser or mobile platform (Android or iOS). Once registered, the device key cryptographically binds the device to the given user for secure device identification.
Note: The key should be generated using the RSA-PSS algorithm and SHA-256 hash.
Required permissions: apps:create, [appId]:create, devices:create.
Custom data stored for this device, such as tags or device data obtained using other tools
- Sandbox environmenthttps://api.sbx.transmitsecurity.io/cis/v1/users/{user_id}/device-keys
- Production environment (US)https://api.transmitsecurity.io/cis/v1/users/{user_id}/device-keys
- Production environment (EU)https://api.eu.transmitsecurity.io/cis/v1/users/{user_id}/device-keys
- Production environment (CA)https://api.ca.transmitsecurity.io/cis/v1/users/{user_id}/device-keys
- Production environment (AU)https://api.au.transmitsecurity.io/cis/v1/users/{user_id}/device-keys
- cURL
- Node.js
- Go
- JavaScript
- Java
- Python
curl -i -X POST \
'https://api.sbx.transmitsecurity.io/cis/v1/users/{user_id}/device-keys' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"key_id": "string",
"display_name": "string",
"custom_data": {},
"push_config": {
"device_token": "stringstringstringstringstringst",
"type": "FCM",
"bundle_id": "string"
},
"public_key": "string"
}'- Sandbox environmenthttps://api.sbx.transmitsecurity.io/cis/v1/users/{user_id}/device-keys
- Production environment (US)https://api.transmitsecurity.io/cis/v1/users/{user_id}/device-keys
- Production environment (EU)https://api.eu.transmitsecurity.io/cis/v1/users/{user_id}/device-keys
- Production environment (CA)https://api.ca.transmitsecurity.io/cis/v1/users/{user_id}/device-keys
- Production environment (AU)https://api.au.transmitsecurity.io/cis/v1/users/{user_id}/device-keys
- cURL
- Node.js
- Go
- JavaScript
- Java
- Python
curl -i -X GET \
'https://api.sbx.transmitsecurity.io/cis/v1/users/{user_id}/device-keys' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "result": [ { … } ] }
- Sandbox environmenthttps://api.sbx.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}
- Production environment (US)https://api.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}
- Production environment (EU)https://api.eu.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}
- Production environment (CA)https://api.ca.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}
- Production environment (AU)https://api.au.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}
- cURL
- Node.js
- Go
- JavaScript
- Java
- Python
curl -i -X GET \
'https://api.sbx.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "result": { "status": "Active", "display_name": "string", "custom_data": {}, "push_config": { … }, "key_id": "string", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } }
Custom data stored for this device, such as tags or device data obtained using other tools
- Sandbox environmenthttps://api.sbx.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}
- Production environment (US)https://api.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}
- Production environment (EU)https://api.eu.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}
- Production environment (CA)https://api.ca.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}
- Production environment (AU)https://api.au.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}
- cURL
- Node.js
- Go
- JavaScript
- Java
- Python
curl -i -X PUT \
'https://api.sbx.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"display_name": "string",
"custom_data": {},
"push_config": {
"device_token": "stringstringstringstringstringst",
"type": "FCM",
"bundle_id": "string"
}
}'- Sandbox environmenthttps://api.sbx.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}
- Production environment (US)https://api.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}
- Production environment (EU)https://api.eu.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}
- Production environment (CA)https://api.ca.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}
- Production environment (AU)https://api.au.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}
- cURL
- Node.js
- Go
- JavaScript
- Java
- Python
curl -i -X DELETE \
'https://api.sbx.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'Request
Verifies that the user's device is in their possession. Before calling this API, the device signs a challenge using the private key stored by the device. This API is used to verify the signed challenge using the device public key. In case the device is blocked, this validation will fail.
Note: The challenge should be generated by your client backend..
Required permissions: apps:execute, [appId]:execute, devices:execute.
- Sandbox environmenthttps://api.sbx.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/validate
- Production environment (US)https://api.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/validate
- Production environment (EU)https://api.eu.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/validate
- Production environment (CA)https://api.ca.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/validate
- Production environment (AU)https://api.au.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/validate
- cURL
- Node.js
- Go
- JavaScript
- Java
- Python
curl -i -X POST \
'https://api.sbx.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/validate' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"challenge": "string",
"signature": "string"
}'{ "result": true }
- Sandbox environmenthttps://api.sbx.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/block
- Production environment (US)https://api.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/block
- Production environment (EU)https://api.eu.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/block
- Production environment (CA)https://api.ca.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/block
- Production environment (AU)https://api.au.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/block
- cURL
- Node.js
- Go
- JavaScript
- Java
- Python
curl -i -X PUT \
'https://api.sbx.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/block' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'- Sandbox environmenthttps://api.sbx.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/unblock
- Production environment (US)https://api.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/unblock
- Production environment (EU)https://api.eu.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/unblock
- Production environment (CA)https://api.ca.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/unblock
- Production environment (AU)https://api.au.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/unblock
- cURL
- Node.js
- Go
- JavaScript
- Java
- Python
curl -i -X PUT \
'https://api.sbx.transmitsecurity.io/cis/v1/users/{user_id}/device-keys/{key_id}/unblock' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'