Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


ExaVault API

  • API version: 1.2
    • Build date: 2019-05-20T15:12:25.985Z


Welcome to the ExaVault API documentation. Our API lets you control nearly all aspects of your ExaVault account programatically, from uploading and downloading files to creating and managing shares and notifications. Our API supports both GET and POST operations.

Capabilities of the API include:

  • Uploading and downloading files.
  • Managing files and folders; including standard operations like move, copy and delete.
  • Getting information about activity occuring in your account.
  • Creating, updating and deleting users.
  • Creating and managing shares, including download-only shares and receive folders.
  • Setting up and managing notifications.

The API Endpoint

The ExaVault API is located at:

Obtain Your API Key

You will need to obtain an API key to connect to the API. To do this, follow the instructions below.

  • Log into your account through the usual way, or use
  • Click the Gear icon to access the account settings
  • Locate the Developer tab in the account settings
  • Click the link for Manage API Keys
  • You will be brought to the API Key management screen. Fill out the form and save to generate a new key for your app. *NOTE: You must have admin or master permissions to create an API key for your account. If you do not have access to developer settings for your account, contact your account administrator to create an API key for you.

Testing w/ Postman

We've made it easy for you to test our API before you start full-scale development. Download Postman or the Postman Chrome Extension, and then download our Postman collection, below. Obtain your API key and you'll be able to interact with your ExaVault account immediately, so you can better understand what the capabilities of the API are. <div class="postman-run-button" data-postman-action="collection/import" data-postman-var-1="07891ce73cc525084ceb"> ExaVault API Postman Colletion Usage If you'd prefer to skip Postman and start working with code directly, take a look at the sample code below.

Code Libraries & Sample PHP Code

Once you're ready for full-scale development, we recommend looking at our code libraries available on GitHub. We offer code libraries for Python, PHP, JavaScript and Java. While we recommend using our libraries, you're welcome to interact directly with our API via HTTP GET and POST requests -- a great option particularly if you're developing in a language for which we don't yet have sample code. - Download Python Library & Sample Code » - Download PHP Library & Sample Code » - Download JavaScript Library & Sample Code » - Download Java Library & Sample Code » Note: You can generate client libraries for any language using Swagger Editor. Just download our documentation file, past it into editor and use 'Generate Client' dropdown.

Status Codes

The ExaVault API returns only two HTTP status codes for its responses: 200 and 500. When the request could be successfully processed by the endpoint, the response status code will be 200, regardless of whether the requested action could be taken. For example, the response to a getUser request for a username that does not exist in your account would have the status of 200, indicating that the response was received and processed, but the error member of the returned response object would contain object with message and code properties.

Result Format:

Success Error Results
0 Object Empty
1 Empty Object or Array

When a malformed request is received, a 500 HTTP status code will be returned, indicating that the request could not be processed. ExaVault's API does not currently support traditional REST response codes such as '201 Created' or '405 Method Not Allowed'.

File Paths

Many API calls require you to provide one or more file paths. For example, the <a href="#operation/moveResources">moveResources call requires both an array of source paths, filePaths, and a destination path, destinationPath. Here's a few tips for working with paths:

  • File paths should always be specified as a string, using the standard Unix format: e.g. /path/to/a/file.txt
  • File paths are always absolute from the home directory of the logged in user. For example, if the user bob had a home directory restriction of /bob_home, then an API call made using his login would specify a file as /myfile.txt, whereas an API call made using the master user ( no home directory restriction ) would specify the same file as /bob_home/myfile.txt.

API Rate Limits

We rate limit the number of API calls you can make to help prevent abuse and protect system stablity. Each API key will support 500 requests per rolling five minutes. If you make more than 500 requests in a five minute period, you will receive a response with an error object for fifteen minutes.


A webhook is an HTTP callback: a simple event-notification via HTTP POST. If you define webhooks for Exavault, ExaVault will POST a message to a URL when certain things happen. Webhooks can be used to receive a JSON object to your endpoint URL. You choose what events will trigger webhook messages to your endpoint URL. Webhooks will attempt to send a message up to 8 times with increasing timeouts between each attempt. All webhook requests are tracked in the webhooks log.

Getting Started

  1. Go to the Account tab inside the web application.
  2. Choose the Developer tab.
  3. Configure your endpoint URL and select the events you want to trigger webhook messages.
  4. Save settings.

You are all set to receive webhook callbacks on the events you selected.

Verification Signature

ExaVault includes a custom HTTP header, X-Exavault-Signature, with webhooks POST requests which will contain the signature for the request. You can use the signature to verify the request for an additional level of security.

Generating the Signature

  1. Go to Account tab inside the web application.
  2. Choose the Developer tab.
  3. Obtain the verification token. This field will only be shown if you've configured your endpoint URL.
  4. In your code that receives or processes the webhooks, you should concatenate the verification token with the response string and hash it with md5. md5($verificationToken.$responseString);
  5. Compare signature that you generated to the signature provided in the X-Exavault-Signature HTTP header

Example JSON Response Object

