After uploading the file(s) to be sent, this method will trigger invitation emails and finish the send files setup. If you are not sending files from your own computer in a send, you will not need this step.
**How to send files from your computer using the API**:
In order to use the API to send files which are not already stored in your account, you'll need to follow a three-step process:
1. Use the [POST /shares](#operation/addShare) endpoint to set up your send, including password, recipients, expiration, etc. You must include **upload** among the permissions in the `accessMode` and set the `sendingLocalFiles` paramter to **true**. The response that is returned will include a "meta" attribute, which contains an **accessToken** attribute. This new access token is valid only for the send.
2. Use the [POST /resources/upload](#operation/uploadFile) endpoint to upload your files to the send you've created. The "/" path represents the root of the share, not your home directory. **You must send the access token that you received from the first step in the `ev-access-token` header**
3. Use the [POST /shares/complete-send/{id}](#operation/completeDirectSend) endpoint to indicate that you have finished uploading files to your send. This will trigger the system to remove the **upload** permission from the share and send any invitation emails you set up in the first step of the process. **You must send YOUR access token in the `ev-access-token` header, not the temporary access token**
Create a zip archive containing the files from given set of paths. Note that this can be a very slow operation if you have indicated many files should be included in the archive.
**Notes:**
- Authenticated user should have modify permission.
Copies a set of exisiting files/folders (provided by an array `resources`) to the requested `parentResource` in your account.
In the `resources` array, you may specify paths pointing files/folders throughout the account, but everything will be copied to the
root of the `parentResource`.
**Notes:**
- Authenticated user should have modify permission.
Create a new empty folder at the specified path. New files can be uploaded via the [/resources/upload](#operation/uploadFile) endpoint.
**Notes:**
- Authenticated user should have modify permission.
Create a new notification for a [resource](#section/Identifying-Resources) in your account. Notifications can be sent via email or webhook;
- To enable email, pass an array of email addresses to the `recipients` parameter of this call.
- To enable webhooks, setup the webhook callback URL in your account settings via [PATCH /account](#operation/updateAccount).
**Notes:**
- Authenticated user should have [notifications permission](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions)
Create a new SSH Key for a user. Provide the Public Key as formatted from the ssh-keygen command (openssh format or RFC-4716 format).
If you'd prefer to let us generate your key automatically, you can log in to your account via the web portal and set up new keys via the SSH Keys page.
Adds a new user to the account. The user may be configured as an admin or standard user, and (if a standard user) may be assigned a restricted [home directory](/docs/account/04-users/00-introduction#setting-the-user-s-home-directory) and restricted [permissions](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions).
**Notes:**
- You must be an [admin-level user](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions) to use this.
Creates a new share object for the given path in your account. We support three types of shares:
- A **shared folder** allows you to let outside parties access a folder in your account (including any files and nested subfolders) using just a link. Shared folders can be restricted; e.g. with an expiration date, password, download-only, etc. Shared folders are 'live'; if someone makes a change to a file in your shared folder, it will be immediately reflected in your account, and vice-versa.
- A file **send** lets you send one or more files via an easy download link. File sends are different than shared folders because file sends are 'point in time' -- the recipient will get the files as you sent them. If you later make a change to the source file, it will not be updated for the recipient.
- A **receive** folder lets you receive files into your account. You can either send users a link, or optionally [embed a customized form](/docs/account/05-file-sharing/05-upload-widget) on your website.
**How to send files from your computer using the API**:
In order to use the API to send files which are not already stored in your account, you'll need to follow a three-step process:
1. Use the [POST /shares](#operation/addShare) endpoint to set up your send, including password, recipients, expiration, etc. You must include **upload** among the permissions in the `accessMode` and set the `sendingLocalFiles` parameter to **true**. The response that is returned will include a "meta" attribute, which contains an **accessToken** attribute. This new access token is valid only for the send.
2. Use the [POST /resources/upload](#operation/uploadFile) endpoint to upload your files to the send you've created. The "/" path represents the root of the share, not your home directory. **You must send the access token that you received from the first step in the `ev-access-token` header**
3. Use the [POST /shares/complete-send/{id}](#operation/completeDirectSend) endpoint to indicate that you have finished uploading files to your send. This will trigger the system to remove the **upload** permission from the share and send any invitation emails you set up in the first step of the process. **You must send YOUR access token in the `ev-access-token` header, not the temporary access token**
**Setting the Share Permissions**
Only 5 different combinations of permissions are valid for the `accessMode` object:
- **Upload Only**: This allows share visitors to upload to a share but do nothing else to the contained files. To use this mode, set `upload` to **true** and all other permissions to **false**
- **Download Only**: This allows share visitors to download files from a share but do nothing else to the contained files. To use this mode, set `download` to **true** and all other permissions to **false**
- **Upload and Download**: This allows share visitors to upload new files to the share or download files within the share, but not make any other changes to the share contents. To use this mode, set `upload` and `download` to **true** and set both `modify` and `delete` to **false**
- **All but Delete**: This allows share visitors to make any changes to the contents of a share except deleting files. To use this mode, set `upload`, `download`, and `modify` to **true** and set `delete` to **false**
- **Full Access**: This allows share visitors to make any changes to the contents of a share. To use this mode, set all 4 permissions `upload`, `download`, `modify`, and `delete` to **true**
Any other combination of permissions provided as the `accessMode` will be rejected as a bad request.
**Notes:**
Authenticated user requires [share permission](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions).
Deactivate a share. Deactivating a share does not remove the underlying files for **shared_folder** and **receive** share types; it merely removes the access URL. Deleting a **send** share type does remove the associated files, as files that have been sent are only associated with the share, and aren't stored anywhere else in the account.
**Notes:**
- You must have [sharing permissons](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions) to use this.
- You must have [admin-level access](/docs/account/04-users/01-admin-users), or you must be the owner of the specified share you wish to delete.
Deletes a notification. Note that deleting a notification _only_ deletes the notification – it does not delete any underlying files or folders.
**Notes:**
- You need to have the [notifications permission](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions) to update a notification.
- You can only delete notifications owned by your user account.
Deletes a form submission entry, which represents one time that a visitor filled out the form and uploaded files. This deletes only the record of the submission (the date, the values entered in the form and the names of the files uploaded by the visitor).The share and any associated file resources will not be deleted by this.
**Notes**:
- Use the [GET /form/entries/{formId}](#operation/getFormMessageById) to list the submissions and obtain the ID of the entry you want to delete
- You must have the [DeleteFormData permission](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions) in order to use this operation
- It is not possible to un-delete data that is removed in this way
Delete a single file or folder resource. Deleting a folder will also delete all of the contents.
**Notes:**
- Authenticated user should have [delete permission](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions).
- There is no way to un-delete a deleted resource.
Delete a user from the account. Deleting a user does **NOT** delete any files from the account; it merely removes a user's access. Aternatively, locking a user via the [PATCH /users/{id}](#operation/updateUser) will keep the user in your account, but make it unable to log in.
Resources and shares owned by the deleted user will be owned by the master user after the deletion.
**Notes:**
- You must have [admin-level access](/docs/account/04-users/01-admin-users) to delete a user.
- The primary owner of the account cannot be deleted.
Delete multiple file or folder resourcess. Deleting a folder resource will also delete any resources in that folder.
**Notes:**
- Authenticated user should have [delete permission](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions).
- It is not possible to un-delete a deleted resource.
Extract the contents of a zip archive to a specified directory. Note that this can be a very slow operation.
**Notes:**
- You must have [modify permission](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions) to do this.
Returns a list of files and folders in the account. Use the `resource` query parameter to indicate the folder you wish to search in (which can be /).
**Searching for Files and Folders**
Using the `name` parameter triggers search mode, which will search the entire directory structure under the provided `resource` for files or folders with names matching the provided `name`. This supports wildcard matching such as:
- \*Report\* would find any files or folders with "Report" in the name.
- Data\_202?-09-30.xlsx would match items such as "Data\_2020-09-30.xlsx", "DATA\_2021-09-30.xlsx", "data\_2022-09-30.xlsx" etc.
- sales\* would find any files or folders starting with the word "Sales"
- \*.csv would locate any files ending in ".csv"
- \* matches everything within the directory tree starting at your given `resource`
The search is not case-sensitive. Searching for Clients\* or clients\* or CLIENTS\*, etc. will provide identical results
If you are using the `name` parameter to run a search, the `type` parameter will be ignored by the server.
Get a list of all the [notifications](/docs/account/06-notifications) you have access to. You can use sorting and filtering to limit the returned list.
**Notes:**
- Authenticated user should have [notifications permission](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions)
Get a list of shares that you would have access to view through the web interface. You can limit which results are returned by specifying specific types of shares you wish to view, finding things shared with a specific email address, as well as finding shares for specific folder names.
**Notes:**
- Authenticated user requires [share permission](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions).
- To get share objects with type send, authenticated user's role must be admin or master.
Get a list of the users in your account. There are three main types of searches you can do with this method:
1. Search for a user by username. If you provide the `username` parameter in your call, then only the user who exactly matches that username will be in the list of matches. Any other parameters are ignored.
1. Search for a user by individual filter fields (`nickname`,`email`,`role`,`status`,`homeDir`). Users in the list will be ones who match all of the filters you choose to search by. For example, you could look for users with the "admin" `role` AND `email` addresses ending in "*@acme.com".
1. Search for a user by search string. If you provide the `search` parameter, users whose nickname OR email OR role OR homeDir match value your provide.
**Notes:**
- You must be an [admin-level user](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions) to use this.
- The homeDir is the full path to the user's home directory, not a resource ID or hash.
Get the details for a specific share entry. You can use the `include` parameter to also get the details of related records, such as the owning user or the resources involved in the share.
**Notes:**
- Authenticated user requires [share permission](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions).
- To get share objects with type send, authenticated user's role must be admin or master.
Returns the detailed activity logs for your account. Optional query paramaters will filter the returned results based on a number of options including usernames, activity types, or date ranges.
**NOTE:** Total Results will always return as 0 to avoid quering data you're not using and stay as performant as possible.
**Operation Types**
Session activity is logged with an operation type that is different from what is visible through the [activity log interface in the web file manager](/docs/account/10-activity-logs/00-activity-logs). Consult the table below to compare the two:
| File Manager Value | API Value | Notes |
|-----|----|---|
| Connect | PASS | |
| Disconnect | EXIT | |
| Upload | STOR | |
| Download | RETR | |
| Delete | DELE | |
| Create Folder | MKD | |
| Rename | RNTO | |
| Move | MOVE | |
| Copy | COPY | |
| Compress | COMPR | |
| Extract | EXTRACT | |
| Shared Folders | SHARE | |
| Send Files | SEND | |
| Receive Files | RECV | |
| _N/A_ | EDIT\_SEND | Update send. Not shown in file manager |
| Update Share | EDIT\_SHARE| |
| Update Receive | EDIT\_RECV | |
| Delete Send | DELE\_SEND | |
| Delete Receive | DELE\_RECV | |
| Delete Share | DELE\_SHARE | |
| Create Notification | NOTIFY | |
| Update Notification | EDIT\_NTFY| |
| Delete Notification | DELE\_NTFY | |
| Create User | USER | |
| Update User | EDIT\_USER | |
| Delete User | DELE\_USER | |
| _N/A_ | DFA | Create direct link. Not shown in file manager |
| _N/A_ | EDIT\_DFA | Update direct link options. Not shown in file manager |
| _N/A_ | DELE\_DFA | Deactivate direct link. Not shown in file manager|
Get the details for a specific user. You can use the `include` parameter to also get the details of related records, such as the account or the home directory.
**Notes:**
- You must have [admin or master](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions) access to use this.
Get the details for a notification with a specific ID number. You'll be able to review its path, triggers and who's getting the notification.
**Notes**
- You need to have the [notifications permission](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions) to view the detail for a notification.
- You can only retrieve notifications owned by your user account.
Returns the [file upload form](/docs/account/05-file-sharing/05-form-builder) assigned to a [receive folder](/docs/account/05-file-sharing/04-receive-folders). The form details will return all the input fields and their settings.
Use the `include` parameter (with the value **share**) to also retrieve the details of the associated receive folder.
**Note**
If you prefer to find a form by its shareHash, you can use the [GET /forms](#operation/getFormByShareHash) endpoint instead.
Get the information for the [file upload form](/docs/account/05-file-sharing/05-form-builder) assigned to a [receive folder](/docs/account/05-file-sharing/04-receive-folders) by its shareHash. The form details will return all the input field settings and the CSS for the form.
Use the `include` parameter (with the value **share**) to also get the details of the associated receive folder.
**Note**
- If you prefer to find a form by its ID, you can use the [GET /forms/{id}](#operation/getFormById) endpoint instead.
Returns metadata for specified file/folder path, including upload date, size and type. For the full list of returned properties, see the response syntax, below.
**Notes:**
- Authenticated user should have list permission.
Returns details for specified file/folder id or hash, including upload date, size and type. For the full list of returned properties, see the response syntax, below.
**Notes:**
- Authenticated user should have list permission.
Returns a list of files/folders for the parent resource ID.
You can use this API call to get information about all files and folders at a specified path. By default, the API returns basic metadata on each file/folder. An optional `include` parameter forces the return of additional metadata. As with all API calls, the path should be the full path relative to the user's home directory (e.g. **/myfiles/some_folder**).
**Notes:**
- Authenticated user should have list permission.
Moves a set of exisiting files/folders (provided by an array `resources`) to the requested `parentResource` in your account.
In the `resources` array, you may specify paths pointing files/folders throughout the account, but everything will be moved to the root of the `parentResource`.
**Notes:**
- Authenticated user should have modify permission.
Returns a resized image of the specified document for supported file types.
Image data returned is encoded in base64 format and can be viewed using the `<img>` element.
```<img src='data:image/jpeg;base64' + meta.image/>```
**Notes:**
- Supported files types are `'jpg'`, `'jpeg'`, `'gif'`, `'png'`, `'bmp'`, `'pdf'`, `'psd'`, `'doc'`
Update the specified file or folder resource record's "name" parameter. The resource is identified by the numeric resource ID that is passed in as the last segment of the URI.
Resend invitations to one or all recipients attached to specified share. The most recent message that was sent for the share will be re-used for this email.
You can use [GET /shares/{id}](#operation/getShareById) to view the recipient list and message history for a share. Use [PATCH /shares/{id}](#operation/updateShareById) to add or remove recipients.
Invite a friend to sign up for a free trial of ExaVault. Send a [referral](/lp/referafriend/) email to an email address. If the recipient signs up for ExaVault, we'll apply a credit to your account for the referral.
Update an existing notification. You can add additional emails or change the action or users that cause a notification to trigger.
When updating recipient emails, make sure your `recipients` parameter contains the full list of people who should be included on the notification. If you resend the list without an existing recipient, they will be deleted from the notification emails.
**Notes:**
- You need to have the [notifications permission](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions) to update a notification.
- You can only change notifications owned by your user account.
Change the settings on an active share. Any changes made will affect all users that have access to the share.
When updating invitees, pass the `recipients` body paramater with the full list of people who should be included on the share. If you resend the list without an existing recipient, they will be removed from the share.
**Setting the Share Permissions**
Only 5 different combinations of permissions are valid for the `accessMode` object:
- **Upload Only**: This allows share visitors to upload to a share but do nothing else to the contained files. To use this mode, set `upload` to **true** and all other permissions to **false**
- **Download Only**: This allows share visitors to download files from a share but do nothing else to the contained files. To use this mode, set `download` to **true** and all other permissions to **false**
- **Upload and Download**: This allows share visitors to upload new files to the share or download files within the share, but not make any other changes to the share contents. To use this mode, set `upload` and `download` to **true** and set both `modify` and `delete` to **false**
- **All but Delete**: This allows share visitors to make any changes to the contents of a share except deleting files. To use this mode, set `upload`, `download`, and `modify` to **true** and set `delete` to **false**
- **Full Access**: This allows share visitors to make any changes to the contents of a share. To use this mode, set all 4 permissions `upload`, `download`, `modify`, and `delete` to **true**
Any other combination of permissions provided as the `accessMode` will be rejected as a bad request.
**Notes:**
- Authenticated user should be the owner of the specified share.
Updates the settings for the user. Note that the unique key for this API call is our internal ID, and _not_ the username, as the username can be changed.
In the request body, you should only send the parameters for values that you wish to change for the user.
**Notes:**
- You must have [admin or master](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions) access to edit other users. If you have user-level access, you can only update your own user settings.
- You cannot edit a master user with this method.
Update account settings, such as welcome email content, IP address restrictions, webhooks settings and secure password requirements.
**Notes**
- You must have [admin-level access](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions) to change account settings.
Add or remove emails from an email list that can be used to send and share files with groups.
**Notes**
*This call will **replace** your current email list in its entirety.* If you want to keep any existing emails on the list, be sure to submit the call with any current emails you want to keep on the list.
Add, update, or delete a form's parameters. This will alter how your users/customers will see and interact with the form when sending you files.
**Notes**
*This call will **replace** your current form in its entirety.* If you want to keep any existing elements unchanged, be sure to submit the call with an element's current settings to preserve them.