Basic Information
Endpoint
https://api.nubosoftware.com/api/
Home
This API is designed to automate administrator operations of the Nubo system.
This is a REST based API which returns output in JSON format.
For your convenience, we can receive input parameters using three different techniques:
URL query parameters.
Post data encoded as application/x-www-form-urlencoded.
Post data encoded as JSON string.
Each access to the API must be authenticated by using the "Authorization" http header with "OAuth" authentication type and an authentication token.
Retrieve the authentication token with the /auth method.
Legal
Copyright © 2021, Nubo Software Ltd.
Resources
/auth
Authentication methods - You must authenticate using the following authentication methods before accessing the API.
/auth ¶ POST /auth
Log in to the admin API.
After successful login, use the "loginToken" return value to authenticate the resources, using the "Authorization" http header with "OAuth" authentication type.
e.g. Authorization: OAuth 474dff215b73e8fdedaee76bc896655830d592c25a3fda259fe9ddbc58c6985d835d71d428e54c48f30a6454f34a032c
Request
Query Parameters
userName string, required | User name (Email) |
---|---|
password string, required | Password |
deviceid string, required | Identifier of the device used for connecting |
deviceName string, optional | Name of the device used for connecting |
selectedDomain string, optional | The organization's domain to be used. |
activationkey string, optional | Activation key that was previously returned by the /auth command and activated by the user. |
Response
JSON output with status field:
Status 1 is a successful login and all other statuses are errors or login failures.
Status 200 is activation pending, which enables you to activate your access and re-try to authenticate with the activation key supplied.
-
Success
{ "status": 1, "message": "Login was successful", "loginToken": "474dff215b73e8fdedaee76bc896655830d592c25a3fda259fe9ddbc58c6985d835d71d428e54c48f30a6454f34a032c", "mainDomain": "mydomain.com", "firstname": "John", "lastname": "Doe", "orgname": "My Company Inc." }
-
Activation Required
{ "status": 200, "message": "Please activate admin login", "activationkey":"845b38840cc8e12ddee5aa26a12bf3c6af3b68aeb85130d10ce5a97a2b1147c0e9edc900b3a94094212f3514cbe42937" }
/auth/validate ¶ POST /auth/validate
Check if the given activation key is allows you to log in to the control panel.
Request
Query Parameters
email string, required | User name (Email) |
---|---|
deviceid string, required | Identifier of the device used for connecting |
activationkey string, required | Activation key that was previously returned by the /auth command |
Response
JSON output with status field and message.
Available statuses:
201: Activation is valid
200: Activation is pending
202: Reset password is pending
0: Activation not found
-
Valid
{ "status": 201, "message": "Activation is valid" }
-
Pending
{ "status": 200, "message": "Activation pending" }
/auth/reset ¶ POST /auth/reset
Start the reset password process for an admin user.
The admin user will get a reset password link to reset the password.
Request
Query Parameters
userName string, required | User name (Email) |
---|---|
deviceid string, required | Identifier of the device |
deviceName string, optional | Name of the device |
activationkey string, required | Activation key that was previously returned by the "/auth" command |
Response
JSON output with status field and message.
Available statuses:
200: Activation is pending
0: Error
-
Example
{ "status": 200, "message": "Please activate admin login", "activationkey": "845b38840cc8e12ddee5aa26a12bf3c6af3b68aeb85130d10ce5a97a2b1147c0e9edc900b3a94094212f3514cbe42937" }
/profiles
Various operations on profiles (users)
/profiles ¶ GET /profiles
Get a list of profiles (users).
Request
Query Parameters
adminFilter string, optional | Return only administrators (Y) or non-administrators (N). Keep this parameter empty to get both admins and non-admins. |
---|---|
online string, optional | Display only online users (Y/N) |
limit number, optional | Maximum number of rows to fetch |
offset number, optional | Number of rows to skip before fetching rows |
sortBy string, optional | Sort by fields |
sortDesc string, optional | Boolean array indicates if each sorted field is descending |
search string, optional | Filter results by using this search string |
Response
-
Example
{ "status": "1", "message": "Request was fulfilled", "myUser": "admin@mydomain.com", "profiles": [ { "id": 1, "email": "main1@nub4est.co", "userName": "main1@nub4est.co", "firstName": "main1", "lastName": "", "isActive": 1, "imageUrl": "", "isOnline": 0, "deviceType1": "", "deviceType2": "", "isAdmin": 0 }, { "id": 2, "email": "subuser1@subdc1.nub4est.co", "userName": "subuser1@subdc1.nub4est.co", "firstName": "subuser1", "lastName": "", "isActive": 1, "imageUrl": "", "isOnline": 0, "deviceType1": "", "deviceType2": "", "isAdmin": 1 } ], "totalItems": 2, "isMore":false }
/profiles/{email} ¶ GET /profiles/{email}
Get profile information.
Return user details, as well as lists of user's apps, devices, and groups.
Request
Path Variables
email string, required | User name (email). |
---|
Response
-
Example
{ "status": "1", "message": "Request was fulfilled", "details": { "emailAddress": "1234@nub4est.co", "userName": "1234@nub4est.co", "isActive": 1, "officePhone": "12344567", "mobilePhone": "87643434", "manager": "Jim", "country": "UK", "isImAdmin": 0, "dataCenter": "", "imMobile": "", "imMobile2": "", "adDomain": "", "clientIp": "", "clientPort": "", "subscriptionId": "", "subscriptionUpdateDate": "", "Calendar": 1, "Email": 1, "Messaging": 1, "userCert": 0, "lastActivityTime": "", "firstname": "John", "lastname": "Smith", "storageUsage": "0.00%" }, "apps": [ { "appName": "Calendar", "packageName": "com.android.calendar", "imageUrl": "https://api.nubosoftware.com/appstore/domain.com/repo/icons/com.android.calendar.100.png", "price": "0", "privateApp": 0 }, { "appName": "Camera", "packageName": "com.android.camera", "imageUrl": "https://api.nubosoftware.com/appstore/domain.com/repo/icons/com.android.camera.3.png", "price": "0", "privateApp": 0 }, { "appName": "Contacts", "packageName": "com.android.contacts", "imageUrl": "https://api.nubosoftware.com/appstore/domain.com/repo/icons/com.android.contacts.100001.png", "price": "0", "privateApp": 0 }, { "appName": "Phone", "packageName": "com.android.dialer", "imageUrl": "https://api.nubosoftware.com/appstore/domain.com/repo/icons/com.android.dialer.30000.png", "price": "0", "privateApp": 0 }, { "appName": "Email", "packageName": "com.android.email", "imageUrl": "https://api.nubosoftware.com/appstore/domain.com/repo/icons/com.android.email.550007.png", "price": "0", "privateApp": 0 }, { "appName": "Store", "packageName": "com.nubo.appstore", "imageUrl": "https://api.nubosoftware.com/appstore/domain.com/repo/icons/com.nubo.appstore.1008002.png", "price": "0", "privateApp": 0 }, { "appName": "Files", "packageName": "com.nubo.filemanager", "imageUrl": "https://api.nubosoftware.com/appstore/domain.com/repo/icons/com.nubo.filemanager.48.png", "price": "0", "privateApp": 0 }, { "appName": "Gallery", "packageName": "com.nubo.gallery", "imageUrl": "https://api.nubosoftware.com/appstore/domain.com/repo/icons/com.nubo.gallery.37.png", "price": "0", "privateApp": 0 }, { "appName": "Launcher", "packageName": "com.nubo.launcher.nubo", "imageUrl": "https://api.nubosoftware.com/appstore/domain.com/repo/icons/com.nubo.launcher.nubo.30912.png", "price": "0", "privateApp": 0 }, { "appName": "Notes", "packageName": "com.nubo.notes", "imageUrl": "https://api.nubosoftware.com/appstore/domain.com/repo/icons/com.nubo.notes.13.png", "price": "0", "privateApp": 0 }, { "appName": "Voice Call", "packageName": "com.nubo.sip", "imageUrl": "https://api.nubosoftware.com/appstore/domain.com/repo/icons/com.nubo.sip.13.png", "price": "0", "privateApp": 0 }, { "appName": "Messages", "packageName": "org.pf.messages", "imageUrl": "https://api.nubosoftware.com/appstore/domain.com/repo/icons/org.pf.messages.79.png", "price": "0", "privateApp": 0 } ], "devices": [ { "deviceName": "Samsung_SM-G973F", "isActive": 1, "gateway": "", "platform": "", "IMEI": "dd98df4eeaeecb3a", "IMSI": "", "insertTime": "2020-06-11T12:11:58.000Z", "isCertExists": 0, "isOnline": 0 }, { "deviceName": "iPhoneX", "isActive": 1, "gateway": "", "platform": "", "IMEI": "04960B8D-2093-415B-B710-FDF548D79322", "IMSI": "", "insertTime": "2020-05-25T10:54:50.000Z", "isCertExists": 0, "isOnline": 0 } ], "groups": [ { "groupName": "All", "adDomain": "" } ] }
/profiles/{email} ¶ POST /profiles/{email}
Update profile information.
Request
Path Variables
email string, required | User name (email). |
---|
Query Parameters
first string, required | First name |
---|---|
last string, required | Last name |
manager string, optional | Manager's name |
country string, optional | Country |
officePhone string, optional | Office number |
mobilePhone string, optional | Mobile number |
Response
-
Example
{ "status": 1, "message": "The profile was updated successfully" }
/profiles/{email} ¶ PUT /profiles/{email}
Add profile.
Request
Path Variables
email string, required | User name (email). |
---|
Query Parameters
first string, required | First name |
---|---|
last string, required | Last name |
manager string, optional | Manager's name |
country string, optional | Country |
officePhone string, optional | Office number |
mobilePhone string, optional | Mobile number |
Response
-
Example
{ "status": 1, "message": "The profile was added successfully" }
/profiles/{email} ¶ DELETE /profiles/{email}
Delete profile.
Request
Path Variables
email string, required | User name (email). |
---|
Response
-
Example
{ "status": 1, "message": "The profile was deleted successfully" }
/profiles/{email}/invite ¶ PUT /profiles/{email}/invite
Send an invitation email to the user.
Request
Path Variables
email string, required |
---|
Response
-
Example
{ "status": "1", "message": "Request was fulfilled" }
/profiles/{email}/activate ¶ PUT /profiles/{email}/activate
Enable or disable the profile.
Request
Path Variables
email string, required |
---|
Query Parameters
activate string, required | Y - Enable, N - Disable |
---|
Response
-
Example
{ "status": "1", "message": "Request was fulfilled" }
/onlineProfiles
/onlineProfiles ¶ GET /onlineProfiles
List all online profiles and devices.
Response
-
Example
{ "status": 1, "message": "Request was fulfilled", "profiles": [ { "email": "test@nubodemo.com", "username": "test@nubodemo.com", "firstname": "A", "lastname": "A", "isactive": 1, "imageurl": null, "isadmin": 1, "user_devices": [ { "imei": "AABBCCDD", "devicename": "Samsung_SM-G973F", "gateway": "1", "platform": "2" } ] } ] }
/devices
/devices/{email}/{deviceid} ¶ POST /devices/{email}/{deviceid}
Operations on a specific user device (e.g. end session or disable access).
Request
Path Variables
email string, required | |
---|---|
deviceid string, required |
Query Parameters
action string, required | Action to perform on the device. The available options are: |
---|
Response
-
Example
{ "status": 1, "message": "Request was fulfilled" }
/groups
Various operations on groups.
/groups ¶ GET /groups
Get the list of groups.
Response
-
Example
{ "status": "1", "message": "Request was fulfilled", "groups": [ { "groupName": "abcde", "adDomain": "", "profiles": [], "apps": [] }, { "groupName": "All", "adDomain": "", "profiles": [], "apps": [] }, { "groupName": "gggg", "adDomain": "", "profiles": [], "apps": [] }, { "groupName": "Account Operators", "adDomain": "nub4est.co", "profiles": [], "apps": [] }, { "groupName": "Administrators", "adDomain": "nub4est.co", "profiles": [], "apps": [] } ] }
/groups/{groupName} ¶ GET /groups/{groupName}
Get group information.
Request
Path Variables
groupName string, required | Group name. |
---|
Response
-
Example
{ "status": "1", "message": "Request was fulfilled", "groupName": "abcde", "profiles": [ { "email": "administrator@nub4est.co", "firstName": "admin", "lastName": "nub4est", "isActive": 1, "imageUrl": "" }, { "email": "administrator@subdc1.nub4est.co", "firstName": "admin", "lastName": "subdc1", "isActive": 1, "imageUrl": "" } ], "apps": [] }
/groups/{groupName} ¶ DELETE /groups/{groupName}
Delete group.
Request
Path Variables
groupName string, required | Group name. |
---|
Response
-
Example
{ "status": "1", "message": "The group was deleted successfully" }
/groups/{groupName} ¶ PUT /groups/{groupName}
Create new group.
Request
Path Variables
groupName string, required | Group name. |
---|
Query Parameters
email string, optional | Array of emails to be added to this group |
---|
Response
-
Example
{ "status": "1", "message": "The group was created successfully" }
/groups/{groupName}/addProfiles ¶ POST /groups/{groupName}/addProfiles
Add profiles to group.
Request
Path Variables
groupName string, required | Group name. |
---|
Query Parameters
email string, optional | Array of emails to be added to group |
---|
Response
-
Example
{ "status": "1", "message": "The profiles were added to the group successfully" }
/groups/{groupName}/removeProfiles ¶ POST /groups/{groupName}/removeProfiles
Remove profiles from group.
Request
Path Variables
groupName string, required | Group name. |
---|
Query Parameters
email string, optional | Array of emails to be removed from group |
---|
Response
-
Example
{ "status": "1", "message": "The profiles were removed from the group successfully" }
/apps
Actions on apps.
/apps ¶ GET /apps
Get a list of available apps.
Response
-
Example
{ "status": "1", "message": "The request was fulfilled", "apps": [ { "packageName": "com.android.calendar", "versionName": "Nubo-7.0.7", "versionCode": "100", "appName": "Calendar", "imageUrl": "https://api.nubosoftware.com:6443/appstore/nubodemo.com/repo/icons/com.android.calendar.100.png", "price": "0", "description": "", "downloadCounter": 56, "summary": "Time management", "categories": "Tools" }, { "packageName": "com.android.camera", "versionName": "Nubo-3.0", "versionCode": "3", "appName": "Camera", "imageUrl": "https://api.nubosoftware.com:6443/appstore/nubodemo.com/repo/icons/com.android.camera.3.png", "price": "0", "description": "Use this app to take photos and videos you wish to keep private, and not displayed on your physical device. All photos and videos are securely kept in the virtual remote device.", "downloadCounter": 56, "summary": "Secure Camera", "categories": "Photography" }, { "packageName": "com.android.chrome", "versionName": "87.0.4280.141", "versionCode": "428014121", "appName": "Chrome", "imageUrl": "https://api.nubosoftware.com:6443/appstore/nubodemo.com/repo/icons/com.android.chrome.428014121.png", "price": "0", "description": "", "downloadCounter": 1, "summary": "", "categories": "" }, { "packageName": "com.android.contacts", "versionName": "Nubo-3.0", "versionCode": "100001", "appName": "Contacts", "imageUrl": "https://api.nubosoftware.com:6443/appstore/nubodemo.com/repo/icons/com.android.contacts.100001.png", "price": "0", "description": "Use this app to securely manage your private contact list. The address book is securely kept in the virtual remote device.", "downloadCounter": 58, "summary": "Secure Address Book", "categories": "Communication" }, { "packageName": "com.android.dialer", "versionName": "3.00.00", "versionCode": "30000", "appName": "Phone", "imageUrl": "https://api.nubosoftware.com:6443/appstore/nubodemo.com/repo/icons/com.android.dialer.30000.png", "price": "0", "description": "Use this app to securely make voice calls without leaving a trace on your physical device. The call history is securely kept in the virtual remote device, and the voice communication is encrypted.", "downloadCounter": 55, "summary": "Secure Voice Calls", "categories": "Communication" }, { "packageName": "com.android.email", "versionName": "Nubo-7.0.7", "versionCode": "550007", "appName": "Email", "imageUrl": "https://api.nubosoftware.com:6443/appstore/nubodemo.com/repo/icons/com.android.email.550007.png", "price": "0", "description": "", "downloadCounter": 59, "summary": "Secure Email", "categories": "Communication" }, { "packageName": "com.nubo.appstore", "versionName": "3.0.0.10", "versionCode": "1008002", "appName": "Store", "imageUrl": "https://api.nubosoftware.com:6443/appstore/nubodemo.com/repo/icons/com.nubo.appstore.1008002.png", "price": "0", "description": "This app allows you to install apps that have been hand-picked and specifically approved as secure and private.", "downloadCounter": 71, "summary": "Secure App Store", "categories": "Productivity,Tools" }, { "packageName": "com.nubo.browser", "versionName": "4.5.3", "versionCode": "100", "appName": "Browser", "imageUrl": "https://api.nubosoftware.com:6443/appstore/nubodemo.com/repo/icons/com.nubo.browser.100.png", "price": "0", "description": "", "downloadCounter": 1, "summary": "", "categories": "" }, { "packageName": "com.nubo.controlpanel", "versionName": "3.0.0.12", "versionCode": "23", "appName": "Control Panel", "imageUrl": "https://api.nubosoftware.com:6443/appstore/nubodemo.com/repo/icons/com.nubo.controlpanel.23.png", "price": "0", "description": "Use this app to manage your Nubo environment. Manage profiles, groups, apps, and various settings.", "downloadCounter": 42, "summary": " Administrator Console", "categories": "Tools" }, { "packageName": "com.nubo.filemanager", "versionName": "2.3.1.2", "versionCode": "49", "appName": "Files", "imageUrl": "https://api.nubosoftware.com:6443/appstore/nubodemo.com/repo/icons/com.nubo.filemanager.49.png", "price": "0", "description": "", "downloadCounter": 55, "summary": "Secure File Manager", "categories": "Productivity,Tools" }, { "packageName": "com.nubo.gallery", "versionName": "v1.1.1", "versionCode": "37", "appName": "Gallery", "imageUrl": "https://api.nubosoftware.com:6443/appstore/nubodemo.com/repo/icons/com.nubo.gallery.37.png", "price": "0", "description": "Use this app to access and view your private photos and videos. All media files added/saved can be securely viewed using the Gallery app.", "downloadCounter": 53, "summary": "Secure Photo Gallery", "categories": "Photography, Gallery" }, { "packageName": "com.nubo.launcher.nubo", "versionName": "nubo-3.0.2", "versionCode": "30913", "appName": "Launcher", "imageUrl": "https://api.nubosoftware.com:6443/appstore/nubodemo.com/repo/icons/com.nubo.launcher.nubo.30913.png", "price": "0", "description": "", "downloadCounter": 55, "summary": "Launcher", "categories": "Tools" }, { "packageName": "com.nubo.notes", "versionName": "3.1.6", "versionCode": "13", "appName": "Notes", "imageUrl": "https://api.nubosoftware.com:6443/appstore/nubodemo.com/repo/icons/com.nubo.notes.13.png", "price": "0", "description": "Use this app to create short text notes you wish to keep private, and not saved on your physical device.", "downloadCounter": 56, "summary": "Secure Note-Taking", "categories": "Productivity" }, { "packageName": "com.nubo.sip", "versionName": "1.0.04", "versionCode": "13", "appName": "Voice Call", "imageUrl": "https://api.nubosoftware.com:6443/appstore/nubodemo.com/repo/icons/com.nubo.sip.13.png", "price": "0", "description": "Use this app to securely make voice calls without leaving a trace on your physical device. The call history is securely kept in the virtual remote device, and the voice communication is encrypted.", "downloadCounter": 56, "summary": "Secure Voice Calls", "categories": "Communication" }, { "packageName": "org.pf.messages", "versionName": "3.0.03", "versionCode": "79", "appName": "Messages", "imageUrl": "https://api.nubosoftware.com:6443/appstore/nubodemo.com/repo/icons/org.pf.messages.79.png", "price": "0", "description": "Use this app to securely send and receive worry-free text messages. The chat history is securely kept in the virtual remote device, and not on the physical device itself.", "downloadCounter": 55, "summary": "Secure Messaging App", "categories": "Communication" }, ] }
/apps ¶ PUT /apps
Install or update APK in the app repository.
This method returns a result before full installation ends.
Use the "/apps/{appid}/checkUploadStatus" method to check the installation status.
Request
Query Parameters
fileName string, required | Name of an APK file that was previously uploaded using "/upload" method. |
---|
Response
-
Example
{ "status": 1, "message": "Installation in progress", "packageName": "com.android.chrome", "versionName": "87.0.4280.141", "versionCode": "428014121", "maindomain": "nubodemo.com", "appName": "Chrome" }
/apps/{appid} ¶ GET /apps/{appid}
Return app information with the list of profiles that were directly assigned to the app (emails), the groups that were assigned to the app (groups), and the profiles that were indirectly assigned for being a member of a group (groupusers).
Request
Path Variables
appid string, required | App ID is the Android app's package name. |
---|
Response
-
Example
{ "status": 1, "message": null, "emails": [ { "email": "aaron.j@nubodemo.com", "firstname": "Aaron", "lastname": "Jenkins" } ], "groups": [ { "groupName": "aaaaa", "adDomain": "" } ], "groupusers": [ { "email": "bernice.wilson@nubodemo.com", "firstname": "Bernice", "lastname": "Wilson" }, { "email": "earl.reyna@nubodemo.com", "firstname": "Earl", "lastname": "Reyna" }, { "email": "tayah.moyer@nubodemo.com", "firstname": "Tayah", "lastname": "Moyer" }, { "email": "test@nubodemo.com", "firstname": "A", "lastname": "A" } ], "totalNumOfUsers": 5, "appDetails": { "packagename": "com.adobe.reader", "versionname": "20.9.1.15848", "versioncode": "1920915848", "appname": "Adobe Acrobat", "description": "", "summary": null, "categories": null, "imageurl": "https://api.nubosoftware.com:6443/appstore/nubodemo.com/repo/icons/com.adobe.reader.1920915848.png", "maindomain": "nubodemo.com", "price": "0", "status": 0, "err": "" } }
/apps/{appid} ¶ POST /apps/{appid}
Update app details.
Request
Path Variables
appid string, required | App ID is the Android app's package name. |
---|
Query Parameters
appDescription string, optional | App's description |
---|---|
appName string, optional | App's name |
appSummary string, optional | Short summary |
appCategories string, optional | List of App Store categories |
Response
-
Example
{ "status": "1", "message": "Request was fulfilled" }
/apps/{appid} ¶ DELETE /apps/{appid}
Delete the app from the app repository.
Request
Path Variables
appid string, required | App ID is the Android app's package name. |
---|
Response
-
Example
{ "status": "1", "message": "Request was fulfilled" }
/apps/{appid}/install ¶ POST /apps/{appid}/install
Install the app on a list of profiles or groups.
Request
Path Variables
appid string, required | App ID is the Android app's package name. |
---|
Query Parameters
email string, optional | A list of emails to install the app on |
---|---|
groupName string, optional | A list of group names to install the app on |
adDomain string, optional | A list of A.D. domain groups |
appStoreOnly number, optional | If this parameter value is 1, list the app in the profile's App Store and skip installation process |
Response
-
Example
{ "status": 1, "message": "Apps installed successfully", "numUsers": 10 }
/apps/{appid}/uninstall ¶ POST /apps/{appid}/uninstall
Uninstall the app on a list of profiles or groups.
Request
Path Variables
appid string, required | App ID is the Android app's package name. |
---|
Query Parameters
email string, optional | A list of emails to uninstall the app on |
---|---|
groupName string, optional | A list of group names to uninstall the app on |
adDomain string, optional | A list of A.D. domain groups |
Response
-
Example
{ "status": 1, "message": "Request was fulfilled", "totalNumOfUsers": 7 }
/apps/{appid}/checkUploadStatus ¶ GET /apps/{appid}/checkUploadStatus
App uploading status
Possible values of apkStatus return parameter:
1: Processing apk
2: Installing app
0: Installation finished
Request
Path Variables
appid string, required | App ID is the Android app's package name. |
---|
Response
-
Example
{ "status": "1", "message": "", "apkStatus": 1 }
/upload
/upload ¶ POST /upload
Upload file to the admin storage. Uploaded files can be used by the /apps/put method to install an APK file.
Request
Response
-
Example
{ "status": 1, "message": "File uploaded", "uploadFileName": "myapp.apk" }
/notifications
/notifications ¶ PUT /notifications
Send notification to a Nubo user.
Request
Query Parameters
email string, required | Profile email |
---|---|
titleText string, required | Notification title |
notifyTime string, required | Notification text |
notifyLocation string, required | Additional text |
appName string, optional | App ID inside Nubo |
authKey string, optional | App authentication key |
Response
-
Example
{ "status": "1", "message": "Request was fulfilled" }
/logs
/logs ¶ GET /logs
Get log events from the central log repository.
Request
Query Parameters
u string, optional | User ID. Retrieve logs only related to this user |
---|---|
s date, optional | Starting time |
limit number, optional | Maximum number of rows to fetch |
offset number, optional | Number of rows to skip before fetching rows |
level number, optional | Log level |
sortBy string, optional | List of sort fields |
sortDesc boolean, optional | For each sort field, a Boolean value indicates if to sort in ascending (false) order or descending (true) order |
comp string, optional | Component type |
serverName string, optional | Server name |
search string, optional | Search specific string |
/logs/getFilters ¶ GET /logs/getFilters
Get possible values per component type and server name.
/events
/events ¶ GET /events
Get security events from the database.
Request
Query Parameters
s date, optional | Start time |
---|
/ldap
/ldap ¶ GET /ldap
Get a list of LDAP domains and their details.
Response
-
Example
{ "status": "1", "message": "Request was fulfilled", "ldapDomains": [ { "domain": "mydomain.com", "addomain": "domain.com", "basedn": "DC=domain,DC=com", "connectionurl": "ldap://8.8.8.8:389", "password": "********", "username": "administrator@domain.com" } ] }
/ldap/{ldapDomain} ¶ GET /ldap/{ldapDomain}
Get a list of OUs for the selected ldap domain.
Request
Path Variables
ldapDomain string, required |
---|
Response
-
Example
{ "status": "1", "message": "Request was fulfilled", "ousList": [ { "ouName": "domain", "level": 0, "key": "DC=domain,DC=com", "father": " ", "checked": false, "hasChild": true }, { "ouName": "Domain Controllers", "level": 1, "key": "OU=Domain Controllers,DC=domain,DC=com", "father": "domain", "checked": true, "hasChild": false }, { "ouName": "Main OU", "level": 1, "key": "OU=Main OU,DC=domain,DC=com", "father": "domain", "checked": false, "hasChild": true }, { "ouName": "Sales", "level": 2, "key": "OU=Sales,OU=Main OU,DC=domain,DC=com", "father": "Main OU", "checked": false, "hasChild": true }, { "ouName": "R&D", "level": 2, "key": "OU=R&D,OU=Main OU,DC=domain,DC=com", "father": "Main OU", "checked": false, "hasChild": true }, { "ouName": "Team 1", "level": 3, "key": "OU=Team 1,OU=R&D,OU=Main OU,DC=domain,DC=com", "father": "R&D", "checked": true, "hasChild": false }, { "ouName": "Team 2", "level": 3, "key": "OU=Team 2,OU=R&D,OU=Main OU,DC=domain,DC=com", "father": "R&D", "checked": true, "hasChild": false }, { "ouName": "Team 3", "level": 3, "key": "OU=Team 3,OU=R&D,OU=Main OU,DC=domain,DC=com", "father": "R&D", "checked": true, "hasChild": false }, { "ouName": "Team 1 Sales", "level": 3, "key": "OU=Team 1 Sales,OU=Sales,OU=Main OU,DC=domain,DC=com", "father": "Sales", "checked": true, "hasChild": false } ] }
/ldap/{ldapDomain} ¶ POST /ldap/{ldapDomain}
Set a list of synced OUs and start sync process.
Request
Path Variables
ldapDomain string, required |
---|
Query Parameters
orgUnits string, required | List of OUs to sync |
---|
Response
-
Example
{ "status": "1", "message": "Starting LDAP sync" }
/ldap/{ldapDomain} ¶ PUT /ldap/{ldapDomain}
Set a new LDAP domain or LDAP connection parameters for an existing domain.
Request
Path Variables
ldapDomain string, required |
---|
Query Parameters
host string, required | LDAP host name |
---|---|
user string, required | Admin user name that can log in to the LDAP server and read information (read-only user) |
password string, required | Password for the admin user |
port number, required | Port number for the LDAP server |
baseDN string, required | Base DN for the LDAP import |
SSL string, required | Connection type (auto or ldap:// or ldaps://) |
Response
-
Example
{ "status": "1", "message": "LDAP domain was updated succesfully" }
/ldap/{ldapDomain} ¶ DELETE /ldap/{ldapDomain}
Delete the LDAP domain.
Request
Path Variables
ldapDomain string, required |
---|
Response
-
Example
{ "status": "1", "message": "The LDAP settings were deleted" }
/admins
/admins/{email} ¶ GET /admins/{email}
Return the admin information, including the permissions granted to the admin.
Request
Path Variables
email string, required |
---|
Response
-
Example
{ "status": "1", "message": "Request was fulfilled", "details": { "email": "aaron.j@nubodemo.com", "username": "aaron.j@nubodemo.com", "firstname": "Aaron", "lastname": "Jenkins", "isactive": 1, "isadmin": 1, "admin": { "email": "aaron.j@nubodemo.com", "maindomain": "nubodemo.com", "permissions": "{\"/profiles\":\"rw\",\"/groups\":\"rw\",\"/apps\":\"ri\",\"/reports\":\"r\"}", "createdAt": "2020-12-02T13:18:23.000Z", "updatedAt": "2021-02-24T07:24:54.000Z" } } }
/admins/{email} ¶ PUT /admins/{email}
Add a new admin or change permission to an existing admin.
Request
Path Variables
email string, required |
---|
Query Parameters
permissions string, required | JSON object with a set of admin permissions. Each permission key should include an access level value. The following values are available: |
---|
Response
-
Example
{ "status": "1", "message": "The admin was added successfully" }
/admins/{email} ¶ DELETE /admins/{email}
Remove admin.
Request
Path Variables
email string, required |
---|
Response
-
Example
{ "status": "1", "message": "The admin was removed successfully" }
/orgs
/orgs ¶ GET /orgs
Get the list of all organizations.
Response
-
Example
{ "status": 1, "message": "Request was fulfilled", "orgs": [ { "maindomain": "kitkat.com", "orgname": "Kitkat", "inviteurl": "https://nubosoftware.com/app-download.html" }, { "maindomain": "nougat.com", "orgname": "Nougat", "inviteurl": "https://nubosoftware.com/app-download.html" }, { "maindomain": "nubodemo.com", "orgname": "Nubo Demo", "inviteurl": "https://nubosoftware.com/app-download.html" } ] }
/orgs/{maindomain} ¶ POST /orgs/{maindomain}
Update organization's information or insert a new organization.
Request
Path Variables
maindomain string, required |
---|
Query Parameters
orgname string, optional | Display name |
---|---|
inviteurl string, optional | URL to send with a profile invitation |
Response
-
Example
{ "status": 1, "message": "Request was fulfilled" }
/orgs/{maindomain} ¶ PUT /orgs/{maindomain}
Change the selected organization for this login session. All following requests with the same login session will access data from the selected organization.
Request
Path Variables
maindomain string, required |
---|
Response
-
Example
{ "status": 1, "message": "Request was fulfilled" }
/platforms
/platforms ¶ GET /platforms
List all available platforms - both running and idle platforms.
Response
-
Example
{ "status": "1", "message": "Request was fulfilled", "platforms": [ { "platID": 2, "status": "running", "sessions": "1", "platform_ip": "192.168.123.43" }, { "platID": 3, "status": "available", "sessions": 0, "platform_ip": "" } ] }
/platforms/{platformid} ¶ PUT /platforms/{platformid}
Start a platform.
This long operation method returns a "notifToken" value that can be used with the /longOperations method to query the status of the operation.
Request
Path Variables
platformid string, required |
---|
Response
-
Example
{ "status": "1", "message": "Request was fulfilled", "notifToken": "8fc9024cce23d7571f45ddd79a9ff5941f484e66cab36a4d28ad44035c418af55d8a6e5763b20362c4399dc44c91aa06" }
/platforms/{platformid} ¶ DELETE /platforms/{platformid}
Stop a platform.
This long operation method returns a "notifToken" value that can be used with the /longOperations method to query the status of the operation.
Request
Path Variables
platformid string, required |
---|
Response
-
Example
{ "status": "1", "message": "Request was fulfilled", "notifToken": "8fc9024cce23d7571f45ddd79a9ff5941f484e66cab36a4d28ad44035c418af55d8a6e5763b20362c4399dc44c91aa06" }
/longOperations
/longOperations/{notifToken} ¶ GET /longOperations/{notifToken}
Check the status of a long operation, such as starting a platform.
Request
Path Variables
notifToken string, required |
---|
Response
-
Example
{ "status": "1", "message": "Platform was started successfully" }