json { \"accountname\": \"mycompanyname\", \"username\": \"john\" \"operation\": \"Upload\", \"protocol\": \"https\", \"path\": \"/testfolder/filename.jpg\" \"attempt\": 1 }

Webhooks Logs

Keep track of all your webhooks requests in the Activity section of your account. You can find the following info for each request:

  1. date and time - timestamp of the request.
  2. endpoint url - where the webhook was sent.
  3. event - what triggered the webhook.
  4. status - HTTP status or curl error code.
  5. attempt - how many times we tried to send this request.
  6. response size - size of the response from your server.
  7. details - you can check the response body if it was sent.


Building the API client library requires:

  1. Java 1.7+
  2. Maven/Gradle


To install the API client library to your local Maven repository, simply execute:

mvn clean install

To deploy it to a remote Maven repository instead, configure the settings of the repository and execute:

mvn clean deploy

Refer to the OSSRH Guide for more information.

Maven users

Add this dependency to your project's POM:


Gradle users

Add this dependency to your project's build file:

compile "io.swagger:swagger-java-client:1.0.0"


At first generate the JAR by executing:

mvn clean package

Then manually install the following JARs:

  • target/swagger-java-client-1.0.0.jar
  • target/lib/*.jar

Getting Started

Please follow the installation instruction and execute the following Java code:

import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.ActivityApi;

import java.util.*;

public class ActivityApiExample {

    public static void main(String[] args) {
        ActivityApi apiInstance = new ActivityApi();
        String apiKey = "apiKey_example"; // String | API key required to make the API call.
        String accessToken = "accessToken_example"; // String | Access token required to make the API call.
        Integer offset = 56; // Integer | Starting record in the result set. Can be used for pagination.
        String sortBy = "sort_logs_date"; // String | Sort method.
        String sortOrder = "desc"; // String | Sort order.
        Integer itemLimit = 25; // Integer | Number of logs to return. Can be used for pagination.
        try {
            CallbackLogResponse result = apiInstance.getCallbackLogs(apiKey, accessToken, offset, sortBy, sortOrder, itemLimit);
        } catch (ApiException e) {
            System.err.println("Exception when calling ActivityApi#getCallbackLogs");

Documentation for API Endpoints

All URIs are relative to

Class Method HTTP request Description
ActivityApi getCallbackLogs GET /getCallbackLogs getCallbackLogs
ActivityApi getFileActivityLogs GET /getFileActivityLogs getFileActivityLogs
ActivityApi getNotificationActivity GET /getNotificationActivity getNotificationActivity
ActivityApi getShareActivity GET /getShareActivity getShareActivity
AuthenticationApi authenticateUser POST /authenticateUser authenticateUser
AuthenticationApi logoutUser POST /logoutUser logoutUser
FilesAndFoldersApi checkFilesExist GET /checkFilesExist checkFilesExist
FilesAndFoldersApi compressFiles POST /compressFiles compressFiles
FilesAndFoldersApi copyResources POST /copyResources copyResources
FilesAndFoldersApi createFolder POST /createFolder createFolder
FilesAndFoldersApi deleteResources GET /deleteResources deleteResources
FilesAndFoldersApi extractFiles POST /extractFiles extractFiles
FilesAndFoldersApi getDownloadFileUrl GET /getDownloadFileUrl getDownloadFileUrl
FilesAndFoldersApi getFolders GET /getFolders getFolders
FilesAndFoldersApi getPageCount GET /getPageCount getPageCount
FilesAndFoldersApi getResourceList GET /getResourceList getResourceList
FilesAndFoldersApi getResourceProperties GET /getResourceProperties getResourceProperties
FilesAndFoldersApi getUploadFileUrl GET /getUploadFileUrl getUploadFileUrl
FilesAndFoldersApi moveResources POST /moveResources moveResources
FilesAndFoldersApi previewFile GET /previewFile previewFile
FilesAndFoldersApi renameResource POST /renameResource renameResource
NotificationApi createNotification POST /createNotification createNotification
NotificationApi deleteNotification GET /deleteNotification deleteNotification
NotificationApi getNotification GET /getNotification getNotification
NotificationApi getNotifications GET /getNotifications getNotifications
NotificationApi updateNotification POST /updateNotification updateNotification
ShareApi addFormData POST /addFormData addFormData
ShareApi createShare POST /createShare createShare
ShareApi deleteShare GET /deleteShare deleteShare
ShareApi getForm GET /getForm getForm
ShareApi getFormData GET /getFormData getFormData
ShareApi getShare GET /getShare getShare
ShareApi getShares GET /getShares getShares
ShareApi updateForm POST /updateForm updateForm
ShareApi updateShare POST /updateShare updateShare
UserApi createUser POST /createUser createUser
UserApi deleteUser GET /deleteUser deleteUser
UserApi getAccount GET /getAccount getAccount
UserApi getCurrentUser GET /getCurrentUser getCurrentUser
UserApi getUser GET /getUser getUser
UserApi getUsers GET /getUsers getUsers
UserApi resendWelcomeEmail GET /resendWelcomeEmail resendWelcomeEmail
UserApi updateUser POST /updateUser updateUser
UserApi userAvailable GET /userAvailable userAvailable

Documentation for Models

Documentation for Authorization

All endpoints do not require authorization. Authentication schemes defined for the API:


It's recommended to create an instance of ApiClient per thread in a multithreaded environment to avoid any potential issues.



An ExaVault API client written in Java




No releases published


No packages published


You can’t perform that action at this time.