# Nimbus API

TIP

The Nimbus API is only acessible from the Nimbus workstation or server. To expose the API outside of the current device, a reverse proxy such as IIS or NGINX is required.

# Authentication

The Nimbus API uses basic authentication through the X-API-KEY header. An API user is a user account in the Nimbus system that is marked as a "API User". API users can only interact with Nimbus via the API and cannot login to the front end.

# Creating an API User

  1. Log in to the Nimbus interface

  2. Click the cog in the top right hand corner

  3. Click User Manager

  4. Click Add User

  5. Enter the following details:

    • Username: A unique username for the account
    • Last Name (optional): A description of what the API user is for
    • Password: A secure password, although it is reccomended to avoid the colon ( : ) character for API users
    • Confirm Password: Same password as above
    • User Type: Select "API User"

api_user_setup

  1. Click Save Changes

# Using Credentials

WARNING

NEVER use the sample usernames or passwords below in your system. Always use unique, secure usernames and passwords.

  1. Concatenate the username and password together, seperated with a colon. For example;
apiuser:apipassword1
  1. Base64 encode the above with a tool such as base64encode.org, which should result in a string of text similar to the below.
YXBpdXNlcjphcGlwYXNzd29yZDE=
  1. Pass the Base64 encoded string in the X-API-USER header with the below requests.

# API Methods

TIP

The base url for the Nimbus API is https://localhost:5042/. This will change if you use a reverse proxy.

# Address Book

# /api​/v1​/addressbook [GET]

Returns entries in your local address book

This method takes no paramaters.

# /api/v1/addressbook/search [GET]

Searches your local address book or the global address book

Paramater Required Details
searchTerm Yes Pass a string containing the search criteria
globalSearch No Pass 'true' to search the global address book, or omit to search the local address book

# /api/v1/addressbook/add [POST]

Add an entry to your local address book from the global address book

Paramater Required Details
profileIdentifier Yes Pass a profile identifier retrieved from the global address book using the /search method above

# /api/v1/addressbook/delete [DELETE]

Delete an entry from your local address book

Paramater Required Details
profileIdentifier Yes Pass a profile identifier retrieved from the local address book using the /addressbook method above

# Lite Account

# /api​/v1​/liteaccount [GET]

Required Nimbus Version (or higher): 1.2.1873

Returns all registered lite accounts.

This method takes no paramaters.

# /api​/v1​/liteaccount [POST]

Required Nimbus Version (or higher): 1.2.1873

Create a new lite account. Requires a model to be passed in the JSON body with the following properties.

Property Required Details
EmailAddress Yes Email address for the account (must not already be in use)
Message No Message to be displayed to the user when they log into the lite client
TransferLimit No Transfer limit for the account in megabytes

A model will be returned with an auto generated PIN number and the expiry time of the account.

# /api​/v1​/liteaccount [PUT]

Required Nimbus Version (or higher): 1.2.1873

Update an existing lite account. Requires a model to be passed in the JSON body with the following properties.

Property Required Details
EmailAddress Yes Email address for the account (must not already be in use)
Message No Message to be displayed to the user when they log into the lite client
TransferLimit No Transfer limit for the account in megabytes

A model will be returned with only the expiry time of the account.

# /api​/v1​/liteaccount/{emailAddress} [GET]

Required Nimbus Version (or higher): 1.2.1873

Get the details of an existing lite account. Note this will return all details of the account, except for the PIN number.

# /api​/v1​/liteaccount/{emailAddress} [DELETE]

Required Nimbus Version (or higher): 1.2.1873

Delete an existing lite account.

# /api​/v1​/liteaccount/{emailAddress}/extend [PUT]

Required Nimbus Version (or higher): 1.2.1873

Set a given lite accounts expiry to the current date, plus 30 days (ie. 1 month).

# /api​/v1​/liteaccount/{emailAddress}/resetpin [PUT]

Required Nimbus Version (or higher): 1.2.1873

Reset the PIN number of a given account. Will return the new PIN number in the response.

# Send

# /api/v1/file/send [POST]

Send a file to a specified recipient. Requires a model to be passed in the JSON body with the following properties.

Property Required Details
ProfileIdentifier Yes Profile\recipient to send this file to
FileName Yes Filename of the file being sent
Data Yes Base64 encoded representation of the file

# Swagger

Nimbus exposes a Swagger interface and respective Swagger files. To access Swagger, navigate to https://localhost:5042/swagger on your Nimbus workstation or server. The Swagger interface allows you to test methods directly from the Web UI.

The swagger.json file can be obtained from https://localhost:5042/swagger/v1/swagger.json on your Nimbus workstation or server.